- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
新世纪高职高专实用规划教材微机与操作系统贯通教程 王宝军 著 清华大学出版社 第4章 CPU与进程管理 学习目的与要求 CPU是微机系统中最珍贵的核心资源,而Intel 80x86系列CPU一直是微机市场中的主流产品。现代多任务操作系统中,CPU管理的主要任务是以进程为单位对CPU资源实施分配和有效管理,因而对CPU的管理可归结为对进程的管理。本章首先介绍8086/8088 CPU的引脚信号、工作方式、操作时序以及80x86 CPU的性能特点;然后引入进程概念,介绍进程描述、基本状态、进程控制与通信、进程同步及其实现、死锁及其对抗等内容。通过本章的学习和上机操作,对80x86 CPU乃至微机的原理、工作特性以及多道程序环境下的进程管理等都将会有更深刻的理解,并能利用Windows任务管理器、系统监视器、系统信息查看和任务计划来监视、管理进程与任务。 4.1 80x86 CPU 1. 8086/8088引脚信号(一) 1. 8086/8088引脚信号(二) 2. 8086/8088工作方式(一) 2. 8086/8088工作方式(二) 3. 8086/8088操作时序(一) 3. 8086/8088操作时序(二) 3. 8086/8088操作时序(三) 4. 80486和Pentium CPU(一) 4. 80486和Pentium CPU(二) 4.2 进程的概念及描述 1. 进程概念的引入 2. 进程的定义与描述 3. PCB的组织 4. 进程状态及其转换 4.3 进程控制与通信 1. 进程控制原语(一) 1. 进程控制原语(二) 2. 时间片轮转法调度算法 3. 优先级法调度算法 4. 多级反馈队列调度算法 5. 进程通信 4.4 进程同步和死锁 1. 互斥与同步关系(一) 1. 互斥与同步关系(二) 2. 信号量机制 3. 互斥实现 4. 同步实现 5. 死锁的产生及原因(一) 5. 死锁的产生及原因(二) 6. 对抗死锁(一) 6. 对抗死锁(二) 6. 对抗死锁(三) 第4章小结(一) 第4章小结(二) 王宝军 著 清华大学出版社 资源 R1 进程A 进程B 进程B占用资源R2 进程A占用资源R1 进程B等待资源R1 资源 R2 进程A等待资源R2 (1)死锁的形成 实例一:某系统中有两个并发进程A和B,它们都要使用资源R1和R2。进程A和B各自占有了对方所需要的资源而又互不相让,造成它们都无法向前推进而永远处于等待状态,即死锁状态。 实例二:经典的“五位哲学家吃通心面”问题 (2)死锁的定义 若系统中存在一组并发进程,它们中的每一个进程都占用了某种资源而又都在等待该组进程中另一个进程所占用的资源,从而造成资源既相互保持又相互等待,使该组进程都停止往前推进而陷入永久的等待状态。 (3)产生死锁的原因和必要条件 产生死锁的根本原因是并发进程对有限资源的竞争。也就是说,若干个进程要求资源的总数多于系统能提供的资源数,使进程之间形成对资源的竞争,如果对进程竞争的资源管理或分配不当就会引起死锁。 互斥使用资源 部分分配资源 非剥夺式分配 循环等待资源 四个必要条件 产生死锁的四个必要条件但不是充分条件。即只要产生了死锁,则这四个条件一定同时成立;反之,这四个条件同时成立则并不是一定会产生死锁的。上述四个条件也不是完全独立的,例如,“循环等待资源”就包含了“部分分配资源”条件,但“部分分配资源”条件存在时并不意味着“循环等待资源”条件一定成立,两者既不是完全独立,也不是等价的。 即每一个资源一次只能分配给一个进程使用。 进程每次申请部分资源,在等待新资源的同时不释放已占有的资源。 任何进程不能剥夺其它进程所占有的资源,除非进程自己释放资源。 存在一组进程,它们分别等待另一进程所占用的资源而形成循环链。 (1)死锁的预防——运行前 采用适当的资源分配策略来限制并发进程对资源的请求,打破产生死锁的四个必要条件中的任何一个或几个条件,就可以达到运行前预防死锁的目的。 ① 静态分配资源 进程在执行前就申请它所要的全部资源,仅当全部获取后才能开始执行。这种方法打破了“部分分配资源”条件,“循环等待资源”条件也自然不可能成立,从而预防了死锁。但这种策略大大降低了系统资源的利用率。 ② 按序分配资源 对系统中每个资源给定一个编号,规定进程申请两个以上资源时,总是先申请编号小的资源,再申请编号大的资源。这种方法打破了“循环等待资源”条件,达到预防死锁的目的。 “哲学家吃通心面”就是典型例子。 ③ 剥夺式分配资源 当一个进程申请资源得不到满足时,可以从另一个占有该类资源的进程那里
文档评论(0)