自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

缘起宇轩阁

华华的技术专栏

  • 博客(6)
  • 收藏
  • 关注

原创 定时器使用和延迟执行

1. 定时器定时器有时也称为动态定时器或内核定时器,是管理内核时间的基础。定时器的使用很简单。你只需要执行一些初始化工作,设置一个超时时间,指定超时发生后执行的函数,然后激活定时器就可以了。注意,定时器并不是周期运行,它在超时后就自行销毁。 1.1. 使用定时器定时器由结构timer_list表示,在中:struct timer_list{              s

2009-06-09 21:19:00 5714

原创 时间管理

1. 内核中的时间概念时间管理在内核占有非常重要的地位。相对于事件驱动而言,内核中有大量函数都是基于时间驱动的。注意相对时间和绝对时间之间的区别。周期性产生的事件与推迟执行的事件之间的差别。周期性产生的事件都是由系统定时器驱动的。系统定时器是一种可编程硬件芯片,它以固定频率产生中断,也称定时器中断。而动态定时器是一种用来推迟执行程序的工具。系统定时器以某种频率自行触发时钟中断、该频

2009-06-09 21:13:00 1311

原创 下半部和推后执行的工作(续)

4. 工作队列工作队列(work queue)可以把工作推后,交由一个内核线程去执行,这个下半部总是会在进程上下文中执行。最重要的是工作队列允许重新调度甚至是睡眠。如果你需要一个可以重新调度的实体来执行你的下半部处理,你应该使用工作队列。如果推后执行的任务需要睡眠,那么就选择工作队列。 4.1. 工作队列的实现工作队列子系统是一个用于创建内核线程的接口,通过它创建的进程负责执行

2009-06-07 19:24:00 942

原创 下半部和推后执行的工作

1. 下半部下半部的任务就是执行与中断处理密切相关但中断处理程序本身不执行的工作。比如,如果上半部把数据从硬件拷贝到内存,那么当然应该在下半部中处理它们。如何决定什么任务在哪部分完成取决于驱动程序开发者自己的判断。注意,中断处理程序会异步执行,并且在最好的情况下它会锁定当前的中断线。这里有些建议:1) 如果一个任务队时间非常敏感,将其放在中断处理程序中执行2) 如果一个任务和硬件相关,

2009-06-07 18:56:00 1314

原创 进程地址空间

1. 进程地址空间其实内核除了管理本身的内存外,还必须管理进程的地址空间。Linux操作系统采用虚拟内存技术,因此系统中的所有进程之间以虚拟方式共享内存。进程地址空间由每个进程中的线性地址区组成,而且内核允许进程使用该空间中的地址。进程之间可以选择共享地址空间,我们称为这样的进程为线程。内存地址是一个给定的值,它要在地址空间范围之内的,这些可被访问的合法地址区间被称为内存区域,通过内核

2009-06-07 18:24:00 1697

原创 中断和中断处理程序

1. 中断        Linux内核要对连接到计算机上的所有硬件设备进行管理,首先要能和它们互相通信。从所周知,处理器的速度跟外围硬件设备的速度往往不在一个数量级上。所以,需要一种机制,如果轮询(polling)是一种解决办法,可以让内核定期对设备的状态进行查询,然后做出相应的处理,但这让内核做了不少无用功。    更好的办法是由我们来提供一种机制,让硬件在需要的时候再向内核发出信

2009-06-07 12:32:00 7142

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除