操作系统
在操作系统中将用信号量来表示物理资源的实体,与队列有关。同时,须知:
信号量是一种变量类型,有如下两个分量:
- 信号量的值(value)
- value>0,表示实际可用资源数
- value=0,表示资源为0
- value<0,表示正在等待资源的进程数
- 信号量的指针:用于指向等待的进程
按用途来分,信号量分为两种:
- 公用信号量:
- 联系一组并发进程,相关进程可以在此信号量上做PV操作,初值为1,这个为1,是为了实现进程的一个互斥;
- 私有信号量:
- 联系一组并发进程,仅允许此信号量所拥有的进程执行P操作,其他相关的进程可实施V操作,初值一般为0或正整数,在进程同步中常用。
按取值来分,又有如下两种:
- 二值信号量
- 仅能取值为0或1,解决进程互斥
- 一般信号量
- 允许取值大于1,常用于解决进程同步。
产生死锁的四个必要条件:
(1) 互斥条件:一个资源每次只能被一个进程使用。
(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
评论区