第三章 处理机的调度和死锁.

Slides:



Advertisements
Similar presentations
高级服务器设计和实现 1 —— 基础与进阶 余锋
Advertisements

阻塞操作. 在 linux 里,一个等待队列由一个 wait_queue_head_t 类型的结构来描述 等待队列的初始化: static wait_queue_head_t testqueue; init_waitqueue_head(&testqueue);
Process Scheduling based on Linux3.2 孟宁 电话: 孟宁 V5 : 主页:
Linux 系统. 操作系统发展需求 1 没有操作系统 2 简单批处理操作系统 3 多道程序设计的批处理 4 多道程序设计的分时操作系统 5 多处理机并行系统 6 网络操作系统 7 分布式操作系统.
形式逻辑学的框架 推理 判断 概念 演绎 归纳 直 接 复 合 三段论 枚 举 完 全 科 学 【有效性与真实性】
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
计算机操作系统 期末复习二.
操作系统 年级:2003春 专业:计算机应用专业.
《愛》 張愛玲 指導老師:胡翰平 國二甲 S 黃宜宣.
作業系統 第六章 同步與死結.
Chapter Two Process Management.
总复习 级一本各专业.
Chapter 6: CPU Scheduling CPU调度
第三章 处理机调度与死锁 3.1 处理机调度的基本概念 3.2 调度算法 3.3 实时调度 3.4 多处理机系统中的调度
第三章 处理机调度与死锁 本章主要理解进程调度和死锁的基本概念,熟悉进程调度的各种算法及适用范围,了解产生死锁的原因和必要条件,掌握如何预防、避免、检测、解除死锁的各种方法,特别是银行家算法。 重、难点: 进程调度算法 产生死锁的原因和必要条件 银行家算法.
第三章 处理机调度与死锁.
第三章 作业管理 3.1 作业管理的基本功能 3.2 作业调度 3.3 作业控制.
第三章 处理机调度与死锁 3.1 处理机调度的基本概念 3.2 调度算法 3.3 实时调度 3.4 多处理机系统中的调度
常用逻辑用语复习课 李娟.
第六讲 进程控制与调度 目的与要求:理解进程切换过程,理解进程调度原因及调度切换时机,掌握进程调度方式与实现及各种调度算法,弄清作业和进程的关系,了解线程的引入原因。 重点与难点:进程切换的实现与进程调度算法。 作业:7, 8, 10, 11, 19, 20。
Oracle数据库 Oracle 子程序.
进程调度(Scheduling) 进程(Linux中称任务)定义:是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位。 描述进程的三个方面: 程序的一次运行活动; 进程的运行活动是建立在某个数据集合之上的; 进程在获得资源的基础上从事自己的运行活动。
计算机基础知识 丁家营镇九年制学校 徐中先.
操作系统 (处理器管理) 徐锋 南京大学计算机科学与技术系.
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
第二章 行程管理 朱肇明 資管系 講師 大華技術學院.
中国科学技术大学计算机系 陈香兰 2013Fall 第六讲 死锁及其处理 中国科学技术大学计算机系 陈香兰 2013Fall.
Applied Operating System Concepts
和春技術學院資訊管理系 九十三學年度第一學期 系統程式 第三章 死結(Deadlock)
实验三:作业调度 作业调度算法模拟
第三章 处理机调度与死锁 3.1 处理机调度的层次和调度算法的目标 3.2 作业与作业调度 3.3 进程调度 3.4 实时调度
存储系统.
SOA – Experiment 3: Web Services Composition Challenge
中国科学技术大学计算机系 陈香兰 Fall 2013 第四讲 CPU调度(part II) 中国科学技术大学计算机系 陈香兰 Fall 2013.
CPU调度(Scheduling) 主讲教师:夏莹杰
操作系统原理 Operating System Principles
临界区软件互斥软件实现算法.
陈香兰 助教:陈博、李春华 Spring 2009 嵌入式操作系统 陈香兰 助教:陈博、李春华 Spring 2009.
中国科学技术大学计算机系 陈香兰(0512- ) Autumn 2009
Online job scheduling in Distributed Machine Learning Clusters
临界区软件互斥软件实现算法 主讲教师:夏莹杰
CPU结构和功能.
李元金 计算机与信息工程学院 第 8 讲 处理机调度与死锁(2) 李元金 计算机与信息工程学院 1/
资源分配与调度 第5章 资源分配与调度.
内容摘要 ■ 课程概述 ■ 教学安排 ■ 什么是操作系统? ■ 为什么学习操作系统? ■ 如何学习操作系统? ■ 操作系统实例
C语言程序设计 主讲教师:陆幼利.
微机系统的组成.
安全状态的例子 例:假定系统有三个进程P1、P2、P3,共有12台磁带机。进程P1总共要求10台磁带机,P2和P3分别要求4台和九台。设在T0时刻,进程P1、P2和P3已经获得5台、2台和2台,还有3台空闲没有分配。 进程 最大需求 已分配 可用 P P2 4 2 P3 9 2 T0时刻系统时安全的。这时存在一个安全序列
进程概念.
中国科学技术大学计算机系 陈香兰 Fall 2013 第四讲 CPU调度 中国科学技术大学计算机系 陈香兰 Fall 2013.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
信号量(Semaphore).
李元金 计算机与信息工程学院 第 10讲 处理机调度与死锁(4) 李元金 计算机与信息工程学院 1/
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
第三章 处理机调度与死锁 3.1 处理机调度的基本概念 3.2 调度算法 3.3 实时调度 3.4 多处理机系统中的调度.
第八章 死锁 死锁的基本概念 死锁的解决方案 (预防,避免,检测及解除) 资源分配图.
临界区问题的硬件指令解决方案 (Synchronization Hardware)
本节内容 Windows线程切换_时钟中断切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
第五章 处理机管理 CPU Scheduling
Google的云计算 分布式锁服务Chubby.
李元金 计算机与信息工程学院 第7讲 处理机调度与死锁(1) 李元金 计算机与信息工程学院 1/
进程调度算法和作业调度算法。 (1) 先来先服务(FCFS)调度算法
PURSUING EXCELLENCE / TOWARD SUCCESS WUCHANG UNIVERSITY OF TECHNOLOGY
死 锁 Deadlock.
信号发生电路 -非正弦波发生电路.
第五章 处理机管理 CPU Scheduling
本节内容 进程 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
《操作系统设计与实现》 第2章 进程.
Presentation transcript:

