写出+wait(s)和+signal(s)原理对信号量s完成P、V操作的算法.
1个回答
关注
展开全部
咨询记录 · 回答于2022-06-13
写出+wait(s)和+signal(s)原理对信号量s完成P、V操作的算法.
写出+wait(s)和+signal(s)原理对信号量s完成P、V操作的算法.您好亲,Dijkstra把整型信号量定义为一个整形量,除初始化外,通过两个标准的原子操作(Atomic Operation)wait(s)和signal(s)来访问.这两个操作很长时间以来,一直被分别称为P、v操作.wait和signal操作可描述为:wait(s):while s≤0 do no_op:s:=s-1;signal(s):s:=s+1;wait(s)和signal(s)是两个原子操作,因此,它们在执行时是不可中断的.亦即产生一个进程在修改某信号量时,没有其他进程可同时对该信号量进行修改.此外,在wait操作中,对s值的测试和做s:=s-1操作时,都不可中断.信号量的物理意义如下:(1) 若信号量s为正值,则该值等于在封锁进程之前对信号量s可施行的P操作数,亦即等于s所代表的实际使用的物理资源个数.(2) 若信号量s为负值,则其绝对值等于登记排列在该信号量s队列之中等待进程的个数,亦即恰好等于对信号量s实施P操作而被封锁起来并进入信号量s队列的进程数.(3) 通常P操作意味着请求一个资源,V操作意味着释放一个资源.在一定条件下,P操作代表挂起进程操作,而V操作代表唤醒被挂起进程的操作.希望可以帮到您哦。
已赞过
评论
收起
你对这个回答的评价是?