下载此文档

计算机操作系统PV操作例题.doc


文档分类:IT计算机 | 页数:约10页 举报非法文档有奖
1/10
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/10 下载此文档
文档列表 文档介绍
问题1 一个司机与售票员的例子
在公共汽车上,为保证乘客的安全,司机和售票员应协调工作:
停车后才能开门,关车门后才能行车。用PV操作来实现他们之间的协调。
S1:是否允许司机启动汽车的变量
S2:是否允许售票员开门的变量
driver()//司机进程
{
while (1)//不停地循环
{
P(S1);//请求启动汽车
启动汽车;
正常行车;
到站停车;
V(S2); //释放开门变量,相当于通知售票员可以开门
}
}
busman()//售票员进程
{
while(1)
{
关车门;
V(S1);//释放开车变量,相当于通知司机可以开车
售票
P(S2);//请求开门
开车门;
上下乘客;
}
}
注意:busman() driver() 两个不停循环的函数
 
 
 
问题2  图书馆有100个座位,每位进入图书馆的读者要在登记表上登记,退出时要在登记表上注销。要几个程序?有多少个进程?(答:一个程序;为每个读者设一个进程)
 
(1)       当图书馆中没有座位时,后到的读者在图书馆为等待(阻塞)
(2)       当图书馆中没有座位时,后到的读者不等待,立即回家。
 
解(1 )
设信号量:S=100;  MUTEX=1
P(S)
P(MUTEX)
登记
V(MUTEX)
阅读
P(MUTEX)
注销
V(MUTEX)
V(S)
 
  
解(2)
设整型变量 COUNT=100;
信号量:MUTEX=1;
P(MUTEX);
IF (COUNT==0)
{ V(MUTEX);
   RETURN;
}
COUNT=COUNT-1;
登记
V(MUTEX);
阅读
P(MUTEX);
COUNT=COUNT+1;
V(MUTEX);
RETURN;
问题3  有一座东西方向的独木桥;用P,V操作实现:
(1)       每次只允许一个人过桥;
(2)       当独木桥上有行人时,同方向的行人可以同时过桥,相反方向的人必须等待。
(3)       当独木桥上有自东向西的行人时,同方向的行人可以同时过桥,从西向东的方向,只允许一个人单独过桥。(此问题和读者与写者问题相同,东向西的为读者,西向东的为写者)。
(1)解
设信号量 MUTEX=1
P (MUTEX)
  过桥
V (MUTEX)
(2)解
设信号量: MUTEX=1 (东西方互斥)
      MD=1    (东向西使用计数变量互斥)
   MX=1    (西向东使用计数变量互斥)
设整型变量: CD=0  (东向西的已上桥人数)
        CX=0  (西向东的已上桥人数)
 
从东向西:
P (MD)
IF (CD=0)
{P (MUTEX)  }
CD=CD+1
V (MD)
过桥
P (MD)
CD=CD-1
IF (CD=0)
{V (MUTEX)  }
V (MD)
从西向东:
P (MX)
IF (CX=0)
{P (MUTEX)  }
CX=CX+1
V (MX)
过桥
P (MX)
CX

计算机操作系统PV操作例题 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数10
  • 收藏数0 收藏
  • 顶次数0
  • 上传人mh900965
  • 文件大小75 KB
  • 时间2017-12-10