操作系统学习笔记之进程管理(四)

本文详细介绍了操作系统中进程管理的信号量机制,包括整型信号量的P、V操作,记录型信号量的资源管理和阻塞队列,以及AND型信号量的概念,强调了信号量在防止死锁和实现资源互斥中的作用。
摘要由CSDN通过智能技术生成

一)整型信号量
整型数
P操作(wait)原语
V 操作(signal)原语

wait(s)
while s <= 0 do no-op
s = s-1
sigal(s):
s= s +1;
注:s 小于等于0就不能使用s。
wait(s)和signal(s)都是原子操作。
只要信号量s<=0就不断测试,不满足让权等待。

(二)记录型信号量
包含两个数据项:
type semaphore = record
value:integer;
L:list of process;(L是链表,是一个阻塞队列,该队列正在等待使用资源)
end
s.value为资源信号量初始值:某类资源的数目。
(a) s.value >= 0 代表系统中可用的资源数目。
(b) s.value <=0 其绝对值代表系统中等待使用资源的进程的个数。
(c) s.value初始值为1时:只允许一个进程访问临界资源,是互斥信号量。
wait操作:申请一个单位资源。
Procedure: wait(s)
var s:semaphore = ;
begin
s.value = s.value-1;
if s.value < 0 then block(s,L)//使得正在执行的进程进入阻塞状态。
end

signal操作:释放一个单位资源
Procedure:signal(s);
begin:
s.value &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值