发布时间:2012-07-26 11:21:04
你需要调度一个动作以后发生, 而不阻塞当前进程直到到时, 内核定时器是给你的工具. 这些定时器用来调度一个函数在将来一个特定的时间执行,定时器 API内核提供给驱动许多函数来声明, 注册, 以及去除内核定时器. 下列的引用展示了基本的代码块:#include struct timer_list{  .........【阅读全文】
发布时间:2012-07-26 10:47:46
jiffies 计数器 定时器中断由系统定时硬件以规律地间隔产生; 这个间隔在启动时由内核根据 HZ 值来编程, HZ 是一个体系依赖的值, 每次发生一个时钟中断, 一个内核计数器的值递增. 这个计数器在系统启动时初始化为 0, 因此它代表从最后一次启动以来的时钟嘀哒的数目. 这个计数器和来读取它的实用函数位于 , .........【阅读全文】
发布时间:2012-07-26 09:57:11
llseek 方法实现了 lseek 和 llseek 系统调用. 我们已经说了如果 llseek 方法从设备的操作中缺失, 内核中的缺省的实现进行移位通过修改 filp->f_pos, 这是文件中的当前读写位置. 请注意对于 lseek 系统调用要正确工作, 读和写方法必须配合, 通过使用和更新它们收到的作为的参数的 offset 项.你可能需要提供你自.........【阅读全文】
发布时间:2012-07-26 09:49:25
使用非阻塞 I/O 的应用程序常常使用 poll, select, 每个允许一个进程来决定它是否可读或者写一个或多个文件而不阻塞. 这些调用也可阻塞进程直到任何一个给定集合的文件描述符可用来读或写. 因此, 它们常常用在必须使用多输入输出流的应用程序, 而不必粘连在它们任何一个上.支持这些调用都需要来自设备驱.........【阅读全文】
发布时间:2012-07-25 20:46:49
在 Linux 中, 一个等待队列由一个"等待队列头"来管理, 一个 wait_queue_head_t 类型的结构, 定义在中. 一个等待队列头可被定义和初始化, 使用:DECLARE_WAIT_QUEUE_HEAD(name); 或者动态地, 如下:wait_queue_head_t my_queue;init_waitqueue_head(&my_queue); 简单睡眠当一个进程.........【阅读全文】