第六讲 进程控制与调度 目的与要求:理解进程切换过程,理解进程调度原因及调度切换时机,掌握进程调度方式与实现及各种调度算法,弄清作业和进程的关系,了解线程的引入原因。 重点与难点:进程切换的实现与进程调度算法。 作业:7, 8, 10, 11, 19, 20。

Slides:



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

高级服务器设计和实现 1 —— 基础与进阶 余锋
阻塞操作. 在 linux 里,一个等待队列由一个 wait_queue_head_t 类型的结构来描述 等待队列的初始化: static wait_queue_head_t testqueue; init_waitqueue_head(&testqueue);
Process Scheduling based on Linux3.2 孟宁 电话: 孟宁 V5 : 主页:
1 张惠娟 副教授 Linux 进程管理. 2 内容 进程组成 进程环境 进程管理内容 进程控制块 进程状态 进程调度 进程控制 进程通信.
Linux 系统. 操作系统发展需求 1 没有操作系统 2 简单批处理操作系统 3 多道程序设计的批处理 4 多道程序设计的分时操作系统 5 多处理机并行系统 6 网络操作系统 7 分布式操作系统.
计算机操作系统 第二章 进程管理 高校教师、高级项目经理 任铄 QQ:
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
2.7 线程 2.7.1线程的其本概念.
操作系统 年级:2003春 专业:计算机应用专业.
Chapter Two Process Management.
实用操作系统概念 张惠娟 副教授 1.
第三章 处理机调度与死锁.
第三章 作业管理 3.1 作业管理的基本功能 3.2 作业调度 3.3 作业控制.
4.1 调度的层次 4.2 Linux交换调度 4.3 Linux进程调度 4.4 小结 习题
2-7、函数的微分 教学要求 教学要点.
Lab2 syscall 参数问题 参数check在当前代码框架下并不具有任何含义, 它就只是个参数而已 参数不超过四个: 系统调用号
进程调度(Scheduling) 进程(Linux中称任务)定义:是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位。 描述进程的三个方面: 程序的一次运行活动; 进程的运行活动是建立在某个数据集合之上的; 进程在获得资源的基础上从事自己的运行活动。
计算机基础知识 丁家营镇九年制学校 徐中先.
Operating System Process Management - 1 Monday, August 11, 2008.
操作系统 (处理器管理) 徐锋 南京大学计算机科学与技术系.
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
实验三:作业调度 作业调度算法模拟
存储系统.
SOA – Experiment 3: Web Services Composition Challenge
中国科学技术大学计算机系 陈香兰 Fall 2013 第四讲 CPU调度(part II) 中国科学技术大学计算机系 陈香兰 Fall 2013.
CPU调度(Scheduling) 主讲教师:夏莹杰
实践演练 广州创龙电子科技有限公司 01 广州创龙电子科技有限公司
走进编程 程序的顺序结构(二).
操作系统原理 Operating System Principles
临界区软件互斥软件实现算法.
中国科学技术大学计算机系 陈香兰(0551- ) Spring 2009
陈香兰 助教:陈博、李春华 Spring 2009 嵌入式操作系统 陈香兰 助教:陈博、李春华 Spring 2009.
中国科学技术大学计算机系 陈香兰(0512- ) Autumn 2011
中国科学技术大学计算机系 陈香兰(0512- ) Autumn 2009
Linux操作系统分析 中国科学技术大学计算机系 陈香兰(0512- )
操作系统原理 Operating System Principles
本节内容 模拟线程切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
逆向工程-汇编语言
临界区软件互斥软件实现算法 主讲教师:夏莹杰
CPU结构和功能.
作业调度系统常用命令.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
内容摘要 ■ 课程概述 ■ 教学安排 ■ 什么是操作系统? ■ 为什么学习操作系统? ■ 如何学习操作系统? ■ 操作系统实例
C语言程序设计 主讲教师:陆幼利.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
微机系统的组成.
2.3 进程及其实现 进程的定义和属性 进程的状态和转换 进程的描述 进程切换与模式切换
VisComposer 2019/4/17.
实验四、TinyOS执行机制实验 一、实验目的 1、了解tinyos执行机制,实现程序异步处理的方法。
进程概念.
姚金宇 MIT SCHEME 使用说明 姚金宇
Linux操作系统分析 中国科学技术大学计算机系 陈香兰(0512- )
中国科学技术大学计算机系 陈香兰 Fall 2013 第四讲 CPU调度 中国科学技术大学计算机系 陈香兰 Fall 2013.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
信号量(Semaphore).
临界区问题的硬件指令解决方案 (Synchronization Hardware)
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
本节内容 Windows线程切换_时钟中断切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
第五章 处理机管理 CPU Scheduling
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
第六章 Excel的应用 五、EXCEL的数据库功能 1、Excel的数据库及其结构 2、Excel下的数据排序 (1)Excel的字段名行
第三章 处理机的调度和死锁.
基于列存储的RDF数据管理 朱敏
第五章 处理机管理 CPU Scheduling
本节内容 进程 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
本节内容 SEMAPHORE 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
Presentation transcript:

第六讲 进程控制与调度 目的与要求:理解进程切换过程,理解进程调度原因及调度切换时机,掌握进程调度方式与实现及各种调度算法,弄清作业和进程的关系,了解线程的引入原因。 重点与难点:进程切换的实现与进程调度算法。 作业:7, 8, 10, 11, 19, 20。

主要内容 进程控制与调度: 进程执行; 进程调度; 调度算法。 作业与进程关系; 线程的引入。

3.3 进程控制与调度 3.3.1 进程执行 系统参考模型:内核嵌入进程运行模型。 执行模式:进程可在用户态和核心态下运行。 3.3 进程控制与调度 3.3.1 进程执行 系统参考模型:内核嵌入进程运行模型。 执行模式:进程可在用户态和核心态下运行。 进程模式切换:一个用户进程既运行用户态程序,也在自陷、系统调用和中断时转换到核心态运行操作系统核心程序。 进程切换:指进程进入操作系统核心后,因为自身等事件或有更迫切需要运行的进程就绪而放弃处理机,而处理机转去运行其他进程。

进程切换过程 保存处理机的上下文,包括程序计数器、程序状态字、其他寄存器。 修改当前运行进程的进程控制块内容,包括将进程状态从运行态改成其他状态。 选择另一个进程执行,这是进程调度所涉及到的内容。 修改被调度进程的进程控制块,包括把其状态改变到运行态。 修改存储管理数据结构,如将系统当前运行进程页表指针改为指向选定的进程页表。 恢复被选进程上次切换出处理机时的处理机现场,按原保护的程序计数器值重置程序计数器,运行新选进程。

3.3.2 进程调度 特指选择进程占用处理机。 1.一般调度概念 1)什么是调度:操作系统管理了系统的有限资源,当有多个进程(或多个进程发出的请求)要使用这些资源时,因为资源的有限性,必须按照一定的原则选择进程(或请求)来占用资源。这就是调度。 2)调度目的:控制资源使用者的数量,选取资源使用者并许可占用资源或占用资源。

3)几个调度例子: 高级调度。选取输入井中的作业(仅限于批作业调度),生成根进程。目的是控制使用系统资源的进程数。 中级调度。指选取进程占用内存或有资格占用内存,又称进程滚入滚出。 低级调度。指选取进程占用处理机,又称进程调度。

2.进程调度方式 1)剥夺调度:当进程运行时可以被系 统以某种原则为由剥夺其处理机。 2)非剥夺:只有当处理机上的进程主 动放弃处理机时,才重新调度。 进程调度在核心态进行。

3.引起进程调度因素 1)进程主动放弃处理机时: (1)正在执行的进程执行完毕。操作系统在处理进程结束、系统调用后,应请求重新调度。 (2)正在执行的进程发出I/O请求,当操作系统代其启动外设I/O后,在I/O请求没有完成前要将进程变成阻塞状态,应该请求重新调度。 (3)正在执行的进程要等待其他进程或系统发出的事件时,如等待另一个进程通信数据,这时操作系统应将现运行进程挂到等待队列,并且请求重新调度。 (4)正在执行的进程得不到所要的系统资源,如要求进入临界区,但没有得到锁时,这时等锁的进程应自动放弃处理机或者阻塞到等锁队列上,并且请求重新调度。

2)为了支持可剥夺的进程调度方式,在以下情况发生时,因为新就绪的进程可能会按某种调度原则剥夺正运行的进程,因此也应该申请进行进程调度: (1)当中断处理程序处理完中断(如I/O中断、通信中断),引起某个阻塞进程变成就绪状态时,应该请求重新调度。 (2)当进程释放资源、走出临界区,引起其他等待该资源进程从阻塞状态进入就绪状态时,应该请求重新调度。 (3)当进程发出系统调用,引起某个事件发生,导致等待事件的进程就绪时。 (4)其他任何原因引起有进程从其他状态变成就绪状态,如进程被中调选中时。