第三章 处理机的调度和死锁

3.1 处理机调度的基本概念 3.1高、中、低三级调度 1、高级调度(作业调度、长程调度、接纳调度) 将外存作业调入内存,创建PCB等,插入就绪队列。 一般用于批处理系统,分/实时系统一般直接入内存,无此环节。 调度特性 1.接纳作业数(内存驻留数) 太多―――> 周转时间T长 太少―――> 系统效率低 2.接纳策略:即采用何种调度算法:FCFS、短作业优先等

处理机调度的基本概念(2) 2、低级调度(进程调度,短程调度) 主要是由分派程序(Dispatcher)分派处理机。 1.非抢占方式: 简单,实时性差 (如win31) 2.抢占方式 (1)时间片原则 (2)优先权原则 (3)短作业优先原则。 3、中级调度(中程) 为提高系统吞吐量和内存利用率而引入的一内------外存对换功能(换出时,进程为挂起或就绪驻外状态) 运行频率:低>中>高。

问? 三种调度被引发的事件? 事件的表现方式?

3.1.2调度的队列模型 一、仅有进程调度的队列模型 时间片完 进程完成 交互用户 CPU 就绪队列 进程调度 事件出现 等待事件 阻塞队列

3.1.2调度的队列模型 二、具有高/低级模型 作业调度 时间片完 进程完成 CPU 后备队列 就绪队列 进程调度 等待事件1 事件1出现 阻塞队列 等待事件2 事件2出现 阻塞队列

三、具有三级调度 作业调度 时间片完 进程调度 进程完成 CPU 后备队列 就绪队列 中级调度 交互型作业 就绪、挂起队列 事件出现 阻塞、挂起队列 挂起 阻塞队列 等待事件

3.1.3选择调度方式和算法的若干准则 一、面向用户的准则 1.周转时间短(常用于批处理系统) 概念:作业从提交――> 完成的时间.分为: (1)驻外等待调度时间 (2)驻内等待调度时间 (3)执行时间 (4)阻塞时间

3.1.3选择调度方式和算法的若干准则 一、面向用户的准则 平均周转时间 平均带权 可见带权w越小越好,Ts为实际服务时间。

