回 帖 发 新 帖 刷新版面

主题:刚学计算机系统不久!遇到难题。求帮忙!

假定阅览室可同时容纳100个人阅读。读者进入时,必须在阅览室门口的一个登记表上登记。内容包括姓名,座位等。离开时要撤消掉登记内容。用P,V操作描述读者进程的同步算法!

回复列表 (共5个回复)

沙发

看我前面发的生产者-消费者问题的帖子

板凳

我觉得P,V操作好难学哦[em10],我也不会这题。

3 楼

哎,没好好学OS

4 楼

三个信号量:seats初值100,表示座空;readers表示阅览室的读者数,初值为0;mutex为互斥信号量。
process producer i ( i=1,2, …, 100 )
         begin
            repeat
               if(seats);
               P (seats) ;
               P (mutex) ;
               读者进入,记录;
               V (mutex) ;
                V (readers) ;
end;
process  consumer j ( j=1,2, …, 100 )
           begin
             repeat
                if(readers)
                P ( readers );
                P ( mutex );
                读者离开,并记录;
                V ( mutex );
                V (seats);
end

5 楼

mutex初值为1,不好意思,掉了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册