第五章 处理机管理 CPU Scheduling

Slides:



Advertisements
Similar presentations
高校教师、高级项目经理 任铄 QQ : 第一章 操作系统引论 1.1 操作系统的目标和作用 1.2 操作系统的发展过程 1.3 操作系统的基本特性 1.4 操作系统的主要功能 1.5 OS 结构设计.
Advertisements

Edu.51cto.com 高校教师、高级项目经理 任铄 QQ : edu.51cto.com 第一章 操作系统引论 1.1 操作系统的目标和作用 1.2 操作系统的发展过程 1.3 操作系统的基本特性 1.4 操作系统的主要功能 1.5 OS 结构设计.
高级服务器设计和实现 1 —— 基础与进阶 余锋
阻塞操作. 在 linux 里,一个等待队列由一个 wait_queue_head_t 类型的结构来描述 等待队列的初始化: static wait_queue_head_t testqueue; init_waitqueue_head(&testqueue);
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
Foundations of Computer Science
计算机操作系统 期末复习二.
操作系统 年级:2003春 专业:计算机应用专业.
第八章 支援設施與服務流程.
Chapter Two Process Management.
性能测试.
Chapter 6: CPU Scheduling CPU调度
第6章 用户接口与作业管理 用户与操作系统的接口 批处理系统的作业管理 交互式系统作业管理.
第五章 处理机管理 5.1 引言 5.2 调度算法 5.3 调度算法性能分析 5.4 实时调度 5.5 多处理机调度 5.6 调度算法举例
实用操作系统概念 张惠娟 副教授 1.
第三章 处理机调度与死锁 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。
进程调度(Scheduling) 进程(Linux中称任务)定义:是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位。 描述进程的三个方面: 程序的一次运行活动; 进程的运行活动是建立在某个数据集合之上的; 进程在获得资源的基础上从事自己的运行活动。
Operating System CPU Scheduing - 2 Monday, August 11, 2008.
Operating System CPU Scheduing - 3 Monday, August 11, 2008.
操作系统 (处理器管理) 徐锋 南京大学计算机科学与技术系.
第6章 電腦軟體 應用軟體 多元程式處理 系統軟體 記憶體配置 作業系統簡介 虛擬記憶體 作業系統的演進與發展 行程管理
Operating System Concepts 作業系統原理 Chapter 3 行程觀念 (Process Concept)
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
第8章作業系統.
第二章 行程管理 朱肇明 資管系 講師 大華技術學院.
作 業 系 統 第三組 楊育翰 顏瑞霖.
实验三:作业调度 作业调度算法模拟
第三章 处理机调度与死锁 3.1 处理机调度的层次和调度算法的目标 3.2 作业与作业调度 3.3 进程调度 3.4 实时调度
Chapter 3 行程觀念 (Process Concept)
存储系统.
SOA – Experiment 3: Web Services Composition Challenge
中国科学技术大学计算机系 陈香兰 Fall 2013 第四讲 CPU调度(part II) 中国科学技术大学计算机系 陈香兰 Fall 2013.
CPU调度(Scheduling) 主讲教师:夏莹杰
操作系统原理 Operating System Principles
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
Windows网络操作系统管理 ——Windows Server 2008 R2.
中国科学技术大学计算机系 陈香兰(0512- ) Autumn 2009
Online job scheduling in Distributed Machine Learning Clusters
作业调度系统常用命令.
Unit 11.Operating System 11.1 What’s OS 11.2 Related Courses
内容摘要 ■ 课程概述 ■ 教学安排 ■ 什么是操作系统? ■ 为什么学习操作系统? ■ 如何学习操作系统? ■ 操作系统实例
Operation System(OS).
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
微机系统的组成.
进程概念.
中国科学技术大学计算机系 陈香兰 Fall 2013 第四讲 CPU调度 中国科学技术大学计算机系 陈香兰 Fall 2013.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
信号量(Semaphore).
第二章 操作系统用户界面 重点和难点: 1 作业的基本概念和建立 2 用户接口的概念和类型 3 系统调用的概念和过程.
第三章 处理机调度与死锁 3.1 处理机调度的基本概念 3.2 调度算法 3.3 实时调度 3.4 多处理机系统中的调度.
资源分配与调度 第5章 资源分配与调度.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
第五章 处理机管理 CPU Scheduling
李元金 计算机与信息工程学院 第7讲 处理机调度与死锁(1) 李元金 计算机与信息工程学院 1/
进程调度算法和作业调度算法。 (1) 先来先服务(FCFS)调度算法
第三章 处理机的调度和死锁.
PURSUING EXCELLENCE / TOWARD SUCCESS WUCHANG UNIVERSITY OF TECHNOLOGY
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 进程 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第十七讲 密码执行(1).
Nachos Project Assignment 2
实验六、COM类型病毒分析实验 实验开发教师: 刘乃琦 谌黔燕.
Presentation transcript:

