LINUX操作系统教程课件第四章

上传人:E**** 文档编号:91288178 上传时间:2019-06-27 格式:PPT 页数:25 大小:534KB
返回 下载 相关 举报
LINUX操作系统教程课件第四章_第1页
第1页 / 共25页
LINUX操作系统教程课件第四章_第2页
第2页 / 共25页
LINUX操作系统教程课件第四章_第3页
第3页 / 共25页
LINUX操作系统教程课件第四章_第4页
第4页 / 共25页
LINUX操作系统教程课件第四章_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《LINUX操作系统教程课件第四章》由会员分享,可在线阅读,更多相关《LINUX操作系统教程课件第四章(25页珍藏版)》请在金锄头文库上搜索。

1、基于Linux 的操作系统教程,Operating System Course based on Linux,2,第四章 调度与死锁,章节目标: 1:掌握调度的类型及模型; 2:掌握几种调度算法; 3:掌握死锁、死锁产生的原因和必要条件以及死锁预防、避免的原理; 4:掌握死锁检测、死锁解除的方法; 5:掌握Linux的调度和死锁技术。,第四章 调度与死锁,开始,3,第四章 调度与死锁,4.1 调度的类型和模型,4.2 调度算法,4.5 Linux中的调度和死锁技术,4.3 死锁及其预防和避免,4.4 死锁的检测和解除,4.6 本章小结,返回本章首页,4,4.1 调度的类型和模型,调度的类型 调

2、度队列模型,第四章 调度与死锁,返回本章首页,5,调度的类型,高级调度:作业调度。被用来从后备队列中按照某种规则或算法选择若干个作业,把它们装入内存,并为之建立进程,分配必要的资源。 低级调度:进程调度。被用来从就绪队列中选择一个进程,让其占有CPU执行。有非剥夺式和剥夺式两种调度方式。 中级调度:中级调度一般存在于规模较大的综合性OS中,它的引入主要时为了提高内存的利用率和系统吞吐量。,返回本节首页,6,调度队列模型,在各级调度中,等候选择的进程一般存在于相应的调度队列中。图中是一个同时具有三级调度的调度队列模型。,返回本节首页,7,4.2 调度算法,调度算法的选择 各种调度算法,第四章 调

3、度和死锁,返回本章首页,8,调度算法的选择,选择调度算法的准则: (1)系统吞吐量高; (2)周转时间短; (3)响应时间短; (4)优先权准则; (5)CPU的利用率高; (6)各种资源的均衡利用。,返回本节首页,9,各种调度算法(一),先来先服务算法(FCFS):按照进程就绪的先后次序来调度进程。 短进程优先算法(SPF):对短进程(其CPU周期短)优先的调度算法。 时间片轮转算法(RR) :轮流调度就绪队列中的进程,每个进程执行一个时间片。,返回本节首页,10,各种调度算法(二),优先权算法(HPF) :系统中的每个进程被赋予一个优先权 ,选择就绪队列中优先权最高的进程占有CPU执行。

4、多级反馈队列算法 :一种综合了FCFS、RR、HPF的调度算法,它可以满足各类进程的需要。下图是一个多级反馈队列模型。,返回本节首页,11,4.3 死锁及其预防和避免,死锁 死锁的预防 死锁的避免,第四章 调度和死锁,返回本章首页,12,死锁(一),死锁的概念:在多任务OS中,多个并发进程因竞争资源而形成的一种僵持局面,若无外力作用,这些进程将永远不能再向前推进。 产生死锁的原因:1、竞争资源;2、进程推进顺序不当。 产生死锁的四个必要条件: 1、互斥条件 2、请求和保持条件 3、不可剥夺条件 4、环路等待条件,下一页,13,死锁(二),死锁的处理方案: 1、死锁的预防 2、死锁的避免 3、死

5、锁的检测 4、死锁的解除,返回本节首页,14,死锁的预防,破坏“请求和保持”条件 破坏“不剥夺”条件 破坏“环路等待”条件,返回本节首页,15,死锁的避免,基本思想:一般情况下它对进程的资源申请不加限制,只是在即将进入不安全状态时才加以限制。采取一种动态策略。 死锁避免算法:银行家算法,返回本节首页,16,4.4 死锁的检测和解除,死锁的检测 死锁的解除,第四章 调度和死锁,返回本章首页,17,死锁的检测,资源分配图(RAG) 死锁定理:S为死锁状态,当且仅当S状态的资源分配图是不可完全化简的。 死锁检测算法,返回本节首页,18,死锁的解除,死锁解除方案: 撤消进程 剥夺资源 进程回退,返回本

6、节首页,19,4.5 Linux中的调度和死锁技术,Linux中的调度 Linux中死锁技术,第四章 调度和死锁,返回本章首页,20,Linux中的调度(一),Linux没有作业调度的概念,只有进程调度。 Linux中的进程调度由内核函数schedule()实现。 Linux的进程调度在以下时机进行: (1)进程状态转换时; (2)向就绪队列(run queue)中加入一个进程时; (3)当前进程的时间片用完时; (4)在系统调用之后进程从系统态返回用户态时; (5)内核完成中断处理,进程返回到用户态时。,下一页,21,Linux中的调度(二),task_struct中与调度有关的域: nee

7、d_resched counter priority rt_priority policy,下一页,22,Linux中的调度(三),调度策略:综合FIFO、RR、多级反馈轮转调度三种调度策略。 调度实现:遍历就绪队列,调用函数goodness()计算每个进程的goodness值,schedule()选择goodness值最大的进程。,下一页,23,Linux中的调度(四),进程切换:由宏switch_to()来完成 。,返回本节首页,24,Linux中的死锁技术,Linux只在使用信号量时有死锁的概念。 对于其他情况的死锁,交给程序员自己去解决。,返回本节首页,25,4.6 本章小结,本章介绍了进程调度及各种进程调度算法。 本章介绍了死锁的概念、产生死锁的原因以及发生死锁的四个必要条件。死锁处理的主要方案有:预防死锁、避免死锁、检测和解除死锁。 Linux的进程调度在schedule()函数中,通过goodness的计算,综合了三种调度策略:FIFO、RR、多级反馈队列调度。 Linux内核对死锁的处理仅限于信号量操作异常时进行。,返回本章首页,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号