3.1.3选择调度方式和算法的若干准则 一、面向用户的准则 2.响应时间快:(对交互性作业) 概念:键盘提交请求到首次响应时间 (1)输入传送时间 (2)处理时间 (3)响应传送时间 3.截止时间的保证(特别于实时系统) 4.优先权准则:(即需要抢占调度)

3.1.3选择调度方式和算法的若干准则 二、面向系统的准则 1.吞吐量高(特别于批处理):单位时间完成作业数 2.处理机利用率好:(因CPU贵,特别于大中型多用户系统) 3.各类资源的平衡利用。(?折算标准)

3.2调度算法——是一个资源分配问题 3.2.1先来先服务和短作业(进程)优先调度算法 1.FCFS 特点:简单,有利于长作业 即CPU繁忙性作业 2.短作业进程优先调度算法:SJ(P)F 提高了平均周转时间和平均带权周转时间(从而提高了系统吞吐量) 特点:对长作业不利,有可能得不到服务(饥饿) 估计时间不易确定

例 进程名 到达时间 服务时间 开始执行时间 完成时间 周转时间 带权周转时间 A 1 B 100 101 C 2 102 D 3 202 1 B 100 101 C 2 102 D 3 202 199 1.99

图3.4FCFS和SJF比较 进程名 A B C D E 平均 到达时间 0 1 2 3 4 服务时间 4 3 5 2 4 FCFS 0 1 2 3 4 服务时间 4 3 5 2 4 FCFS 完成时间 4 7 12 14 18 周转时间 4 6 10 11 14 9 带权周转时间 1 2 2 5.5 3.5 2.8 SJF 4 9 18 6 13 4 8 16 3 9 8 1 2.67 3.1 1.5 2.25 2.1

3.2.2高优先权优先调度算法 1.优先权调度算法类型 非抢占式优先权算法 抢占式优先权算法,实时性更好。 2.优先权类型: 1.静态优先权: 进程优先权在整个运行期不变。 确定优先权依据 (1)进程类型 (2)进程对资源的需求; (3)根据用户需求。 特点:简单,但低优先权作业可能长期不被调度。

3.2.2高优先权优先调度算法(2) 2.动态优先权: 如:优先权随执行时间而下降,随等待时间而升高。 响应比Rp=(等待时间+服务时间)/服务时间 作为优先权 优点:长短兼顾 缺点:需计算Rp 3.高响应比优先算法: 特点: 响应比Rp=(tw+ts)/ts (1)短作业RP大。 (2)ts(要求服务时间)相同的进程间相当于FCFS。 (3)长作业等待一段时间仍能得到服务。

系统的处理能力:(应保证一个时间片处理完常用命令) 3.2.3基于时间片的轮转调度算法 1.时间片轮转 时间片大小的确定 太大:退化为FCFS; 太小:系统开销过大 系统对响应时间的要求;T=nq 就绪队列中进程的数目; 系统的处理能力:(应保证一个时间片处理完常用命令)

3.2.3基于时间片的轮转调度算法 2.多级反馈队列调度 特点:长、短作业兼顾,有较好的响应时间 (1)短作业一次完成; (2)中型作业周转时间不长; (3)大型作业不会长期不处理。

图3-5多级队列反馈调度算法 S1 至CPU 就绪队列1 S2 至CPU 就绪队列2 S3 至CPU 就绪队列3 Sn 至CPU 就绪队列n 时间片:S1<S2<S3

Ci为处理时间,Pi为周期时间(基于周期性实时任务) 3.3实时调度 3.3.1实现实时调度的基本条件 1.提供必要的调度信息 (1)就绪时间; (2)开始/完成截止时间; (3)处理时间; (4)资源要求; (5)优先级; 2.系统处理能力强 Ci为处理时间,Pi为周期时间(基于周期性实时任务)

3.3实时调度 3.3.1实现实时调度的基本条件 3.采用抢占调度方式 剥夺方式:一般都采用此 非剥夺方式(实现简单):一般应使实时任务较小,以及时放弃CPU。 4.具有快速切换机制 具有快速响应外部中断能力。 快速任务分派

3.3.2实时调度算法的分类 1非抢占式调度算法 时间片轮转 秒级 非抢占优先权(协同) 秒~毫秒级 2抢占式调度算法 时钟中断抢占优先权 毫秒级 基于抢占点抢占 立即抢占immediate preemption 毫秒~微秒级 只要不在临界区即抢占(中断引发)

