Chinaunix首页 | 论坛 | 博客
  • 博客访问: 140970
  • 博文数量: 17
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 475
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-30 14:55
文章分类

全部博文(17)

文章存档

2011年(1)

2009年(12)

2008年(4)

我的朋友

分类: LINUX

2009-03-31 12:28:17


内核同步


根据Harvey M.Deitel等著的操作系统(第三版)的说法,linux内核提供了两种机制进行互斥访问:锁与信号量。

1. 自旋锁

自旋锁禁止抢占,但本身可能导致无限延期、甚至死锁,通常通过抢占锁计数器进行控制。

2. 阅读程序/写程序锁

阅读锁可以被多重持有,写入锁只能被一个程序持有。

3. 顺序锁

有写入程序在等待时,拒绝新的读取程序进入。

内核信号量

计数的信号量, 由等待队列与计数器表示。

进程间通信

1. 信号

不支持进程间交换多于一个字的数据;

进程或者线程以三种方式中的一种处理信号,这三种方式分别是:

    1. 忽略信号;

    2. 捕捉信号;

    3. 执行内核为信号定义的默认动作,包括放弃、执行内存转储、简单忽略信号、停止和继续。

2. 管道

利用生产者消费者模型进行通信。

3. 套接字

主要类型包括:

流套接字,以字节流传输信息;

数据文报套接字,在数据文报的独立单元中传输信息。

4. 消息队列

5. 共享内存

6. System V信号量

阅读(1876) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~