易截截图软件、单文件、免安装、纯绿色、仅160KB

linux 2.6源代码情景分析笔记之进程5

等待队列在内核中很多用途,尤其用在中断处理、进程同步及定时。等待队列实现了在事件上的条件等待:希望等待特定事件的进程把自己放进合适的等待队列,并放弃控制权。因此,等待队列表示一组睡眠的进程,当某一条件变为真时,由内核唤醒它们。
等待队列由双向链表实现,其元素包括指向进程描述符的指针。每个队列都有一个等待队列头,等待队列头是一个类型为wait_queue_head_t的数据结构。
struct __wait_queue_head {
        spinlock_t lock;
        struct list_head task_list;
};
typedef struct __wait_queue_head wait_queue_head_t;
等待队列由中断处理程序和主要内核函数修改。同步是通过等待队列头中的lock自旋锁达到的,task_list字段是等待进程链表的头。
等待队列链表中的元素类型为wait_queue_t:
struct __wait_queue {
        unsigned int flags;
#define WQ_FLAG_EXCLUSIVE       0x01
        struct task_struct * task;
        wait_queue_func_t func;
        struct list_head task_list;
};
每个元素代表一个睡眠进程,该进程等待某一事件的发生,它的描述符地址放在task字段中。task_list字段中包含的是指针,由这个指针把一个元素连接到等待相同时间的进程链表中。
有两种睡眠:互斥进程(等待队列元素的flags字段为1)由内核有选择地唤醒,而非互斥进程(flags数值为1)总是由内核在事件发生时唤醒。
#define __WAIT_QUEUE_HEAD_INITIALIZER(name) {                           \
        .lock           = SPIN_LOCK_UNLOCKED,                           \
        .task_list      = { &(name)


相关文档:

ACE中的Thread Mutex在linux下的使用

ACE库中专门对线程同步提供了两个类,一个是ACE_Thread_Mutex另一个是ACE_REcursive_Thread_Mutex。 在我看 来,在linux下进行线程同步,不要使用ACE_Thread_Mutex,用ACE_REcursive_Thread_Mutex就可以了。原因很 简单,因为ACE_Thread_Mutex不支持线程重入。一旦重入(同一个线程调用两次ACE_Thread_Mutex: ......

linux svn命令大全


1、将文件checkout到本地目录
svn checkout path(path是服务器上的目录)
例如:svn checkout svn://192.168.1.1/pro/domain
简写:svn co
2、往版本库中添加新的文件
svn add file
例如:svn add test.php(添加test.php)
svn add *.php(添加当前目录下所有的php文 ......

Linux Find 命令精通指南

作者:Sheryl Calish
简单介绍这一无处不在的命令的强大的方面以及混乱的方面。
2008 年 7 月发布
Linux find
命令是所有 Linux 命令中最有用的一个,同时也是最混乱的一个。它很难,因为它的语法与其他 Linux 命令的标准语法不同。但是,它很强大,因为它允许您按文件名、文件类型、用户甚至是时间戳查找文件。使用 ......

linux修改屏幕刷新率

1、先备份好:
  sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
  2、打开xorg.conf:
  sudo gedit /etc/X11/xorg.conf
  3、请找到以下一段在这改:
  Section "Monitor"
  Identifier "Generic Monitor"
  Option "DPMS"
  HorizSync 28-70
  VertRefr ......

Linux中用rdate实现时间自动同步

 
                          Linux
中用
rdate
实现时间自动同步
原文地址:http://liuxh6.itpub.net/post/528/451628
在各种
linux
中都有
rdate
命令,只是一般很少有人 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号