计算机操作系统(第二版)课件:管程机制_第1页
计算机操作系统(第二版)课件:管程机制_第2页
计算机操作系统(第二版)课件:管程机制_第3页
计算机操作系统(第二版)课件:管程机制_第4页
计算机操作系统(第二版)课件:管程机制_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

锁机制、专用指令等存在“忙等”现象由用户编写同步控制代码:加重了用户负担!各同步原语操作分散在用户程序中,系统无法有效地控制和管理;

用户编程时若使用wait()/signal()操作不当,后果严重(死锁)基于以上情况,1971年DIjkstra提出了“秘书进程”思想。1973年Hansan和Hoare又将“秘书进程”思想发展为“管程”概念,把并发进程间的同步操作分别集中在相应的管程中。

进程同步3.4.4管程机制1.管程的引人:前述互斥手段的不足:一个管程定义了一个数据结构和能为并发进程所执行(在该数据结构上)的一组操作,这组操作能同步进程和改变管程中的数据3.4.4管程机制2.管程的定义管程组成:管程名字局部于管程的共享变量的说明;对该数据结构进行操作的一组过程;初始化局部变量的语句。局部数据条件变量过程1过程n出口变量初始化代码管程入口等待调用进程队列3.4.4管程机制2.管程的定义

管程特性:信息隐蔽性

任一时刻,管程中只能有一个活跃进程3.条件变量每个独立的条件变量是和进程需要等待的某种原因(或说条件)相联系的

当定义一个条件变量时,系统就建立一个相应的等待队列。

条件变量的操作:C.wait:阻塞调用进程,并使管程可用C.signal:唤醒相应条件变量上的等待进程Javawait()notify()C#monitor.wait()monitor.pulse()3.条件变量

引入条件变量后的一个可能问题:进程Q执行C.wait()阻塞;进程P执行C.signal()唤醒进程Q后,管程中有两个活跃进程问题:解决方法:P等待,直到Q退出管程或等待另一个条件Q等待,直到P退出管程或等待另一个条件Hanson采用了折中的方法:规定C.signal()为过程体最后一个操作,当进程P执行完毕后,P退出管程,另一个进程Q执行。这两种方法各自有什么优缺点?typePC=monitor in,out,count:int;buffer[N]:item; notfull,notempty:condition; procedureput(item)procedureget(item){{if(count==N)thenif(count=0)thennotfull.wait();notempty.wait();buffer(in)=item;nextc=buffer(out);in=(in+1)modN;out=(out+1)modN;count=count+1;count=count-1;notempty.signal();notfull.signal();}}Beginin=out=count=0;end3.4.4管程机制4.利用管程解决生产者--消费者问题

PC管程定义:procedureproducerprocedureconsumer{{while(true)while(true){{produceranitem;PC.get(item);PC.put(item);consumetheitem;}}}}

monitor.enter;PC.put(item);monitor.leave;3.4.4管程机制4.利用管程解决生产者--消费者问题

生产者及消费者算法描述:以下关于管程的说法中,错误的是()管程是进程同步工具,解决信号量机制大量同步操作分散的问题管程每次只允许一个进程进入管程管程中signal操作的作用和信号量机制的V操作相同管程是被进程调用的,是语法范围,无法创建和撤销ABCD提交单选题10分下面关于管程的说法,不正确的是()管程是一种进程同步机制管程是一种编程语言成分管程是一种系统调用管程比信号量更容易保证并行编程的正确性ABCD提交单选题10分下面关于管程的描述中错误的是(

)管程是一种进程同步机制,解决信号量机制中大量同步操作分散的问题管程机制需要编译器的支持任一时刻,管程中只能有一个活跃进程管程外过程可以

温馨提示

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

最新文档

评论

0/150

提交评论