Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29307
  • 博文数量: 13
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 120
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-03 11:14
文章分类
文章存档

2011年(1)

2009年(12)

我的朋友

分类: LINUX

2009-03-12 08:57:00

Semaphore是用于保护临界区的一种常用方法。

与自旋锁相同的是,只用得到信号量的进程才能执行临界代码。

不同的是,当获取不到信号量时,进程不会原地打转而是进入休眠等待状态。

 

Int down_interruptible(struct semaphore * sem)

Down()进入睡眠状态的进程不能被信号打断

Down_interruptible进入睡眠状态的进程能被信号打断

 

Wait_event_interruptible(queue,condition)等待事件!满足condition时,等待队列被唤醒。

 

Linux驱动程序中,使用wait queue来实现阻塞进程的唤醒。

 

Select poll用于查询设备的状态。以便用户获知能否对设备进行非阻塞访问。它们都需要设备驱动程序中的poll函数支持。

 

void poll_wait(struct file *filp, wait_queue_heat_t *queue, poll_table * wait);

poll_wait函数所做的工作是把当前进程添加到wait参数指定的等待列表(poll_table)中。

阅读(384) | 评论(0) | 转发(0) |
0

上一篇:Linux 进程调度原理1

下一篇:堆栈详解

给主人留下些什么吧!~~