调度实时进程运行 实时进程要求调度 进程1 进程2 进程n 实时进程 调度时间 a 非抢占轮转调度 实时进程要求调度 当前进程运行完成 当前进程 实时进程 调度时间 b 非抢占优先权调度

实时进程要求调度 时钟中断到达时 当前进程 实时进程 调度时间 c 基于时钟中断抢占的优先权抢占调度 实时进程要求调度 抢占时刻(其它中断) 当前进程 实时进程 调度时间 b 立即抢占优先权调度

3.3.3常用的几种实时调度算法 1.最早截止时间优先EDF(earliest deadline first)算法 根据任务的截止时间来确定任务的优先级 截止时间越早,优先级越高 可以是抢占式或非抢占式

最早截止时间优先EDF例 1 3 4 2 开始截止时间 1 3 4 2 任务执行 t 任务到达 1 2 3 4 图3-7 EDF算法用于非抢占调度方式

2. 最低松弛度优先LLF算法 松弛度: 若A进程需在200ms时完成,其本身运行需要100ms,当前时刻是10ms,则A的松弛度为:200-100-10=90 主要用于可抢占的调度方式中 例: A1 A2 A3 A4 A5 A6 A7 A8 t 20 40 60 80 100 120 140 160 B1 B2 B3 图3-8 A/B任务每次必须完成的时间

最低松弛度优先LLF算法(2) A1(10) A2(10) A3(10) A4(10) t1 t2 t3 t4 t5 t6 t7 t8 t 10 20 30 40 50 60 70 80 t1=0 B1(20) B1(5) B2(15) B2(10)

3.4多处理机系统中的调度 1.紧密耦合MPS和松弛耦合MPS 紧密耦合 松弛耦合 2.对称多处理器系统和非对称多处理器系统 共享RAM和I/O 高速总线和交叉开关连接 松弛耦合 独立RAM和I/O 通道和通信线路连接 2.对称多处理器系统和非对称多处理器系统 处理器是否结构相同

3.4.2进程分配方式 1.SMP中进程分配方式 静态分配 动态分配 2.非SMP中进程分配方式 进程调度在主处理器上执行 有潜在的不可靠性 可防止系统中多个处理器忙闲不均 2.非SMP中进程分配方式 进程调度在主处理器上执行 有潜在的不可靠性

3.4.3进程(线程)调度方式 1.自调度 各个处理机自行在就绪队列中取任务。 特点;简单,分布式调度,调度算法可采用前述方法,多个CPU利用率都不错(不会闲) 但: 瓶颈问题,(单队列) 低效性;(需拷贝现场) 线程切换频繁(当线程合作时,各线程并行的条件不容易满足)

2.成组调度 优点: (1)对相互合作的进(线)程组调度,可以减小切换,减小系统开销。 (2)每次分配一组CPU,减少了调度频率。 分配时间 (1)面向程序 (2)面向线程:使处理机利用率更高。

2.成组调度 应用程序A 应用程序B Cpu1 线程1 Cpu2 线程2 空闲 Cpu3 线程3 Cpu4 线程4 时间 1/2 应用程序A 4/5 1/5 浪费15% 浪费37.5%

3.专用处理机分配 引入:多处理机系统,每个处理已不再属宝贵资源。 特点:每个进(线)程专用处理机,使其切换小,提高效率。 主要用于大型计算,实时系统

3.5产生死锁的原因和必要条件 3.5.1产生死锁的原因。 一、竞争资源引起死锁。 1.可剥夺(CPU、内存,)和非剥夺性(打印机,磁带机)资源 2.竞争非剥夺性资源——可造成死锁 p1 R2 R1 p2

3.5产生死锁的原因和必要条件 3.竞争临时性资源 临时性资源是指由一个进程产生,被另一个进程使用一段时间后便无用的资源。

二、进程推进顺序不当引起死锁。 2 P2Rel(R1) P2Rel(R2) P2Req(R1) 1 D P2Req(R2) 3 4

3.5.2 产生死锁的必要条件 1.互斥条件(资源的临界性) 2.请求和保持条件 3.不剥夺条件 4.环路等待

3.5.3处理死锁的基本方法 1.预防;破坏4个条件之一:有效,使资源利用率低。 2.避免:防止进入不安全态。 3.检测:检测到死锁再清除。 4.解除:与“检”配套。

