发布时间:2013-09-25 18:43:00
非阻塞I/O使我们的操作要么成功,要么立即返回错误,不被阻塞。 对于一个给定的描述符两种方法对其指定非阻塞I/O: (1)调用open获得描述符,并指定O_NONBLOCK标志 (2)对已经打开的文件描述符,调用fcntl,打开O_NONBLOCK文件状态标志。flags = fcntl( s, F_GETFL, 0 ) )fcntl( s, F_SETFL, flags | O_NONBLOCK ).........【阅读全文】
发布时间:2013-09-25 18:23:07
1、struct inode──字符设备驱动相关的重要结构介绍内核中用inode结构表示具体的文件,而用file结构表示打开的文件描述符。Linux2.6.27内核中,inode结构体具体定义如下:struct inode {struct hlist_node i_hash;struct list_head i_list;struct list_head i_sb_list;struct list_head i_dentry;unsi.........【阅读全文】
发布时间:2013-09-24 16:47:25
1、功能简述:最主要作用就是从就绪进程中选择一个优先级最高的进程来代替当前进程运行。2、代码分析schedule();struct task_struct *tsk = current; //current是当前进程sched_submit_work(tsk); //避免死锁__schedule();//这就是调度的主函数了static void __sched __schedule(void){struct task_struct *pre.........【阅读全文】
发布时间:2013-09-02 23:59:34
根据内核3.1.6版本源码、书籍和网上资料,对几个函数进行分析介绍这几个函数,不得不先介绍等待队列wait_queue_head_t与完成量completion。等待队列用于使得进程等待某一特定事件的发生,无需频繁的轮询,进程在等待周期中睡眠,当时间发生后由内核自动唤醒。完成量机制是基于等待队列的,内核利用该机制等待某一操作.........【阅读全文】