第7章进程同步_第1页
第7章进程同步_第2页
第7章进程同步_第3页
第7章进程同步_第4页
第7章进程同步_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

第7章 进程同步练习题一、 单项选择题1、 P、V操作是(A)。A两条低级进程通信原语B两组不同的机器指令C两条系统调用命令D两条高级进程通信原语2、 对进程的管理和控制使用(B)。A指令B原语C信号量D信箱通信3、 若P、V操作的信号量S初值为2,当前值为-1,则表示有(B)等待进程。A0个B1个C2个D3个4、 用P、V操作管理(互斥)临界区时,信号量的初值应定义为(C)。A-lBOC1D任意值5、 用V操作唤醒一个等待进程时,被唤醒进程的状态变为(B)。A等待B就绪C运行D完成6、 进程间的同步是指进程间在逻辑上的相互(B)关系。A联接B制约C继续D调用7、 (D)是一种只能进行P操作和V操作的特殊变量A调度B进程C同步D信号量8、 (B)是解决进程间同步和互斥的一对低级通信原语。Alock和uiilockBP和VCW和SDsend和receive8、 在操作系统中,解决进程间的(D)和(B)问题的一种方法是使用(F)。A调度B互斥C通讯D同步E分派F信号量9、 用P、V操作可以解决(A)互斥问题A一切B某些C正确D错误10、 对于两个并发进程,设互斥信号量为mutex,若mutex=0,则(B)A表示没有进程进入临界区B表示有一个进程进入临界区C表示有一个进程进入临界区,另一个进程等待进入D表示有两个进程进入临界区11、 两个进程合作完成一个任务,在并发执行中,一个进程要等待其合作伙伴发来消息,或者建立某个条件后再向前执行,这种制约性合作关系被称为进程的(A)A同步B互斥C调度D执行二、 填空题1、 信号量的物理意义是当信号量值大于零时表示(可用资源的数目);当信号量值小于零时,其绝对值为(因请求该资源而被阻塞的进程数目)。2、 临界资源的概念是(一次仅允许一个进程访问的资源),而临界区是指(进程中访问临界资源的那段程序代码)。3、 系统中各进程之间逻辑上的相互制约关系称为(进程同步)。4、 若一个进程己进入临界区,其他欲进入临界区的进程必须(等待)。5、 用P、V操作管理临界区时,任何一个进程在进入临界区之前应调用(P)操作,退出临界区时应调用(V)操作。6、 在多道程序系统中,进程之间存在着的不同制约关系可以划分为两类:(同步)与(互斥)。(同步)指进程间具有一定逻辑关系;(互斥)是指进程间在使用共享资源方面的约束关系。7、 对于信号量可以做(P)操作和(V)操作,(P)操作用于阻塞进程,(V)操作用于释放进程,程序中的(P)和(V)操作应谨慎使用,以保证其使用的正确性,否则执行时可能发生死锁。8、 操作系统中,对信号量S的P操作定义中,使进程进入相应等待队列等待的条件是(SVO)三、 解析题1、 在生产者和消费者问题中,如果对调生产者(消费者)进程中的两个P操作和V操作,可能发生什么情况?。2、 在测量控制系统中,数据采集任务把采集的数据送入-•单缓冲区,计算任务从该单缓冲区中取出数据进行计算,试写出利用信号量机制实现两者共享单缓冲区的同步算法。(本题实际上是一个生产者/消费者问题,将生产者/消费者问题抽象出来,以另外一种形式描述是一种常见的试题形式)IntSe=l;/*信号量SE用于表示缓冲区有无空位置存放新的信息。*/IntSF=O;/*信号量SF用于表示缓冲区中有无可供计算的信息。*/Main()get();compute();}get。(:while(采集工作未完成){采集一个数据;P(SE);将数据送入缓冲区;V(SF);••}compute(){:while(计算工作未完成)(P(SF);从缓冲区取出数据;V(SE);)..)3、**在视频通信系统中,由进程PA采集一帧图像信息并存入环形缓冲区buffer,进程PB从buffer中取一帧数据进行处理,假设buffer的大小为11,试用P、V操作实现PA和PB。(类似生产者-消费者)INTBUFFER-SIZE=N;INTSF=O;/BUFFER中是否有可取的信息*/INTSE=N;/*BUFFER中是否有空位置以存放信息*/MAIN(){GET()COMPUTE()get。{:while(采集工作未完成){采集一个数据;P(SE);将数据送入缓冲区;V(SF);.•}compute(){:while(计算工作未完成)(P(SF);从缓冲区取出数据;V(SE);}.•}4、桌上有一空盘,允许存放一只水果,爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者取出,请用P、V原语实现爸爸、儿子、女儿三个并发进程的同步。INTSE=1;/*盘中是否为空*/INTS0=0;/*盘中是否有可取的桔子*/INTSA=0;/*盘中是否有可取的苹果*/MAIN(){COBEGINFATHER();SON();

DAUGHTER();COENDFATHER(){:P(SE);放水果;IF(水果为桔子)(SO);ELSESON(){:P(SO);取走桔子;V(SE);吃桔子DAUGHTER()SON(){:P(SO);取走桔子;V(SE);吃桔子DAUGHTER(){:P(SA);取走苹果;V(SE);吃苹果5、图给出了四个进程合作完成某一任务的前趋图,试说明这四个进程间的同步关系,并用P、V操作描述它。Sl()Sl(){:V(b2);V(b3);intb2=0:/*表示进程S2是否可以开始执行*/intb3=0:/*表示进程S3是否可以开始执行*/intb4=0:/*表示进程S4是否可以开始执行*/Main()sl();s2();s3()s4()}s2()(P(b2);••V(b4);}s3(){P(b3);..V(b4);)s4(){P(b4);/*因在S2及S3完成时均对b4做了V操作,故需两个P操作。*/P(b4);6、读者/写者问题。有一数据区为多个进程所共享,假设一些进程只能对该数据区完成读操作(读者),而另一些进程只能对其完成写操作(写者),读者和写者要遵守以下的约束:允许多个读者同时从数据区中读数据;当有读者正在读数据时,不允许写者写数据;任何时候只允许一个写者向数据区中写数据;若有写者正在写数据区,不允许读者读数据。试用P、V操作实现读者/写者问题解:INTMUTEX-COUNT;/*读进程之间互斥访问变量COUNT*/INTMUTEX-RW;/*读进程与写进程,写进程与写进程之间互斥访问DATA区*/INTCOUNT=0;/*读进程数目*/MAIN()(COBEGINREAD();WRITE();COEND)/*读者进程*/reader()/*读者进程*/reader()/*写者进程*/writer()P(mutex_count);Readcount++;If(readcount==l)P(mutex_rw);V(mutex_count);Readdatafromdataarea;P(mutex_rw);writedataintodataarea;V(mutex_rw);P(mutex_count);Readcount—;lf(readcount==0)V(mutex_rw);V(mutex_count);7、某数据库有一个写进程,多个读进程,它们之间读、写操作的互斥要求是:写进程正在写该数据库时不能有其他进程读数据库,也不能有其他进程写该数据库;读进程之间不互斥,可以同时读该数据库。请用信号量及P、V操作描述这一组进程的工作过程。(同上)8、哲学家甲请哲学家乙、丙、丁至某处讨论问题,约定全体到齐后开始讨论:在讨论的间隙四位哲学家进餐,每人进餐时都需使用刀、义务一把,餐桌上的布置如图,请用信号量及P、V操作说明四位哲学家的同步、互斥过程。信号量及P、V操作说明四位哲学家的同步、互斥过程。甲乙解:INTFORK1=1;/*资源叉1是否可用*/INTFORK2=1;/*资源叉2是否可用*/INTKNIFE1=1;/*资源刀1是否可用*/INTKNIFE2=1;/*资源刀2是否可用*/MAIN()COBEGINPa();/*Pa表示哲学家甲的活动*/Pb();PcPb();Pc();Pd();COEND)Pa()Pb()Pc()Pd()P(KNIFED;P(FORK1);P(KNIFED;P(FORK1);进餐;(KNIFED;(FORK1);P(KNIFE2);P(FORK1);进餐;(KNIFE2);(FORK1);P(KNIFE2);P(FORK2);进餐;(KNIFED;(FORK2);P(KNIFED;P(FORK2);进餐;(KNIFED;(FORK2);9、 设公共汽车上,司机和售票员的活动分别是:司机的活动:启动车辆; 售票员的活动:关车门;正常行车; 售票;到站停车; 开车门;在汽车不断地到站、停车、行车过程中,这两个活动有什么同步关系?用信号量和P、V操作实现它们的同步。解:1)同步关系:售票员关车门后向司机发开车信号,司机接到开车信号后启动车辆,在汽车正常行驶过程中,售票员售票,到站时司机停车,售票员在车停后开车门让乘客上下车。2)同步实现(用P、V操作)

INTS

温馨提示

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

评论

0/150

提交评论