第五章 处理机管理 CPU Scheduling 处理机调度类型和模型 调度算法的选择和评价 调度算法

处理机调度的目的 处理机的高利用率High processor utilization 高吞吐量High throughput number of processes completed per unit time 快速的响应时间Low response time time elapse from the submission of a request to the beginning of the response

调度的类型 作业调度( Long-term scheduling) 中级调度( Medium-term scheduling) 进程调度( Short-term scheduling)

作业及作业步的概念 作业 作业步 OS为用户服务,用户交给计算机做的工作称为作业 作业由程序、数据、作业说明书三部分组成 程序是问题求解的算法描述 数据是程序加工的对象,但有些程序未必使用数据; 作业说明书是告诉操作系统本作业的程序和数据按什么样的控制要求使之执行。 作业步 一个作业的一次活动中若干相对独立的加工步骤 编译原程序 连接装配程序 运行程序

作业的状态 1 提交状态 2 后备状态 3 运行状态 4 完成状态 作业从输入设备进入外存储器时的状态 作业的全部信息调入外存后,系统将其加入后备作业队列时的状态 系统将为每个作业建立一个作业控制表(JCT) 3 运行状态 作业被调度程序选中,并分配到它所需要的资源时调入内存运行时的状态 4 完成状态 作业正常运行结束或因发生错误而终止时,释放占有的所有资源,准备离开系统时的状态

作业的状态转换 进程调度 程序 运行 执行 提交 后备 就绪 等待 作业注册程序 作业调度程序 完成 作业终止程序

作业控制块JCB 作业名 作业类型 资源要求 资源使用情况 优先级 当前状态 其它

作业调度及其功能 作业调度是按照某种调度算法从后备作业队列中选择作业装入内存运行,并当作业运行结束后做后续处理。 作业调度又称为宏观调度 分配资源:分配内存和外设资源 建立作业的进程 建立其它相关表格 作业后续处理(收回资源/撤消PCB和JCB) 作业调度又称为宏观调度 在实时系统和分时系统中通常不配置作业调度

中级(交换)调度 为了提高内存利用率和系统吞吐量 实施的方法是“挂起”和“解挂” 是存储器管理中的对换功能 常配置在具有挂起功能的OS中 可改善内存的利用率

进程调度 又称为微调度 通常几十毫秒运行一次 往往以原语方式存在 CPU及I/O 猝发(Burst)周期 Process execution consists of a cycle of CPU execution and I/O wait 任何一种操作系统中都必须配置该级调度

进程调度的方式 CPU scheduling decisions may take place when a process: 1. Switches from running to waiting state, e. g., I/O request, wait for an event to occur(child completion,system object: semaphore,message queue, socket …) 2. Switches from running to ready state,e.g., interrupt 3. Switches from waiting to ready. 4. Terminates. Scheduling under 1 and 4 is nonpreemptive.(非抢占) All other scheduling is preemptive.(抢占)

进程调度方式(续) 非抢占调度方式(nonpreemptive) 抢占调度方式(preemptive) 实现简单,系统开销小,适用于批处理系统环境 难于满足紧近任务立即执行的要求,实时系统中不宜采用 抢占调度方式(preemptive) 适用于分时系统和实时系统 调度方式的原则 时间片原则 优先级原则 短进程优先原则

调度队列模型 仅具有进程调度的调度队列模型 时间片用完 交互用户 等待事件(阻塞) 事件发生(被唤醒)

调度队列模型 具有作业调度和进程调度的调度队列模型 等待事件n 等待事件2 相应事件发生 则唤醒相应进程 队列中的进程 作业调度

调度队列模型 具有作业和进程和中级调度的调度队列模型 被挂起 被激活 事件发生被唤醒 被挂起 事件发生

调度算法的选择 选择时考虑的因素 各因素间往往相互矛盾 系统各类资源的均衡使用 用户作业到达系统的时间 用户作业估计执行的时间 用户公平并使用户满意 作业的优先级 作业对内存和外设的要求及整个系统的效率 各因素间往往相互矛盾

算法选择时主要考虑4个方面 1 系统设计目标 2 均衡处理系统和用户的要求 批处理系统主要追求大的系统吞吐量 实时系统主要关心实时处理 分时系统主要注重保证用户请求的及时响应 2 均衡处理系统和用户的要求 选择算法时不应使一个作业被无限期的推迟 常采用优先级可变方式 即作业的优先级可随等待时间的增加而提高 采用优先级调度算法

算法选择时主要考虑4个方面(续) 3 系统资源利用率 4 优先级 尽可能地使各种资源忙碌 将科学计算型(CPU密集型)和数据处理型(I/O密集型)作业搭配运行 4 优先级 引入优先级机制,可让某些紧急作业得到及时处理 实时系统中还需要采用抢占调度方式

