操作系统_信号量
来源:互联网 发布:js判断不等于0 编辑:程序博客网 时间:2024/06/08 09:47
理解信号量首先需要了解进程间通讯的基本概念。
进程间通讯
- 进程间通讯 (IPC)要解决的问题:1.进程间传递信息 2.保证两个以上的进程在关键活动处不会互相影响 3.进程间有依赖关系时,保证恰当的顺序
- 进程间的关系 _同步
- 进程间的关系_互斥
信号量问题
荷兰学者Dijkstra规定信号量只能做所谓的P 操作和 V操作。信号量为非负初值的整型变量,并且有一个队列(存放关于该信号量的阻塞进程)与信号量关联。
当执行 P(S)操作时,信号量S的值减 1,小于0阻塞。V操作反之。
- 分析问题:用信号量解决问题之前首先要确定进程间的关系是同步还是互斥
- 互斥关系:信号量初值设置为1,进程间进行上锁
信号量不需要忙等,条件不满足时阻塞。
semaphore mutex = 1;/*set mutex.count = 1*/DOWN(mutex); -临界区-UP(mutex);
互斥信号量只有两种状态:未上锁或者上锁
- 同步关系:进程有一定的执行顺序。多个信号量一般实现同步的信号量的初值可以设为0。
在需要等待的进程中执行P(S1)操作,如果之前的进程没做完,则当前进程进入等待,之前的进程得以执行。
这些进程可以使用以下信号量实现同步:semaphore S1, S2, S3 = 0, 0, 0;
进程A:
- do work of A-UP(S1); /* Let B or C start */
进程B:DOWN(S1); /* Block until A is finished */ - do work of BUP(S2);进程C:DOWN(S1);- do work of CUP(S3);进程D:DOWN(S2);DOWN(S3); - do work of D
- 同步关系中,配对的 P、V 操作分别在不同的进程里。有的时候P操作和 V操作的个数并不相等。
- 分析哪个进程不可以先执行,在不允许直接进行的操作前面加上 P操作来进行条件限制。在相对的基础进程操作后面加上对同一个信号量的V 操作。
阅读全文
0 0
- 操作系统_信号量
- 操作系统--信号量
- 操作系统信号量
- 操作系统 信号量 PV操作
- 操作系统 信号量 vs 互斥锁
- 【操作系统】【信号量】理发师问题
- 操作系统 [信号量] [并发控制]
- 操作系统之-----信号量机制
- 【操作系统原理】信号量机制
- 操作系统 *** 实现信号量
- 操作系统之信号量
- 操作系统信号量通俗理解
- Nuttx操作系统信号量Semaphore
- 信号量-摘自《现代操作系统》
- 操作系统学习-6. 信号量
- 信号量(1/2)_无名信号量
- 信号量(2/2)_有名信号量
- 操作系统——信号量机制
- 问题:2006年培养学员八万人,每年增长25%,请问按此增长速度,到哪一年培训学员人数达到20万人?
- Spring源码分析:多个bean同时满足注入条件时,spring的选择
- deeplearning_Planardataclassificationwithonehiddenlayer
- Qemu for windows 使用实例
- 决策树
- 操作系统_信号量
- 筛法求素数
- 第二章课后习题4
- Linux教程【5】- 文件处理命令
- QT 键盘 很多按键的处理方法
- LeetCode-ArrayAndDigit
- 游标
- 测试问题
- java nio