系分考试知识:PV操作释疑

系分考试知识:PV操作释疑,第1张

系分考试知识:PV操作释疑,第2张

信号量
信号量是最早出现的用来解决进程同步与互斥问题的机制,

包括一个称为信号量的变量及对它进行的两个原语操作。

一. 信号量的概念

1.信号量的类型定义

每个信号量至少须记录两个信息:信号量的值和等待该信号量的进程队列。它的类型定义如下:(用类PASCAL语言表述)

semaphore = record

value: integer;

queue: ^PCB;

end;

其中PCB是进程控制块,是操作系统为每个进程建立的数据结构。

s.value>=0时,s.queue为空;

s.value<0时,s.value的绝对值为s.queue中等待进程的个数;

2.PV原语

对一个信号量变量可以进行两种原语操作:p操作和v操作,定义如下: procedure p(var s:samephore);

{

s.value=s.value-1;

if (s.value<0) asleep(s.queue);

}

procedure v(var s:samephore);

{

s.value=s.value+1;

if (s.value<=0) wakeup(s.queue);

}

其中用到两个标准过程:

asleep(s.queue);执行此操作的进程的PCB进入s.queue尾部,进程变成等待状态

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 系分考试知识:PV操作释疑

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情