3.6 死锁预防和避免 3.6.1 死锁预防 一、互斥条件是资源固有属性,不能避免。 二、摒弃请求和保持条件 全分配,全释放(AND) 缺点:(1)延迟进程运行 (2)资源严重浪费 三、摒弃“不剥夺”条件 增加系统开销,且进程前段工作可能失效。

3.6 死锁预防和避免 3.6.1 死锁预防 四、摒弃“环路”条件 有序资源分配法:为资源编号,申请时需按编号进行。 缺点: (1)新增资源不便,(原序号已排定) (2)用户不自由 (3)资源与进程使用顺序不同造成浪费

3.6.2 系统的安全状态 在“避免死锁”方法中的判断条件 1. 安全状态 按某种顺序并发进程都能达到获得最大资源而顺序完成的序列为安全序列。 能找到安全序列的状态为安全状态。

3.6.2 系统的安全状态(2) 2.安全状态例 进程 最大需求 已分配 可用 P1 10 5 3 P2 4 2 P3 9

3.6.2 系统的安全状态(3) 3安全——不安全的转换 上例中,若P3再申请一台,则不安全 进程 最大需求 已分配 可用 P1 10 5 4 P3 9 3

3.6.3利用银行家算法避免死锁 1.数据结构 available[j]=k: 系统现有Rj类资源k个; max[i,j]=k: 进程i需要Rj的最大数k个; alloc[i,j]=k: 进程i已得到Rj类资源k个; need[i,j]=k: 进程i需要Rj类资源k个 有:need[i,j]= max[i,j]-alloc[i,j] requesti 进程i请求资源数 worki:进程i执行完后系统应有资源数(也即可用数) finish[i]:布尔量,表进程i能否顺序完成。

3.6.3利用银行家算法避免死锁 2.银行家算法 reqi<=needi error reqi<=availi block

3.6.3利用银行家算法避免死锁 avail=avail-reqi alloci=alloci+reqi needi=needi-reqi finish[i]=.F. needi<=work work=work+alloci finish[i]=.T.

4实例 Max A B C Allocation Need Available p0 7 5 3 0 1 0 7 4 3 3 3 2 (2 3 0) p1 3 2 2 2 0 0 (3 0 2) 1 2 2 (0 2 0) p2 9 0 2 3 0 2 6 0 0 p3 2 2 2 2 1 1 0 1 1 p4 4 3 3 0 0 2 4 3 1 T0时刻的资源分配表

4实例 Work A B C Need A B C Alloc Work+alloc Finish p1 3 3 2 1 2 2 2 0 0 5 3 2 true p3 5 3 2 0 1 1 2 1 1 7 4 3 p4 7 4 3 4 3 1 0 0 2 7 4 5 p2 7 4 5 6 0 0 3 0 2 10 4 7 p0 10 4 7 0 1 0 10 5 7 T0时刻的安全序列

4实例 Work A B C Need A B C Alloc Work+alloc Finish p1 2 3 0 0 2 0 3 0 2 5 3 2 true p3 5 3 2 0 1 1 2 1 1 7 4 3 p4 7 4 3 4 3 1 0 0 2 7 4 5 p0 7 4 5 0 1 0 7 5 5 p2 7 5 5 6 0 0 3 0 2 10 5 7 P1申请资源(1,0,2)时安全性检查(安全)

4实例 Allocation A B C Need Available p0 0 3 0 7 2 3 2 1 0 p1 3 0 2 0 2 0 p2 6 0 0 p3 2 1 1 0 1 1 p4 0 0 2 4 3 1 为P0分配(0,2,0)后的情况(不安全)

3.7死锁的检测和解除 3.7.1检测 1.资源分配图 p1 p2

3.7死锁的检测和解除 2.死锁定理 简化资源分配图 若能完全简化则消去所有的边。 定理:死锁状态的充分条件,资源分配图不可完全简化 3.检测死锁的算法:

3.7死锁的检测和解除 Work= available L:={Li| alloci=0 reqi=0} (孤立进程点) For all Li L do Begin For all reqi <=work do Work=work+alloci L=Li∪L end End Deadlock= ~(L={p1 … pn})

解除 检测到死锁后,回退到上一状态(要进行资源剥夺,且需保存以前状态的分配信息),重新分配,若不行,继续回退……,