典型例题PV操作_第1页
典型例题PV操作_第2页
典型例题PV操作_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1、请用信号量解决以下的“过独木桥问题:同一方向的行人可连续过桥,当某一方向有人过桥时,另一方向的行人必须等待;当某 一方向无人过桥时,另一方向的行人可以过桥。将独木桥的两个方向分别标记为A和B;并用整形变量countA和 coimtE分别表示A、E方向上已在独木桥上的行人数,初值为0; 再设置三个初值都1的互斥信号量:SA用来实现对countA的互斥 访问,SB用来实现对countB的互斥访问,mutex用来实现两个方向 的行人对独木桥的互斥使用。则具体描述如下:VarSA, SB .mutex: semaphore:=1,1,1;endCount AfoimtB: integer: =0

2、O beginparbeginCount AfoimtB: integer: =0 O beginparbeginprocessA: beginwait(SA);if(coiintA=0) thenwait(mutex);countA:=countA+l;signal(SA);过独木桥;wait(SA);countA:=countA-1;if (countA=0) then signal(mutex);signa(SA);processB: beginwait(SB);if(countB=0) thenwait(mutex);countB :=countB+1;signal(SB);过独木桥;

3、wait(SB);countB :=countB-1;if (countB=0) then signal(mutex);signa(SB);endparendend2、有一阅览室,共有100个座位。为了很好利用它,读者进入时必 须先在登记表上进行登记。该表表目设有座位号和读者姓名;离开 时再将其登记项扌宾除。试用P、V操作描述进程之间的同步或算法。试写岀读者迸入”和注销”之间的同步算法。答:读者的动作有两个,一是填表进入阅览室读书,这时要考虎阅览室里是否有座位; 二是读者闻读完毕,需要注销登记再离开阅览室,这时的操作要考虎阅览室里是否有 读者存在。读者在阅览室读书时,由于没有引起资源的变动,不

4、算动作变化。因此,设置算法所涉及的三个信号量:empty资源信号量一表示阅怎室里的空 座位的数目,初值为100 ;full资源信号量一示阖览室里有人的座位的数目(或 表示闻览室里的读者的数目)”初值为0 ; mutex互斥信号量一表示对登记表这个 临界资源的互斥访问,初值设为10 使用信号量机制对读者进入阅览室和注销“登记之间的同步算法描述如下:Semaphore empty,full,mutex; 首先定义两个资源信号量empty, full和一个互斥信号 量 mutexempty.value= 100; full.value=O;mutex.value=l;cobegi nprocess getin() 读者进入阅览室的进程while(l)P (empty);没有座位则离开P (mutex);迸入临界区填写登记表;进入阅览室读书;V (mutex);离开临界区V (full);V (full);process getout () 读者注销登记、离开阅览室的进程while(l)P(full);阅览室是否有人在读书(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论