易截截图软件、单文件、免安装、纯绿色、仅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)


相关文档:

实战Linux Bluetooth编程(六) L2CAP编程实例

例一:发送Signaling Packet:
Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得Signaling Command使用CID 0x0001.
多个Command可以在一个C-frame(control frame)中发送。
 如果要直接发送Signaling Command.需要建立SOCK_RAW类型的L2CAP连接Socket。这样才有机会自己填充Command Code,Identi ......

LINUX期末复习 进程与进程管理

一、LINUX的进程状态 僵死态:当父进程还没有结束前,子进程就已经先结束了,这时子进程的资源没有人来回收。通常父进程需要用wait来等待子进程的结束。
进程的模式:用户模式(执行用户程序),内核模式(执行操作系统代码)
进程的类型:系统进程,用户进程 二、进程管理 ①fork函数
功能:创建一个全新的 ......

有趣的linux命令(English)

Some humorous things to do to a UNIX system:
from the csh (c shell):
 
% make love
Make: Don't know how to make love. Stop.
 
% got a light?
No match.
 
% sleep with me
bad character
 
% man: Why did you get a divorce?
man:: Too many arguments.
 
% rm God
rm: ......

linux目录架构

linux目录架构
/   根目录
/bin    常用的命令 binary file 的目錄
/boot   存放系统启动时必须读取的档案,包括核心 (kernel) 在内
     /boot/grub/menu.lst   GRUB设置
     /boot/vmlinuz   内核
 & ......

Linux C 开发环境(debian)

#apt-get install gcc (编译器)
#apt-get install gdb (调试)
#apt-get install libc6-dev (开发库)
如果没有开发库,gcc的时候就会错误
gcc h.c
h.c: In function ‘main’:
h.c:1: warning: incompatible implicit declaration of built-in function ‘prin ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号