一.同步和互斥机制 信号量 互斥锁 同步:指多个任务按照约定的先后次序相互配合来完成一件事情. 比如读线程等待写线程写完之后再去读. 二.信号量-P/V操作 P(s)含义: if(信号量>0) { 申请资源的任务运行; 信号量--; } else {申请资源的任务阻塞} V(S)含义: 信号量++; ...
分类:
系统相关 时间:
2020-04-20 23:21:07
阅读次数:
99
1. 参考答案: 好的经验教训就是:对于确定信号量的个数和含义,初值的时候嘞!对信号量的作用很是可以适当的去加一些注释2333! 百家之见: 2. 参考答案: 接下来,很自然地引申到我矿2014年操作系统的考研题2333——> 我初步写的,过程如下,待与大佬们交流请教指正2333哈哈 透过现象看见本 ...
分类:
其他好文 时间:
2020-04-16 00:38:42
阅读次数:
96
知识框架 主导:PV操作 核心:(1)进程管理,存储管理,文件管理,I/O管理 (2)多处理机,多媒体 (408中没有) 概念:进程,线程,死锁,中断,DMA等 1.1 操作系统的目标和作用 操作系统的目标与应用环境有关。 (1)在查询系统中所用的OS,希望能提供良好的人机交互性; (2)对于应用于 ...
分类:
其他好文 时间:
2020-04-11 20:23:42
阅读次数:
98
进程间通信——信号量(信号灯) 信号与信号量 信号:是由用户、系统或者进程发送给目标进程的信息,以通知目标进程某个状态的改变或系统异常,是一种处理异步事件的方式。 信号量:是一个特殊的变量,本质是计数器,记录了临界资源的数量。进程对其访问都是原子操作(PV操作),用于多线程、多进程之间同步临界资源。 ...
分类:
系统相关 时间:
2019-12-29 20:03:48
阅读次数:
116
cpp11里用于并发的工具有主要有thread、mutex、condition_variable,其中condition_variable条件变量wait可以附加条件,是对条件和锁的封装,如果不加条件只用锁就是一元信号量,只有一元的pv操作,而附加了条件后若条件为真则直接后续,非真则等待(阻塞并归还 ...
分类:
编程语言 时间:
2019-11-12 20:02:33
阅读次数:
74
管道 管道是Linux支持的最草的IPC(进程间通信)方式,可以分为有名管道和无名管道 无名管道 1. 管道是半双工,只能支持单向流动,两个进程需要建立两个通道来进行通信 2. 无名管道通过pipe()函数创建,只能用于父子进程或者兄弟进程之间 3. 一个进程向管道中写数据,加入到管道缓冲区的尾部, ...
分类:
系统相关 时间:
2019-09-23 09:31:57
阅读次数:
90
信号量的类型定义 一般来说,信号量(semaphore)$S$ 时,表示资源数量减去需求数量。信号量的值仅能由 PV 操作来改变。 执行一次 P 操作意味着请求一个单位资源,因此 $S$ 的值减 1;当 $S , con: Condvar, } impl Semaphore { pub fn new ...
分类:
其他好文 时间:
2019-08-30 21:17:30
阅读次数:
99
转自http://c.biancheng.net/view/1232.html pv操作是一对原子操作,p操作的作用是申请资源,即将资源数减1,然后判断资源数是否小于0,若小于0,则自我阻塞在当前资源链表中。 v操作的作用是归还资源,将所申请的资源数加一,然后判断资源数是否小于等于0,若小于等于0说 ...
分类:
其他好文 时间:
2019-07-02 21:25:32
阅读次数:
137
43、现有3个生产者P1、P2、P3,他们都要生产橘子汁,每个生产者都已分别购得两种不同的原料,待购齐第三种原料后就可配制成橘子汁装瓶出售。有一供应商能源源不断的供应糖、水、橘子精,但每次只拿出一种原料放入容器中供应给生产者。当容器中有原料时,需要这种原料的生产者可以取走,当容器空时供应商又可放入一 ...
分类:
其他好文 时间:
2019-05-10 21:59:02
阅读次数:
183
将生产者和消费者问题深入理解、融会贯通。 1.书上课后练习P187-43 semaphore mutex=1,p=1, p1=0, p2=0, p3=0; process p(){ while(ture){ p(p); p(mutex); 放入原料; if(放入糖) v(p2); if(放入水) v ...
分类:
其他好文 时间:
2019-05-09 23:45:23
阅读次数:
184