操作系统第5讲_第1页
操作系统第5讲_第2页
操作系统第5讲_第3页
操作系统第5讲_第4页
操作系统第5讲_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

操作系统概念

第五讲进程通信OperatingSystemConceptionDavidfu上章回顾什么是临界区?什么是信号量,如何定义初始值?OperatingSystemConceptionDavidfu本课总体纲要进程通信(InterprocessCommunication)消息、邮箱机制共享内存机制管道机制进程通信实例解析死锁(DeadLock)死锁的概念产生死锁的必要条件死锁的排除方法死锁实例解析OperatingSystemConceptionDavidfu进程通信-分类(1)在单机系统中,进程间通信方式可分为4种:主从式(master/servantsystem)主进程可以自由使用从进程资源从进程的动作受到主进程的限制主进程和从进程关系固定应用于终端控制进程和终端进程OperatingSystemConceptionDavidfu进程通信-分类(2)会话式(Dialoguesystem)使用进程在使用服务进程提供的服务前,必须得到许可服务进程根据使用进程的要求提供服务,单控制权属于服务进程本身使用进程和服务进程关系固定应用于用户进程和磁盘管理OperatingSystemConceptionDavidfu进程通信-分类(3)消息或邮箱机制只要存在空缓存区或邮箱,发送进程就可以发送消息发送进程和接受进程无直接联系发送进程和接受进程之间存在缓冲区或邮箱用来存放被传输的消息OperatingSystemConceptionDavidfu进程通信-分类(4)共享内存机制共享内存方式不要求数据移动,两个需要互相交互的信息的进程通过对同一共享数据区(sharedmemory)的操作来达到互相通信的目的。OperatingSystemConceptionDavidfu进程通信-消息缓冲机制(5)由于消息缓冲机制中使用的缓冲区是公用缓冲区,使用消息缓冲机制传送数据时,通信进程应满足的条件:进程对缓冲区的操作必须互斥当缓冲区种无消息存在时,接收进程不能接受到任何消息设置公用信号量mutex,接收进程私用信号量SM,消息m。OperatingSystemConceptionDavidfu进程通信-消息缓冲机制(6)Send(m):Begin向系统申请一个消息缓冲区P(mutex)将消息m发送到新申请的消息缓冲区V(mutex)V(SM)Receive(m):BeginP(SM)P(mutex)将消息m从缓冲区复制到接收区并释放缓冲区V(mutex)OperatingSystemConceptionDavidfu进程通信-邮箱(7)对于只有一个发送进程和一个接收进程使用的邮箱,进程间通信应满足以下条件:发送进程发送消息时,邮箱中至少有一个存储消息的单元接收进程接收消息时,邮箱中至少有一个消息存在发送进程邮箱头邮箱体接收进程OperatingSystemConceptionDavidfu进程通信-管道(pipe)Unix系统从SystemV开始,提供有名管道和无名管道两种数据通信方式。无名管道为建立管道的进程及其子进程提供一条以比特流方式传送消息的通信管道。该管道在逻辑上是管道文件,物理上则由文件系统的高速缓冲区构成。写fd[1]Pipe(fd)fd[0]读OperatingSystemConceptionDavidfu进程通信-管道(pipe)

main(){intx,fd[2];charbuf[30],s[30];Pipe(fd);while((x=fork())==-1);//创建子进程失败,原地循环if(x==0){sprintf(buf,”子进程写信息到父进程”);write(fd[1],buf,30);exit(0);}else{ wait(0);read(fd[0],s,30);printf(“%s”,s);}}OperatingSystemConceptionDavidfu进程通信实例解析采用进程通信的管理方法解决生产者-消费者问题。要求生产者能告诉消费者产品的说明、规格、价格等,而消费者能反馈对物品的评价和处理情况设置公用信箱MOperatingSystemConceptionDavidfu进程通信实例解析生产者:L1:生产一个产品L2:receive(consumer,M);If物品未取走thengotoL2Else组织回信,说明产品信息Send(consumer,M);GotoL1消费者:L1:receive(producer,M);If没有产品thengotoL1Else组织回信,反馈产品信息Send(producer,M);GotoL1OperatingSystemConceptionDavidfu本课总体纲要进程通信(InterprocessCommunication)消息、邮箱机制共享内存机制管道机制进程通信实例解析死锁(DeadLock)死锁的概念产生死锁的必要条件死锁的排除方法死锁实例解析OperatingSystemConceptionDavidfu死锁死锁的定义:当多个进程因竞争资源而造成的一种僵局,在无外力作用下,这些进程将永远不能继续向前推进,这种现象称为死锁。死锁的起因:并发进程的资源竞争进程推进顺序不当OperatingSystemConceptionDavidfu死锁产生死锁的必要条件:互斥条件:资源的排他性不剥夺条件:进程对获得的资源在未使用完毕前,不可被其他进程剥夺使用权利部分分配条件:进程每次申请新资源时,同时还要占用已分配的资源环路条件:存在进程循环链,链中每个进程已获得的资源同时被下一个进程申请OperatingSystemConceptionDavidfu死锁死锁的排除方法:死锁预防死锁避免死锁的检测和恢复OperatingSystemConceptionDavidfu死锁死锁预防一次性分配法资源顺序分配法先释放,后申请OperatingSystemConceptionDavidfu死锁死锁避免:动态预防,系统根据某种算法在动态分配资源时,预测出死锁发生的可能性,并加以预防死锁的检测与解除一个给定的进程-资源图最终是可以化简的。剥夺资源撤销进程OperatingSystemConceptionDavidfu死锁例题(1)有4个进程陷入了死锁请问这4个进程可能占用了几种资源?使用资源请求分配图画出可能的死锁情况。OperatingSystemConceptionDavidfu死锁例题(2)一台计算机有8台磁带机,分别由n个进程竞争使用,每个进程需要3台磁带机,请问n为多少时,系统没有死锁的危险?设资源数M=8;竞争进程n,每个进程需要的资源为X=3系统不会发生死锁的公式:X=1(M<n)X=1+(M-1)/nOperatingSystemConceptionDavidfu总结死锁(DeadLock)死锁的概念产生死锁的必要条件

温馨提示

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

评论

0/150

提交评论