立即学习:https://edu.csdn.net/course/play/7883/161187?utm_source=blogtoedu
3.2 处理机管理(进程管理)
二.进程互斥关与同步
1.进程间两种形式的制约关系
(1) 间接相互制约关系---源于资源共享
(2) 直接相互制约关系---源于进程合作
2.临界资源
- 临界资源(Critical Resource):把一段时间内只允许一个进程访问的资源称为临界资源或独占资源(特点:一定要互斥访问)
- 临界区(Critical Section):每个进程中访问临界资源的那段代码称为临界区
保证进程不同时进入临界区,就能保证进程互斥的访问临界资源.
三.信号量机制
- 信号量是OS提供的管理公有资源的有效手段.
- 信号量是一个整数,当信号量大于等于零时,代表可供并发进程使用的资源数量,当信号量小于零时,表示处于阻塞态进程的个数.
Wait 操作: (P操作)
- 申请资源,减量操作,S.value:=S.value-1
- 当S.value<0时,表示资源分配完,进行自我阻塞.
Signal操作:(V操作)
- 释放资源,增量操作,S.value=S.value+1
- 当S.value<=0,唤醒S.L链表中的等待进程.
四.信号量的应用
比如:打印机
- 利用信号量实现进程互斥(模式)(第二容易考到)
- 利用信号量实现前驱关系(模式)(软设第一容易考到)
- 利用记录型信号量实现同步(模式)(第三容易考到)
1.利用信号量实现进程互斥(模式)
为使多个进程互斥的访问某临界资源,须为该资源设置一互斥信号量mutex,并设其初始值为1,然后将各进程访问资源的临界区CS置于wait(mutex)和signal(mutex)之间即可.
wait和signal一定是成对出现的
注意:实现互斥资源的,初值一定是互斥资源的个数.
2.利用信号量实现前驱关系(模式)(历年上午考试经常考到)
设有两个并发执行的进程P1和P2,P1中有语句S1,P2有语句S2,希望在S1执行后再执行S2.
使进程P1和P2共享一个公用信号量S,并赋予其初值为0.
注意:实现前驱关系的,初值一定是0.有几个有向边就设几个信号量.
3.利用记录型信号量实现同步(模式)
P1,p2两进程因合作完成一项任务而共用一个变量x.
进程p2将处理结果送入x;进程P1将x的结果打印.