调度算法的性能评价 1 周转时间 作业i从提交时刻tsi到完成时刻tei称为作业的周转时间。 Ti=Tei - Tsi 完成时刻 提交时刻 一个作业的周转时间包括: 作业在外存后备作业队列中等待调度的时间 作业进程在就绪队列中等待获取CPU的时间 作业进程在CPU上执行的时间 作业等待I/O操作等阻塞或挂起的时间

调度算法的性能评价 作业平均周转时间 T 作业平均带权周转时间 W 用于衡量不同调度算法对同一作业流的调度性能 周转时间与实际运行时间之比 用于衡量某种调度算法对不同作业流的调度性能 W反映了作业对单位执行时间所付出的平均等时间 TRi是作业的实际运行时间

调度算法 调度算法是根据系统的资源分配策略所规定的资源分配算法实行调度 目前有很多处理机调度算法,有些适用于作业调度,有些适用于进程调度,有些两者都能适用 常用的几种调度算法 先来先服务调度算法 短作业(短进程)优先调度算法 优先级调度算法 时间片轮转调度算法 多级反馈队列调度算法 实时调度算法

先来先服务调度算法(FCFS) First Come First Served 作业调度: 选择一个或多个最先进入并能被系统满足的作业装入内存,分配资源,创建相应进程,放入就绪队列 进程调度: 从就绪队列中选最先进入队列的进程分配处理机,让它进入执行状态,该进程一直执行,直到完成或因等待某事件而阻塞时,才放弃处理机.

FCFS调度例子 假设:用户区空间100KB,内存连续分配且运行中不能移动。 作业名 进入SPOOLING的时间 需计算的时间(分) A 8:06 42 15 B 8:18 30 60 C 8:30 24 50 D 8:36 10 E 8:42 12 20

T=(42+60+66+96+96)/5=72(min) W=(1+2+2.75+4+8)/5=3.55 内存容量 100K 作业 需时 需内存 A 42 15 B 30 60 C 24 50 D 10 E 12 20 作业名 入时间 作业调度时 进程开始时 结束时间 周转时间 带权周转时间 A 8:06 B 8:18 C 8:30 9:18 D 8:36 E 8:42 8:06 8:48 42 42/42 8:48 9:18 60 60/30 9:42 10:06 96 96/24 9:18 9:42 66 66/24 10:06 10:18 96 96/12 T=(42+60+66+96+96)/5=72(min) W=(1+2+2.75+4+8)/5=3.55

FCFS的优缺点 优点 缺点 存在的问题 比较容易实现 不公平 有利于长作业(长进程) 不得于短作业(短进程) 当计算机时间长的作业选中后可能使计算机时间短的作业等待很长时间,使短作业用户不满意,而且使短作业周转时间变长,使作业平均周转时间变长,降低了系统的吞能力

轮转法 设定时间片, 轮流将处理机分配为各就绪进程 仅适用于进程调度 时间片的选择 根据当前进程数量动态计算 固定法 q = R / Nmax 根据当前进程数量动态计算

短作业(短进程)优先调度算法 Shortest-Job-First/Shortest-Process-First SJF短作业优先 从后备作业中选择一个或若干个估计运行时间最短且当能获得所要求资源的作业装入内存 SPF短进程优先 从就绪队列中选出一个估计运行时间最短的进程分配处理机,该进程立即执行并一直执行到完成或因等待事件发生而阻塞放弃处理机为止

短作业/进程调度例子 T=(42+60+66+108+72)/5=69.6(min) W=(1+2+11/4+9/2+6)/5=3.25 需时 需内存 A 42 15 B 30 60 C 24 50 D 10 E 12 20 作业名 入时间 作业调度时 进程开始时 结束时间 周转时间 带权周转时间 A 8:06 B 8:18 C 8:30 9:18 D 8:36 E 8:42 8:06 8:48 42 42/42 8:48 9:18 60 60/30 9:54 10:18 108 108/24 9:18 9:42 66 66/24 9:42 9:54 72 72/12 T=(42+60+66+108+72)/5=69.6(min) W=(1+2+11/4+9/2+6)/5=3.25

非抢占式SJF调度例子 Example of Non-Preemptive SJF Process Arrival Time UseTime P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 SJF (non-preemptive 非抢占) Average waiting time = (0 + 6 + 3 + 7)/4 = 4 T = (7+10+4+11)/4= 8 P1 P3 P2 P4 3 7 8 12 16

抢占式SJF调度例子 Example of Preemptive SJF Process Arrival Time Use Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 SJF (preemptive 抢占) Average waiting time = (9 + 1 + 0 +2)/4 = 3 T= (16+5+1+6)/4 = 7 P1 P2 P3 P2 P4 P1 11 16 2 4 5 7

SJF/SPF优缺点 优点 缺点 在平均周转时间和平均带权周转时间上比FCFS好 对长作业不利(延迟不确定) 紧迫作业、进程不能及时得到处理 执行时间可能有虚假(估计的执行时间由用户提供)