- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机操作系统 本章主要内容(续) 3.7进程通信 3.8死锁问题 3.9线程 3.7进程通信的概念 进程通信(communication): 定义: 简单地说,就是进程间的信息交换。 分类: 低级通信:进程间控制信息的交换。 信号量及锁变量只能传递信号,没有数据转送能力。 借助于有界缓冲区可以交换一定的数据,但由于一次只能读写一个数据,开销和局限性很大。 高级通信:进程间大批量信息(数据)的交换。 消息缓冲机制 消息缓冲机制的基本思想: 根据生产者与消费者关系原理,利用内存的共用消息缓冲池实现进程之间的信息交换。 消息缓冲区是指含有如下信息的缓冲区: 指向发送进程的指针 指向下一个消息缓冲区的指针 消息长度 消息正文 消息缓冲区作为进程通信的一个基本单位,即每当发送进程欲发送消息时,便申请并形成一个消息缓冲区,并发送给指定的接收进程。 消息缓冲机制 消息缓冲机制的实现过程: 发送进程在发送消息前,先在自己的内存空间设置一个始地址为a的消息发送区,把欲发送的消息填入其中,然后再用发送过程send (B,a)将其发送到缓冲区。 接收进程则在接收消息之前,在自己的内存空间内设置一个始地址为b的消息接收区,然后用接收过程receive (b)接收缓冲区内的消息。 由于接收进程可能接收到多个进程发来的多个消息缓冲区,故它将所有的消息缓冲区连接成一个消息队列,其队列头由接收进程PCB中的消息队列头指针给出。 消息缓冲机制 消息缓冲机制的实现过程: 消息缓冲机制 两通信进程之间的关系: 在发送进程把消息写入缓冲区和把缓冲区挂入消息队列时,应禁止其他进程对该消息缓冲区队列的访问。否则,将引起消息队列的混乱。同理,当接收进程正从消息队列中取消息缓冲区消息时,也应禁止其他进程对该队列的访问。 间接制约 设置公用信号量: mutex ,其初值为1 。 当消息缓冲区队列中无消息存在时,接收进程不能接收到任何消息。 直接制约 设置私用信号量:SM为接收进程的私用信号量,表示等待接收的消息个数,其初值为0 。 消息缓冲机制 进程之间通信的实现: 邮箱通信 邮箱通信的基本思想: 邮箱通信是由发送进程申请建立一个与接收进程连接的邮箱,发送进程把消息送往邮箱,接收进程从邮箱取走消息,从而完成进程间信息交换。 邮箱由邮箱头和邮箱体组成。其中邮箱头描述邮箱名称、邮箱大小、邮箱方向以及拥有该邮箱的进程名等。邮箱体主要用来存放消息(如图) 。 设置邮箱的最大好处就是发送进程和接收进程之间没有处理时间上的限制。 邮箱通信 两通信进程之间的关系: 发送进程发送消息时,邮箱中至少要有一个空格能存放该消息。 接收进程接收消息时,邮箱中至少要有一个消息存在。 即发送进程与接收进程间存在着直接制约。 发送进程的私用信号量: nullnum表示邮箱中空格个数,初值为信箱的空格数 n 。 接收进程的私用信号量: fullnum表示邮箱中消息个数,初值为0 。 邮箱通信 实现(两个进程通信): 设发送进程调用过程 deposit(m)将消息发送到邮箱,接收进程调用过程remove(m)将消息m 从邮箱中取出。 经典的进程同步问题 生产者–消费者问题(即有界缓冲区问题) 3.8死锁定义 定义:系统中存在各种进程被阻塞而且不能解除的情况,通称为死锁。 因此,所谓死锁是指一种僵局:在系统运行的某一时刻,当一组进程中的某个进程提出资源请求或者彼此同步时,使得此组进程在无外力作用下永远不能再向前推进,此时称这组进程处于死锁状态。 若死锁只存在于部分进程中,称系统发生了局部死锁;若系统中所有进程都出现了死锁,则称系统发生了全局死锁。 死锁的起因 死锁的起因是并发进程的资源竞争,而根本原因在于系统提供的资源个数少于并发进程所要求的该类资源数。 死锁发生的必要条件 互斥条件: 一个资源在某一时刻只能分配给一个进程。若一个进程申请某资源时,该资源被另一进程占用,则申请者等待,直到占有者释放该资源时才可能获得。 请求与保持条件: 进程在占用部分资源后,运行时还可以申请其余的资源,而且在申请其余资源时并不释放已占用的资源。 死锁发生的必要条件 非剥夺条件: 已分配给进程的资源不可被剥夺,只能被占有者自行释放。 循环等待条件: 系统中存在着一条由两个 或两个以上的进程组成的循 环链,链中的每个进程都在 等待相邻进程已占用的资源。 解决死锁的方法 预防死锁 死锁产生的必要条件为解决死锁问题提供了思路。 限制“互斥条件” 对于临界资源必须互斥访问,这是某些资源使用时所必须要求的,不能加以改变,所以不易有解决方案。 解决死锁的方法 预防死锁 限制“请求与保持条件” 一种实现方法是规定所有进程在开始
您可能关注的文档
最近下载
- 2025年山西中考历史试卷真题解读及答案讲解课件.pdf
- Unit 4 Amazing Plants and Animals Section A(Grammar Focus 3a-3c)课件 2025人教版英语八年级上册.ppt
- 2025年安徽省黄山市辅警(协警)招聘考试题库及答案.docx VIP
- 竞选班干部申请表.docx VIP
- 2025中级经济师《经济基础知识》三色笔记.pdf VIP
- 高浓及膏体充填新技术 中国恩菲工程技术.pptx VIP
- 《中华人民共和国劳动法》培训解读课件.pptx VIP
- 初中科学浙教版九年级上册 第2章《第1节 金属材料》第一课时金属与非金属 课件(共27张PPT).ppt VIP
- 鲁迅《伤逝》课件.pdf
- T_BEPIA 0002—2025(高压电力用户配电室智能化运维规范).pdf VIP
文档评论(0)