以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 操作系统原理 』  (http://bbs.xml.org.cn/list.asp?boardid=63)
----  关于管程的Hoare观点  (http://bbs.xml.org.cn/dispbbs.asp?boardid=63&rootid=&id=77680)


--  作者:zouhaofeng
--  发布时间:10/7/2009 2:07:00 PM

--  关于管程的Hoare观点
操作PP的定义

procedure PP(var x_sem:semaphore=0,x_count:integer,St:struct)
begin
    x_count:=x_count+1;
    if St.next_count>0 then V(St.next);
    else V(St.mutex);
    P(x_sem);
    x_count:=x_count-1;
end;

其中x_count代表阻塞等待资源的进程数
    x_sem代表进入管程的进程在临界资源忙时能阻塞自己引入的信号量
  next指的是进程在发出操作VV的进程在唤醒其他阻塞进程后自己被阻塞而设立的信号量
  next_count 指的是next的个数


我想问下为什么x_count要先进行x_count:=x_count+1;而后面又要进行  x_count:=x_count-1;操作   为什么先加后减呢  他们各自的作用是什么啊?


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
31.006ms