3)为了支持可剥夺调度,即使没有新就绪进程,为了让所有就绪进程轮流占用处理机,可在下述情况下申请进行进程调度: (1)当时钟中断发生,时钟中断处理程序调用有关时间片的处理程序,发现正运行进程时间片已到时,应请求重新调度,以便让其他进程占用处理机。 (2)在按进程优先级进行进程调度的操作系统中,任何原因引起进程的优先级发生变化时,应请求重新调度。如进程通过系统调用自愿改变优先级,或者系统处理时钟中断时,根据各进程等待处理机时间的长短而调整进程的优先级。

4.调度与切换时机 (1)当发生引起调度条件变化,且当前进程无法继续运行下去(如发生各种进程放弃处理机的条件)时,可以马上进行调度与切换。 (2)当中断处理结束或自陷处理结束,返回被中断进程的用户态程序执行前,若请求置上调度标志,即可马上进行进程调度与切换。如果操作系统支持这种情况下运行调度程序,即实现了剥夺方式的调度。 (3)实时系统还有其他调度与切换时机。

FCFS:谁先到就绪队列就将处理机分给谁。 3.3.3 进程调度算法 FCFS:谁先到就绪队列就将处理机分给谁。 短进程优先:取一个下次所需运行时间最短的进程(该算法能使平均等待时间最短)。 优先级调度:选优先级最高的进程占用处理机(优先级可动态改变)。 轮转调度法:以先来后到的次序+ 时间片轮转。 多队列调度法:按属性将就绪进程分类,不同类进程可有不同的调度算法。 多级反馈队列调度法:设置多条就绪队列,进程被调度执行后,在被剥夺或放弃处理机后而在就绪时,可以改变其就绪队列(见下图)。

第一级队列 (FIFO) … 使用处理机 完成 抢占 第二级队列 第n级队列 (时间片轮转)

设计另一个多级反馈队列调度算法的例子: 以优先级设置多队列。 各队列的调度算法采用FCFS+时间片轮转. 进程优先级升降原则是:等待过久升,输入/输出完成时升,运行完一个完整时间片降…… 进程最初进入就绪队列以用户初置优先级为参数。

3.4 作业与进程的关系 作业:是用户对计算机的一次独立的使用过程。 3.4 作业与进程的关系 作业:是用户对计算机的一次独立的使用过程。 进程:是分配计算机资源的单位,是用户任务运行的实体。作业可包含多个进程(至少一个)。 批处理系统作业与进程关系:作业调度程序每选择一道作业运行时,首先为该作业创建一个根进程。该进程执行作业控制语言解释器程序,并可根据需要创建多个子进程。

作业和进程状态转换图 提交 后备 运行 完成 作业输入 作业调度 创建进程 作业终止 就绪 执行 等待 进程调度

分时系统作业与进程 的关系:把用户的一次上机过程看成是一个交互作业(无论是内部表示及外部特征,它都有别于批作业),系统为每个终端设备生成一个进程,该进程运行终端命令解释器。该进程根据需要还可以创建多个子进程。 支持分时与批处理的系统作业提交方法:用户可以通过交互式命令提交子作业(如:at-f/root/ bin/ss now 表示提交一个作业控制说明书文件名为ss的作业,到作业输入队列,或直接键入“shell ss”,表示马上生成一个进程执行命令解释器,解释执行ss中的命令) 。

命令解释程序执行流程: 输入一条终端命 令,分析命令 后台命令 创建子进程执行命令 等子进程返回 向终端发提示符 否

3.5 线程引入 1.轻权进程(light-weight process)的引入 引入进程是为了实现作业内作业步的并发执行,同一作业进程之间会有许多的协作,需要进行数据交换,但进程有自己独立的存储空间,互相不干扰。如果要进行进程间数据交换,则需要操作系统的相关系统调用支持,为了方便进程间交换数据,一种共享存储空间的进程概念应运而生,我们叫它为轻权进程(light-weight process)。

2.线程的引入 随着共享内存多CPU计算机的发展,迫切需要加速单个作业步的运行速度。事实上同一个作业步的工作也是有可并行成分的,由于进程内程序执行的顺序性,不可能实现进程内可并行成分的并行执行。为此,线程的概念呼之欲出。在一个进程中可以包含多个可以并发(并行)执行的线程。系统按进程分配所有除CPU以外的系统资源(如内存、外设、文件等),而程序则依赖于线程运行,系统按线程分配CPU资源。引入线程后,进程概念内涵改变了,进程只作为除CPU以外系统资源的分配单位,不再以进程为单位占用CPU 。

进程与线程关系图 进程1 进程2 线程 进程3