操作系统原理及实验(应用型本科) 教学课件 作者 石国华(5).pptVIP

操作系统原理及实验(应用型本科) 教学课件 作者 石国华(5).ppt

  1. 1、本文档共183页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
chap3 第三章 同步与互斥 本章摘要 同步与互斥的概念和相关问题; 支持互斥的若干机制,包括软件方法、硬件方法、管程、信号量等。 几个经典的同步和互斥案例: 生产者/消费者问题、 读者/写者问题 哲学家问题。 linux系统中的进程通信机制。 并发进程的实例 某机票自动售票系统有两个终端,它们分别运行进程P1和P2,两进程在系统中并发执行。 变量x表示现有机票数量。 两个进程的功能是首先读x的值,若x不为0,则把x减一,表示一张机票售出,然后把x的值重新写到它的存储单元中。 可能的执行轨迹 终端1售出一张机票,而终端2已无机票可售。以上运行结果正确。 一张机票售给了两个人,结果错误!在这种时序下,即使x的值n时,也会出现x被两次减一,其结果却是n-1。 错误的原因 并发程序不再具有封闭特征和可再现特征,计算结果与并发程序运行顺序有关。 为了避免这种错误的出现,两个进程必须互斥地访问共享变量x。 在某个进程对变量x处理过程中,另一个进程如果要访问该变量必须等待前一个进程对x处理完毕后,它才能对变量x进行处理。 潜在的控制问题 同步: 逻辑上合作的进程,执行速度相互制约; 互斥: 指多个进程不能同时使用同一个资源; 死锁: 指多个进程互不相让,都得不到足够的资源; 饥饿: 指一个进程一直得不到资源(其他进程可能轮流占用资源) 饿死: 一个进程永远得不到资源。 基本概念 竞争、协作 间接制约关系、直接制约关系 进程互斥、进程同步 临界资源和临界区 并发进程间的关系 并发进程间无关: 并发进程各自独立的,即如果一个进程的执行不影响其他进程的执行,且与其他进程的进展情况无关,不需要特别的控制。 并发进程间有关: 一个进程的执行可能影响其他进程的执行结果,即一个进程的执行依赖其他进程的进展情况。 在多道环境下,当程序并发执行时,由于资源共享和进程合作,使同处于一个系统中的诸多进程之间,可能存在竞争与协作两种基本关系。 竞争关系 并发程序由于共享系统资源而产生的间接制约关系 几个具有相对独立功能的并发程序,虽然它们在完成各自的功能方面不存在任何联系,但当它们竞争使用某一种共享资源时,将互相产生制约,获得资源的程序可以继续运行,其它需要使用这种资源的程序将处于等待状态,直到获得该资源后才继续运行。 解决进程竞争关系的手段 :互斥 进程互斥(mutual exclusion) : 若干个进程要使用同一共享资源时,任何时刻最多允许一个进程去使用,其他要使用该资源的进程必须等待,直到占有资源的进程释放该资源。 临界资源(critical resource) : 每次只允许一个进程访问的、具有独占性的共享资源。 临界区(critical section): 在多个进程的程序中,散布有涉及临界资源使用的程序片段 访问临界资源的那段程序代码。 进程互斥保证每个时刻只有一个进程使用临界资源,即只有一个进程运行在这些程序段上。 多个进程不能同时进入临界区,进程进入临界区要满足一定的条件,以保证临界资源的安全使用和系统的正常运行。 分析:机票自动售票系统 错误原因:两个进程交叉访问并修改了共享变量x。 临界资源:共享变量x 临界区:在并发进程Pi中与共享变量x有关的如下程序段 读取x值; if (x=1) { x = x - 1; 将x值写回存储单元,并输出一张票; 资源竞争引发的控制问题 死锁(deadlock)问题: 一组进程如果都获得了部分资源,还想要得到其他进程所占有的资源,最终可能所有的进程都因为等待彼此拥有的资源而僵持下去; 饥饿(starvation)问题: 一个进程由于其他进程总是优先于它获得所期望的资源而被无限期拖延的一种特殊情况。 协作关系 并发程序由于在逻辑上或功能上存在的联系而产生的直接制约关系 在多道程序环境下,多个进程为完成一个共同任务而相互合作,由于合作的每一个进程都是以独立的、不可预知的速度向前推进,这就需要相互合作的进程在执行次序上的互相配合,设置某些协调点来协调它们的工作。当一个合作进程抢先到达协调点时,在未得到其它合作进程发来的消息之前要阻塞自己,暂停执行,直到其它合作进程给出协调信号后方被唤醒而继续执行。 解决进程协作关系的手段:同步 进程同步: 两个以上进程基于某个条件来协调它们的活动。 一个进程的执行依赖于另一个协作进程的消息或信号,当一个进程没有得到来自于另一个进程的消息或信号时则需等待,直到消息或信号到达才被唤醒。 进程同步要求合作进程的运行必须严格按照规定的某种先后次序来推进。 互斥关系 VS同步关系 并发进程之间的互斥与同步是关系到系统运行成败的关键问题。 互斥关系是进程同步关系的特例,是逐次使用互斥共享资源,也是对进程使用资源次序上的一种协

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档