




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2023/1/311操作系统
OperatingSystems
操作系统课程组南京邮电大学WINDOWSUNIXLINUXOS2VxWorksMacOS2023/1/312第三章进程管理与调度
3.1中央处理器
3.8低级调度3.2中断
3.9线程及其概念3.3进程及其实现
3.10Linux进程管理3.4进程的控制3.5进程切换与模式切换3.6处理器调度3.7作业的管理与调度2023/1/313第三章进程管理与调度
3.1中央处理器
3.8低级调度3.2中断
3.9线程及其概念3.3进程及其实现
3.10Linux进程管理3.4进程的控制3.5进程切换与模式切换3.6处理器调度3.7作业的管理与调度2023/1/3143.1中央处理器●任何系统软件都是硬件功能的延伸●操作系统直接依赖于硬件条件●操作系统的硬件环境以较分散的形式同各种管理模块相结合2023/1/3153.1中央处理器1、CPU的构成与基本工作方式
中央处理器(CentralProcessingUnit,CPU)是一台计算机的运算核心和控制核心。CPU、内部存储器和输入/输出设备是电子计算机三大核心部件。其功能主要是解释计算机指令以及处理计算机软件中的数据。2023/1/3163.1中央处理器1、CPU的构成与基本工作方式
处理器由运算器、控制器、一系列的寄存器以及高速缓存构成。1)运算器
实现指令中的算术运算和逻辑运算,是计算机计算
的核心。2)控制器
负责控制程序运行的流程,包括取指令、维护CPU
状态、CPU与内存的交互等等。2023/1/3173.1中央处理器1、CPU的构成与基本工作方式3)寄存器寄存器是指令在CPU内部作处理的过程中暂存数据、地址以及指令信息的存储设备。在计算机的存储系统中它具有最快的访问速度。(寄存器>缓存>内存>外存)用户可见寄存器——高级语言编译器通过算法分配并使用之,以减少程序访问主存次数。控制寄存器——用于控制处理器的操作,由OS的特权代码使用,以控制其它程序的执行。寄存器2023/1/3183.1中央处理器1、CPU的构成与基本工作方式4)高速缓存高速缓存处于CPU和物理内存之间,一般由控制器中的内存管理单元(MMU:MemoryManagementUnit)管理。
访问速度快于内存,低于寄存器。利用程序局部性原理使得高速指令处理和低速内存访问得以匹配,从而提高CPU的效率
所谓程序局部性原理是指在一段较短时间内,程序的执行仅限于某个部分。表现为两个方面:●时间局限性:如果某条指令被执行,则不久以后该指令很可能再次被执行。产生时间局限性的主要原因是程序中有大量的循环操作。●空间局限性:一旦程序访问了某个内存单元,不久以后,其附近的内存单元也要被访问,即程序在一段时间内所访问的存储器空间可能集中在一定的范围之内。2023/1/3193.1中央处理器2、特权指令与非特权指令●特权指令:只能由操作系统使用的指令●非特权指令:操作系统和用户都能使用的指令具体特权指令如:启动I/O设备、设置时钟、控制中断屏蔽位、清内存、建立存储键,加载程序状态字等。CPU如何知道当前运行的是操作系统还是一般应用软件?(即当前能否运行特权指令?)——有赖于处理器状态的标识2023/1/31103.1中央处理器3、处理器的状态分类原则:根据运行程序对资源和机器指令的使用权限将处理器设置为不同状态管态:操作系统管理程序运行的状态,具有较高的特权级别,又称为特权态(特态)、系统态目态:用户程序运行时的状态,较低的特权级别,又称为普通态(普态)、用户态(注意:有些系统将处理器状态划分核心状态,管理状态和用户程序状态(目标状态)三种)2023/1/31113.1中央处理器3、处理器的状态处理器处于管态时:√全部指令(包括特权指令)可以执行√可使用所有资源√并具有改变处理器状态的能力处理器处于目态时:√只有非特权指令能执行●特权级别越高,可以运行指令集合越大●高特权级别对应的可运行指令集合包含低特权级的2023/1/31123.1中央处理器3、处理器的状态实例:x86系列处理器386、486、Pentium系列都支持4个处理器特权级别(特权环:R0、R1、R2和R3)从R0到R3特权能力依次降低R0相当于系统的管态R3相当于目态R1和R2则介于两者之间,它们能够运行的指令集合具有包含关系2023/1/31133.1中央处理器3、处理器的状态目态→管态其转换的唯一途径是通过中断管态→目态可用设置PSW(修改程序状态字)可实现2023/1/31143.1中央处理器3、处理器的状态状态切换(模式切换)举例——1)假设CPU运行在用户态(目态),当发生中断时,暂停正在执行的用户进程,CPU切换到内核状态(管态),去执行中断处理程序,这就是一次模式切换(状态切换)2)接着,内核在核心态(管态)运行该中断处理程序3)当处理完成后,CPU自己回到用户态(目态),继续执行刚刚被中断的进程2023/1/31153.1中央处理器4、程序状态字
程序状态寄存器PSW是计算机系统的核心部件——控制器的一部分,PSW用来存放两类信息:一类是体现当前指令执行结果的各种状态信息,称为状态标志,如有无进位(CF位),有无溢出(OF位),结果正负(SF位)等;另一类是存放控制信息,称为控制状态,如允许中断(IF位),方向标志(DF)等。2023/1/31163.1中央处理器4、程序状态字PSW用来控制指令执行顺序并保留和指示与程序有关的系统状态,主要作用是实现程序状态的保护和恢复。
每个进程都有一个与其执行相关的PSW,每个处理器都设置一个PSW寄存器。进程占有处理器执行,它的PSW将占有PSW寄存器。2023/1/3117第三章进程管理与调度
3.1中央处理器
3.8低级调度3.2中断
3.9线程及其概念3.3进程及其实现
3.10Linux进程管理3.4进程的控制3.5进程切换与模式切换3.6处理器调度3.7作业的管理与调度2023/1/3118第三章进程管理与调度
3.1中央处理器 3.8低级调度3.2中断
3.9线程及其概念3.3进程及其实现
3.10Linux进程管理3.4进程的控制3.5进程切换与模式切换3.6处理器调度3.7作业的管理与调度2023/1/31193.2中断1、中断的概念●中断是指CPU对系统中或系统外发生异步事件的响应(异步事件是指无一定时序关系的随机发生事件)●
CPU暂停正在执行的程序,保留现场后自动转去执行相应事件的处理程序,处理完成后返回断点,继续执行被打断的程序。●“中断”名称源于:当异步事件发生后,打断了对当前程序的执行而转去处理该异步事件,直到处理完了后,再转回原程序中断点继续执行。2023/1/31203.2中断1、中断的概念2023/1/31213.2中断2、中断的分类——从中断的性质和激活的手段来分(IBM):●强迫性中断正在运行的程序所不期望的,由于某种硬件故障或外部请求引起的●自愿性中断用户在程序中有意识安排的中断,是由于用户在编制程序时因为要求操作系统提供服务,有意使用“访管”指令或系统调用,使中断发生2023/1/31223.2中断2、中断的分类外中断:中断(时钟中断、键盘中断、设备中断…)内中断:异常(错误事件、地址越界…)信号:用于内核对进程的中断软件中断:用于硬中断服务程序的处理可屏蔽中断不可屏蔽中断硬中断软中断按事件来源和实现手段分类2023/1/31233.2中断2、中断的分类关于中断(外中断),请大家记住4句话——1)中断是由与现行指令无关的中断信号触发的(异步的)2)中断的发生与CPU处在用户模式或内核模式无关3)在两条机器指令之间才可响应中断4)一般来说,中断处理程序提供的服务不是为当前进程所需的2023/1/31243.2中断2、中断的分类关于异常(内中断),请大家记住3句话——1)异常是由处理器正在执行现行指令而引起的2)一条指令执行期间允许响应异常3)异常处理程序提供的服务是为当前进程所用的2023/1/3125第三章进程管理与调度
3.1中央处理器
3.8低级调度3.2中断
3.9线程及其概念3.3进程及其实现
3.10Linux进程管理3.4进程的控制3.5进程切换与模式切换3.6处理器调度3.7作业的管理与调度2023/1/3126第三章进程管理与调度
3.1中央处理器 3.8低级调度3.2中断
3.9线程及其概念3.3进程及其实现
3.10Linux进程管理3.4进程的控制3.5进程切换与模式切换3.6处理器调度3.7作业的管理与调度2023/1/31273.3进程及其实现1、进程的定义●进程是为了描述程序在并发执行时对系统资源的共享,所需的一个描述程序执行时动态特征的概念●
定义:进程是具有独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配、调度和保护的独立单位2023/1/31283.3进程及其实现2、进程的类型和特性1)进程分类●系统进程(在核心态下执行操作系统代码,如作业调度、各种资源管理和控制等)●用户进程(在用户态下执行用户程序)(系统进程一般优先于用户进程)2023/1/31293.3进程及其实现2、进程的类型和特性2)进程的特征●动态性:进程是程序在处理机上的一次执行过程,有一定生命周期●并发性:多个进程可同时存在于内存中,能在一段时间内同时运行●独立性:进程是一个能独立运行的基本单位,也是资源分配的基本单位●制约性:进程间因为对资源的争用而相互制约●异步性:进程按照各自独立的、不可预知的速度推进●结构性:进程包含了相关的数据和程序,同时还有一个称为“进程控制块”的数据结构来记录进程的动态变化过程。因此,进程的组成三要素为“程序”、“数据”和“进程控制块(PCB)”2023/1/31303.3进程及其实现3、进程与程序的区别
进程更能真实地描述并发,而程序不能
进程是由程序和数据和进程控制块三部分组成的
程序是静态的,进程是动态的进程有生命周期,有诞生有消亡,短暂的;而程序是相对长久的一个程序可对应多个进程,反之亦然
进程具有创建其他进程的功能,而程序没有2023/1/31313.3进程及其实现4、进程的状态和转换1)三态模型(1)运行态(Running):进程占有CPU,并在CPU上运行(2)就绪态(Ready):一个进程已经具备运行条件,但由于无CPU暂时不能运行的状态(当调度给其CPU时,立即可以运行)(3)等待态(Blocked):又叫阻塞态、封锁态、睡眠态指进程因等待某种事件的发生而暂时不能运行的状态(即使CPU空闲,该进程也不可运行)2023/1/31323.3进程及其实现4、进程的状态和转换1)三态模型2023/1/31333.3进程及其实现4、进程的状态和转换1)三态模型就绪-->运行调度程序选择一个新的进程运行2023/1/31343.3进程及其实现4、进程的状态和转换1)三态模型运行-->就绪●运行进程用完了时间片●运行进程被中断,因为一高优先级进程处于就绪状态2023/1/31353.3进程及其实现4、进程的状态和转换1)三态模型运行-->等待●当一进程必须等待时 ●对一资源的访问尚不能进行●初始化I/O且必须等待结果●等待某一进程提供输入2023/1/31363.3进程及其实现4、进程的状态和转换1)三态模型等待-->就绪当所等待的事件发生时2023/1/31373.3进程及其实现4、进程的状态和转换2)五态模型和三态模型相比,增加了两个状态,分别是——(1)新建状态①
操作系统已完成为创建一进程所必要的工作已构造了进程标识符已创建了管理进程所需的表格②
但还没有允许执行该进程(尚未同意运行,即尚未进入内存)
因为资源有限2023/1/31383.3进程及其实现4、进程的状态和转换2)五态模型和三态模型相比,增加了两个状态,分别是——(2)终止状态进程运行终止后进程移入该状态进程在此状态不再有执行资格表格和其它信息暂时由辅助程序保留一旦其他进程完成了对终止态进程的信息抽取之后,系统将删除该进程。2023/1/31393.3进程及其实现4、进程的状态和转换2)五态模型2023/1/31403.3进程及其实现4、进程的状态和转换2)五态模型从三态模型到五态模型——NULL→新建态:创建一个子进程。新建态→就绪态:系统完成了进程创建操作,且当前系统的性能和内存的容量均允许。运行态→终止态:一个进程到达自然结束点,或出现了无法克服的错误,或被操作系统所终结,或被其他有终止权的进程所终结。终止态→NULL:完成善后操作。就绪态→终止态:某些操作系统允许父进程终结子进程。等待态→终止态:某些操作系统允许父进程终结子进程。2023/1/31413.3进程及其实现4、进程的状态和转换3)七态模型
比五态模型增加了“挂起”状态为什么要有“挂起”状态?
由于进程的不断创建,系统资源已不能满足进程运行的要求,就必须把某些进程挂起(suspend),对换到磁盘镜像区中,暂时不参与进程调度,起到平滑系统操作负荷的目的。2023/1/31423.3进程及其实现4、进程的状态和转换3)七态模型2023/1/31433.3进程及其实现4、进程的状态和转换3)七态模型
挂起(Suspend):把一个进程从内存转到外存可能有以下几种情况:●阻塞→阻塞挂起:没有进程处于就绪状态或就绪进程要求更多内存资源时,发生这种转换,以提交新进程或运行就绪进程●就绪→就绪挂起:当有高优先级阻塞(系统认为会很快就绪的)进程和低优先级就绪进程时,系统会挂起低优先级就绪进程●运行→就绪挂起:对抢占式系统,当有高优先级阻塞挂起进程因事件出现而进入就绪挂起时,系统可能会把运行进程转到就绪挂起状态2023/1/31443.3进程及其实现4、进程的状态和转换3)七态模型
激活(Activate):把一个进程从外存转到内存;可能有以下几种情况:●就绪挂起→就绪:没有就绪进程或挂起就绪进程优先级高于就绪进程时,发生转换●阻塞挂起→阻塞:当一个进程释放足够内存时,系统会把一个高优先级阻塞挂起(系统认为会很快出现所等待的事件)进程转换为阻塞状态。2023/1/31453.3进程及其实现5、进程控制块1)定义●进程控制块(ProcessControlBlock)是系统为了管理进程设置的一个专门的数据结构,用它来记录进程的外部特征,描述进程的运动变化过程●系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志●进程与PCB是一一对应的2023/1/31463.3进程及其实现5、进程控制块1)定义2023/1/31473.3进程及其实现5、进程控制块2)进程控制块的构成(1)进程描述信息●进程标识符(processID),唯一,通常是一个整数●进程名,通常基于可执行文件名(不唯一)●用户标识符(userID)●进程组关系2023/1/31483.3进程及其实现5、进程控制块2)进程控制块的构成(2)进程控制信息●当前状态●优先级(priority)●代码执行入口地址●程序的外存地址●进程间同步和通信●阻塞原因●进程的队列指针●进程的消息队列指针●运行统计信息(执行时间、页面调度)2023/1/31493.3进程及其实现5、进程控制块2)进程控制块的构成(3)所拥有的资源和使用情况●虚拟地址空间的现状●占用内存的大小(4)CPU现场保护信息●寄存器值(通用、程序计数器PC、状态PSW,地址包括栈指针)●指向赋予该进程的段/页表的指针2023/1/31503.3进程及其实现5、进程控制块3)进程控制块的组织●系统把所有PCB组织在一起,并把它们放在内存的固定区域,就构成了PCB表。●PCB表的大小决定了系统中最多可同时
存在的进程个数,称为系统的并发度。2023/1/31513.3进程及其实现6、进程的要素1)进程的静态组成进程程序进程数据栈●用于系统调用、过程调用时的参数存储和传递进程控制块PCB(进程属性)●处于核心段●
用户进程不能直接访问、修改自己的PCB2023/1/31523.3进程及其实现6、进程的要素2)存储器中的进程映像2023/1/31533.3进程及其实现6、进程的要素3)进程上下文(1)进程上下文的概念:进程本身+运行环境对进程执行活动全过程的静态描述由进程的用户地址空间内容、硬件寄存器内容及与该进程相关的核心数据结构组成2023/1/31543.3进程及其实现6、进程的要素3)进程上下文(2)进程上下文的分类①用户级上下文:进程的用户地址空间(包括用户栈各层次),包括用户正文段、用户数据段和用户栈②寄存器级上下文:PSW寄存器、处理器状态寄存器、栈指针、通用寄存器的值③系统级上下文:●静态部分(PCB和资源表格)●动态部分:核心栈(核心过程的栈结构,不同进程在调用相同核心过程时有不同核心栈)2023/1/31553.3进程及其实现6、进程的要素3)进程上下文(3)进程上下文的切换
进程切换是让处于运行态的进程中断运行,让出处理器,这时要做一次进程上下文切换、即保存老进程状态而装入被保护了的新进程的状态,以便新进程运行。
2023/1/31563.3进程及其实现6、进程的要素3)进程上下文(3)进程上下文的切换——进程切换的步骤①保存被中断进程的处理器现场信息。②修改被中断进程的进程控制块的有关信息,如进程状态等。③把被中断进程的进程控制块加入有关队列。④选择下一个占有处理器运行的进程。⑤修改被选中进程的进程控制块的有关信息。⑥根据被选中进程设置操作系统用到的地址转换和存储保护信息。⑦根据被选中进程恢复处理器现场。2023/1/3157第三章进程管理与调度
3.1中央处理器
3.8低级调度3.2中断
3.9线程及其概念3.3进程及其实现
3.10Linux进程管理3.4进程的控制3.5进程切换与模式切换3.6处理器调度3.7作业的管理与调度2023/1/3158第三章进程管理与调度
3.1中央处理器 3.8低级调度3.2中断
3.9线程及其概念3.3进程及其实现
3.10Linux进程管理3.4进程的控制3.5进程切换与模式切换3.6处理器调度3.7作业的管理与调度2023/1/31593.4进程的控制1、进程控制的概念
处理器管理的一个主要工作是对进程的控制。进程控制是系统使用一些具有特定功能的程序段来创建、撤消进程以及完成进程各状态间的转换,从而达到多进程高效率并发执行和协调、实现资源共享的目的。
包括:创建进程、阻塞进程、唤醒进程、挂起进程、激活进程、终止进程和撤销进程等2023/1/31603.4进程的控制2、原语的概念●
上述这些控制和管理功能是由操作系统的原语来实现。●
原语(Primitive)是在管态下执行的一个过程。●
原语在执行过程中不允许被中断,是一个不可分割的
基本单位,原语的执行是顺序的而不可能是并发的。●一种原语的实现方法是以系统调用方式提供原语接
口,且采用屏蔽中断的方式来实现原语功能,以保证
原语操作不被打断的特性。2023/1/31613.4进程的控制3、进程的创建1)进程创建的方式(1)由系统程序模块统一创建,例如在批处理系统
中,由操作系统的作业调度程序为用户作业创
建相应的进程以完成用户作业所要求的功能。(2)由父进程创建,例如在层次结构的系统中,父
进程创建子进程以完成并行工作。2023/1/31623.4进程的控制3、进程的创建2)进程创建来源于以下事件——●提交一个批处理作业●在终端上交互式的登录●操作系统创建一个服务进程●存在的进程孵化(spawn)新的进程
……2023/1/31633.4进程的控制3、进程的创建3)进程的创建过程(1)父进程(ParentProcess)创建子进程(ChildProcess)
时
,系统在进程表中增加一项,并从PCB池中取一个空白PCB。(2)为新创建的进程映像分配地址空间。传递环境变量,构造共享地址空间。(3)为新进程分配资源,除内存空间外,还有其他资源。2023/1/31643.4进程的控制3、进程的创建3)进程的创建过程(4)查找辅存,找到进程正文段并装到正文区。(5)初始化进程控制块,为新进程分配进程标识符,
初始化PSW。(6)加入就绪进程队列,将进程投入运行。(7)通知操作系统的某些模块,如记账程序、性能监
控程序。2023/1/31653.4进程的控制3、进程的创建4)Linux进程创建实例●在Linux中,只有0进程是在系统引导时被创建的,在系统初启时由0进程创建1进程,1进程成为系统中的始祖进程。●
Linux利用fork()为每个终端创建一个子进程为用户服务,如等待用户登录、执行SHELL命令解释程序等,每个终端进程又可利用fork()来创建其子进程,从而形成一棵进程树。可以说,系统中除0进程外的所有进程都是用fork()创建的。●系统调用fork()的源代码参见:
/USR/SRC/LINUX/KERNEL/FORK.C
2023/1/31663.4进程的控制3、进程的创建4)Linux进程创建实例实例:编写一段程序,使用系统调用fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示不同的字符串:子进程显示'daughter…'及'son……',父进程显示'parent……'。2023/1/31673.4进程的控制3、进程的创建4)Linux进程创建实例实例:(1)所涉及的系统调用
fork
()创建一个新进程
系统调用格式:pid=fork
(
)
参数定义:intfork
()
fork
()返回值意义如下:
0:在子进程中,pid变量保存的fork
()返回值为0,表示
当前进程是子进程。
>0:在父进程中,pid变量保存的fork
()返回值为子进程的
id值(进程唯一标识符)。
-1:创建失败。2023/1/31683.4进程的控制3、进程的创建4)Linux进程创建实例实例:(1)所涉及的系统调用
fork
()创建一个新进程
如果fork()调用成功,它向父进程返回子进程的PID,并向子进程返回0,即fork()
被调用了一次,但返回了两次。此时OS在内存中建立一个新进程,所建的新进程是调用fork()父进程(parentprocess)的副本,称为子进程(childprocess)。
子进程继承了父进程的许多特性,并具有与父进程完全相同的用户级上下文。父进程与子进程并发执行。2023/1/31693.4进程的控制3、进程的创建4)Linux进程创建实例实例:#include<stdio.h>main(){intp1,p2,i;while((p1=fork())==-1);/*创建子进程p1*/if(p1==0)for(i=0;i<10;i++)printf("daughter%d\n",i);else{while((p2=fork())==-1);/*创建子进程p2*/if(p2==0)for(i=0;i<10;i++)printf("son%d\n",i);elsefor(i=0;i<10;i++)printf("parent%d\n",i);}}2023/1/31703.4进程的控制4、进程的阻塞和唤醒1)进程阻塞●阻塞原语在一个进程期待某一事件(如
键盘输入数据、其他进程发来的数据等)
发生,但发生条件尚不具备,被该进程
调用来阻塞自己;●阻塞原语在阻塞一个进程时,由于该进
程正处于执行状态,故应先中断处理机
和保存该进程的CPU现场,保存现场信息到PSW;●
然后,将被阻塞进程置“阻塞”状态后插
入等待队列中,再转进程调度程序选择
新的就绪进程投入运行。2023/1/31713.4进程的控制4、进程的阻塞和唤醒1)进程阻塞进程阻塞的具体步骤是——(1)停止进程执行,保存现场信息到PSW(2)修改PCB的有关内容,如进程状态由运行改为等待(3)把修改状态后的PCB加入相应的等待队列2023/1/31723.4进程的控制4、进程的阻塞和唤醒2)进程唤醒●一种是由系统进程唤醒。系统进程统一控制事件的发生并将“事件发生”这一消息通知等待进程,从而使得该进程因等待事件已发生而进入就绪队列。●另一种是由事件发生进程唤醒。事件发生进程和被唤醒进程之间是合作关系。因此,唤醒原语既可被系统进程调用,也可被事件发生进程调用。2023/1/31733.4进程的控制4、进程的阻塞和唤醒2)进程唤醒进程唤醒的具体步骤是——(1)从相应的等待进程队列中取出
PCB(2)修改PCB的有关信息,如进程状态等(3)将被唤醒的进程置为就绪状态之后,把修改后的PCB加入有关就绪进程队列2023/1/31743.4进程的控制5、进程的撤销1)以下情况导致进程被撤消:
①该进程已完成所要求的功能而正常终止;②由于某种错误导致非正常终止;③祖先进程要求撤消某个子进程。2023/1/31753.4进程的控制5、进程的撤销2)撤销原语终止进程的具体步骤:
根据撤销进程标识号,从相应队列中找到它的PCB;将该进程拥有的资源归还给父进程或操作系统;若该进程拥有子进程,应先撤销它所有子孙进程,以防它们脱离控制撤销进程出队,将它的PCB归还到
PCB池。2023/1/31763.4进程的控制6、进程的挂起和激活1)挂起原语执行过程:
检查要被挂起进程的状态,若处于活动就绪态就修
改为挂起就绪,若处于阻塞态,则修改为挂起阻塞。
被挂起进程PCB的非常驻部分要交换到磁盘对换区。2023/1/31773.4进程的控制6、进程的挂起和激活2)激活原语执行过程:
把进程PCB非常驻部分调进内存,修改它的状态,
挂起等待态改为等待态,挂起就绪态改为就绪态,
排入相应队列中。
挂起原语既可由进程自己也可由其他进程调用,但
激活原语却只能由其他进程调用。2023/1/3178第三章进程管理与调度
3.1中央处理器
3.8低级调度3.2中断
3.9线程及其概念3.3进程及其实现
3.10Linux进程管理3.4进程的控制3.5进程切换与模式切换3.6处理器调度3.7作业的管理与调度2023/1/3179第三章进程管理与调度
3.1中央处理器 3.8低级调度3.2中断
3.9线程及其概念3.3进程及其实现
3.10Linux进程管理3.4进程的控制3.5进程切换与模式切换3.6处理器调度3.7作业的管理与调度2023/1/31803.5进程切换与模式切换1、执行模式1)处理机一般有两种执行模式
●
特权模式(又称核心模式、系统模式等):操作系统核心程序在这种模式下运行。某些指令只能在特权模式下执行,如读写处理机状态字PSW等控制寄存器以及存储管理相关的一些指令。●非特权模式(即用户模式):用户程序在这个模式下运行。2023/1/31813.5进程切换与模式切换1、执行模式2)采用两种执行模式的目的
●为保护操作系统的数据表格不被可能出错的用户程序破坏。●当进程运行系统内核程序时,系统保存了用户程序的运行现场,包括处理机状态、现场信息,数据栈。●核心工作状态时处理机执行任何特权指令或访问系统的虚空间都不会报错,待到返回用户态程序时,原保护的程序状态字被恢复,处理机模式又转到用户态下,这以后如果执行了特权指令,处理机即会报错。2023/1/31823.5进程切换与模式切换2、模式切换1)处理机模式切换的定义
●当中断发生时,暂时中断正在执行的用户进程,把进程从
用户状态切换到内核状态,去执行操作系统例行程序以获得服务,这就是一次模式切换,●内核在被中断了的进程的上下文中对这个中断事件作处理,即使该中断可能不是此进程引起的。●被中断进程可以是正在用户态下执行的,也可以是正在核心态下执行的,内核都要保留足够信息以便在后来能恢复被中断了的进程执行。2023/1/31833.5进程切换与模式切换2、模式切换2)处理机模式切换的过程
●保存被中断进程的处理器现场信息。●根据中断号置程序计数器(PC),同时,将原来的PC
值保存到处理机状态字中。●把用户状态切换到内核状态,以便执行中断处理程序。●根据中断级别,设置中断屏蔽。一般而言,如果发生某一级中断,则要屏蔽该级以下级别的中断。2023/1/31843.5进程切换与模式切换2、模式切换3)进程切换与模式切换的比较
●进程切换是指处理机从一个进程的运行转到另一个进程上运行。●模式切换时,处理机还在同一个进程上运行,而进程切换指处理机转入另一个进程运行。2023/1/31853.5进程切换与模式切换2、模式切换3)进程切换与模式切换的比较
进程切换会涉及到如下内容:(1)保存处理机的上下文,包括程序计数器、程序状态字(2)修改当前运行进程的PCB的内容,改变其状态(从运行态转到其它态),并将PCB链到相应的新状态队列(3)选择另一个被调度的进程执行(4)修改被调度进程的PCB,包括把其状态变为运行态(5)将当前进程的存储结构改变为新选进程的存储结构(6)恢复被选进程上次切换出处理机时的现场2023/1/31863.5进程切换与模式切换2、模式切换3)进程切换与模式切换的比较
进程调度(进程切换)运行状态等待状态就绪状态运行状态等待状态就绪状态模式切换核心态用户态2023/1/3187第三章进程管理与调度
3.1中央处理器
3.8低级调度3.2中断
3.9线程及其概念3.3进程及其实现
3.10Linux进程管理3.4进程的控制3.5进程切换与模式切换3.6处理器调度3.7作业的管理与调度2023/1/3188第三章进程管理与调度
3.1中央处理器 3.8低级调度3.2中断
3.9线程及其概念3.3进程及其实现
3.10Linux进程管理3.4进程的控制3.5进程切换与模式切换3.6处理器调度3.7作业的管理与调度2023/1/31893.6处理机调度1、调度策略1)要解决的问题
WHAT:按什么原则分配CPU?
—进程调度算法WHEN:何时分配CPU?
—进程调度的时机HOW:如何分配CPU?
—CPU调度过程(进程的上下文切换)2023/1/31903.6处理机调度1、调度策略2)调度的目标
①合理性:是在多道作业(进程)并发时,各道作业(进程)根据调度策略来分配处理机的使用,调度策略既要保证系统实现特殊功能要求(如实时性),同时也要使各道作业合理地分配到处理机份额。有效性:通过系统的调度,使处理机和I/O设备得到合理有效的分配,从而使系统资源得到充分的利用。2023/1/31913.6处理机调度1、调度策略3)考虑的因素①系统设计目标批处理系统以充分发挥计算机效率为目的;实时系统要保证不要丢失实时信息并使之得到及时处理;而分时系统则应该优先保证用户的请求能够及时给予响应。②资源利用率考虑在实现设计目标的前提下,尽可能地发挥各种资源的效能。③均衡系统与用户的要求一方面,不能因为用户的要求而完全不顾及系统的性能,另一方面,也不应该使一个作业的运行被无限制地推迟。2023/1/31923.6处理机调度2、调度模式1)高级调度也称为作业调度或宏观调度例如,在分时操作系统中,高级调度任务:(1)是否接受一个终端用户的连接;(2)一个程序能否被计算机系统接纳并构成进程;(3)一个新建态进程是否能够加入就绪进程队列。2023/1/31933.6处理机调度高级调度中级调度低级调度
中级调度
中级调度2023/1/31943.6处理机调度2、调度模式2)中级调度也称为平衡负载调度或中程调度。(1)决定主存储器中所能容纳的进程数,这些进程将允许参与竞争处理器资源。(2)中级调度根据存储资源量和进程的当前状态来决定辅存和主存中进程的对换。(3)使用方法是通过把一些进程换出主存,使之进入挂起状态,起到平滑和调整系统负荷作用。2023/1/31953.6处理机调度高级调度中级调度低级调度
中级调度
中级调度2023/1/31963.6处理机调度2、调度模式3)低级调度也称为进程调度或短程调度。(1)按照某种原则决定就绪队列中的哪个进程或线程能获得处理器,并将处理器出让给它工作。(2)短程调度是操作系统最为核心的部分,短程调度策略的优劣直接影响到整个系统的性能。(3)低级调度的时间尺度通常是毫秒级的。由于其算法的频繁使用,要求在实现时做到高效。2023/1/31973.6处理机调度高级调度中级调度低级调度
中级调度
中级调度2023/1/31983.6处理机调度2、调度模式4)处理机的调度模型2023/1/3199第三章进程管理与调度
3.1中央处理器
3.8低级调度3.2中断
3.9线程及其概念3.3进程及其实现
3.10Linux进程管理3.4进程的控制3.5进程切换与模式切换3.6处理器调度3.7作业的管理与调度2023/1/31100第三章进程管理与调度
3.1中央处理器 3.8低级调度3.2中断
3.9线程及其概念3.3进程及其实现
3.10Linux进程管理3.4进程的控制3.5进程切换与模式切换3.6处理器调度3.7作业的管理与调度2023/1/311013.7作业的管理与调度1、作业及其调度1)作业(1)作业用户在一次计算过程中,或者一次事务处理过程中,要求计算机系统所做工作的总称(2)作业流若干个作业进入系统并存放于主存储中形成作业流(3)作业步一个作业可划分成若干部分,每部分称一个作业步2023/1/311023.7作业的管理与调度1、作业及其调度2)作业的状态及其转换进入状态退出状态后备状态运行状态作业控制进程…输入设备数据源程序输出设备作业说明书输入井运行输出井输入程序输出程序作业调度进程调度等待就绪2023/1/311033.7作业的管理与调度1、作业及其调度3)作业的调度主要功能:审查系统能否满足用户作业的资源要求只要通过调用相应的资源管理程序的有关部分审核其表中是否能满足作业说明书中的要求即可按照一定的算法从输入井中的后备作业中选取作业
调度的关键在选择恰当的算法2023/1/311043.7作业的管理与调度2、作业与进程①作业是用户向计算机提交任务的任务实体,而进程则是完成用户任务的执行实体,是向系统申请分配资源的基本单位。②一个作业可由多个进程组成。且必须至少由一个进程组成,但反过来不成立。③作业的概念主要用在批处理系统中,像Linux这样的分时系统中,则没有作业概念,而进程的概念则用在几乎所有的多道程序系统中。2023/1/311053.7作业的管理与调度3、调度原则1)理想目标(1)单位时间内运行尽可能多的作业(2)使处理器尽可能保持“忙碌”(3)响应时间和周转时间能够尽可能短(4)使各种I/O设备得以充分利用(5)对所有的作业都是公平合理的2023/1/311063.7作业的管理与调度3、调度原则2)设计原则
要设计一个理想的调度算法是一件十分困难的事在实际系统中,调度算法往往折衷考虑。调度算法应与系统设计目标保持一致注意系统资源均衡使用保证提交的作业在截止时间内完成设法缩短作业平均周转时间大多数操作系统都采用比较简单的调度算法。2023/1/311073.7作业的管理与调度3、调度原则3)调度算法性能的衡量(1)作业平均周转时间假定某一作业进入“输入井”的时间为Si,它被选中执行,得到计算结果的时间为Ei。它的周转时间为Ti=Ei–Si则作业平均周转时间为:
n为被测定作业流中的作业数2023/1/311083.7作业的管理与调度3、调度原则3)调度算法性能的衡量(2)平均带权周转时间
ri为某作业i的实际执行时间
T:衡量不同调度算法对同一个作业流的性能
W:同一调度算法对不同作业流的性能衡量2023/1/311093.7作业的管理与调度4、作业调度算法1)系统进行作业调度算法的决策因素作业到达时间预先为作业确定的优先级系统可测定的其他因素:作业所需的CPU时间C存储要求M其他的资源要求2023/1/311103.7作业的管理与调度4、作业调度算法2)常见的作业调度算法(1)先来先服务算法(FCFS:FirstComeFirstServe)最简单的调度算法。按照作业提交的先后顺序分派CPU。当前作业或进程占用CPU后,除非其任务完成或阻塞,才让出CPU(非抢占式)。特点:●算法开销小
●有利于长作业,不利于短作业
●有利于CPU繁忙的作业,不利于I/O繁忙的作业2023/1/311113.7作业的管理与调度4、作业调度算法2)常见的作业调度算法(2)最短作业优先算法(SJF:ShortestJobFirst)对执行时间短的作业优先分派处理机。特点:●
可以得到最大的系统吞吐率●比FCFS算法改善了平均周转时间和带权周转时间●有可能使长作业永远没有机会执行
2023/1/311123.7作业的管理与调度4、作业调度算法2)常见的作业调度算法(3)最短剩余时间优先算法(SRTF)
SRTF把SJF(短作业优先)算法改为抢占式。
一个新作业进入就绪状态,如果新作业需要的CPU时间比当前正在执行的作业剩余下来还需的CPU时间短,SRTF强行赶走当前正在执行作业。称最短剩余时间优先算法2023/1/311133.7作业的管理与调度4、作业调度算法2)常见的作业调度算法(4)最高响应比优先算法(HRN)
(HRN:HighestResponseRatioNext)响应比R=作业周转时间/作业处理时间
=(作业处理时间+作业等待时间)/作业处理时间
=1+(作业等待时间/作业处理时间)2023/1/311143.7作业的管理与调度4、作业调度算法2)常见的作业调度算法(5)基于优先数的调度算法(HPF)
●
由用户规定优先数(外部优先数)用户提交作业时,根据急迫程度规定适当的优先数作业调度程序根据JCB优先数决定进入内存的次序●由系统计算优先数(内部优先数)例:可按如下公式计算作业的优先数:优先数=用户规定优先数–作业处理时间
+作业等待时间–输出量2023/1/311153.7作业的管理与调度4、作业调度算法2)常见的作业调度算法(6)均衡调度算法(分类排队法)
基本思想:●根据系统运行情况和作业属性将作业分类●轮流从不同的作业类中挑选作业目标:●力求均衡地利用各种系统资源,发挥资源使用效率●力求使用户满意2023/1/311163.7作业的管理与调度4、作业调度算法2)常见的作业调度算法(6)均衡调度算法(分类排队法)
例1:将待处理作业分成如下队列:队列1:计算量大的作业队列2:I/O量大的作业队列3:计算量与I/O量均衡的作业调度时,在三个队列中各取一些作业。在内存中的作业有的使用处理器有的使用外部设备,使得系统的各种资源能得到充分利用。2023/1/311173.7作业的管理与调度4、作业调度算法2)常见的作业调度算法(6)均衡调度算法(分类排队法)
例2:将待处理作业分成如下三个队列:队列1:长作业队列2:中等长度作业队列3:短作业调度时 取队列1一作业,队列2一作业,队列3一作业长作业用户和短作业用户均比较满意2023/1/311183.7作业的管理与调度5、单道程序环境下的作业调度算法
假设在单道批处理环境下有四个作业,已知它们进入系统的时间、估计运行时间。应用先来先服务、最短作业优先和最高响应比优先作业调度算法,分别计算出作业的平均周转时间和带权的平均周转时间。2023/1/311193.7作业的管理与调度5、单道程序环境下的作业调度算法先来先服务调度算法计算结果2023/1/311203.7作业的管理与调度5、单道程序环境下的作业调度算法最短作业优先算法计算结果2023/1/311213.7作业的管理与调度5、单道程序环境下的作业调度算法最高响应比优先算法计算结果130502.615.13.775410102.52023/1/31122作业提交时间运行时间开始时间完成时间周转时间带权周转时间12310∶0010∶1010∶252∶001∶000∶25
平均作业周转时间=平均作业带权周转时间W=例1:单道批处理系统中,下列三个作业采用先来先服务调度算法和最高响应比优先算法进行调度,哪一种算法性能较好?请完成下表:2023/1/311233.7作业的管理与调度6、多道程序环境下的作业调度算法
在两道环境下有四个作业已知它们进入系统的时间、估计运行时间系统采用短作业优先作业调度算法,作业被调度运行后不再退出当一新作业投入运行后,可按照作业运行时间长短调整作业执行的次序请给出这四个作业的执行时间序列,并计算出平均周转时间及带权平均周转时间2023/1/311243.7作业的管理与调度6、多道程序环境下的作业调度算法最短作业优先作业算法计算结果2023/1/311253.7作业的管理与调度6、多道程序环境下的作业调度算法算法分析过程——10:00,JOB1进入,只有一作业,JOB1被调入执行10:05,JOB2到达,最多允许两作业同时进入所以JOB2也被调入●内存中有两作业,哪一个执行?题目规定当一新作业运行后,可按作业运行时间长短调整执行次序●即可抢占式调度策略 优先数是根据作业估计运行时间大小来决定的 由于JOB2运行时间(20分)比JOB1少 (到10:05,JOB1还需25分钟) 所以JOB2运行,而JOB1等待2023/1/311263.7作业的管理与调度6、多道程序环境下的作业调度算法算法分析过程——10:10,JOB3到达输入井,内存已有两作业
JOB3不能马上进入内存;10:20,JOB4也不能进入内存10:25,JOB2运行结束,退出,内存中剩下JOB1
输入井中有两作业JOB3和JOB4,如何调度?作业调度算法:最短作业优先因此JOB3进入内存,比较JOB1和JOB3运行时间,JOB3运行时间短,故JOB3运行,同样,JOB3退出后,下一个是JOB4JOB4结束后,JOB1才能继续运行2023/1/311273.7作业的管理与调度6、多道程序环境下的作业调度算法算法分析过程四个作业的执行时间序列为:JOB1:10:00—10:05,10:40—11:05JOB2:10:05—10:25JOB3:10:25—10:30JOB4:10:30—10:402023/1/31128例3.有一个四道作业的操作系统,若在一段时间内先后到达6个作业,它们的提交和估计运行时间由下表给出:作业提交时间估计运行时间(分钟)
18:006028:203538:252048:302558:35568:4010
系统采用SJF调度算法,作业被调度进入系统后中途不会退出,但作业运行时可被更短作业抢占。(1)分别给出6个作业的执行时间序列、即开始执行时间、作业完成时间、作业周转时间。(2)计算平均作业周转时间。2023/1/31129第三章进程管理与调度
3.1中央处理器
3.8低级调度3.2中断
3.9线程及其概念3.3进程及其实现
3.10Linux进程管理3.4进程的控制3.5进程切换与模式切换3.6处理器调度3.7作业的管理与调度2023/1/31130第三章进程管理与调度
3.1中央处理器 3.8低级调度3.2中断
3.9线程及其概念3.3进程及其实现
3.10Linux进程管理3.4进程的控制3.5进程切换与模式切换3.6处理器调度3.7作业的管理与调度2023/1/311313.8低级调度1、低级调度的概念●低级调度负责动态地把处理器分配给进程或内核级线程。●操作系统中实现低级调度的程序称为进程(线程)调度程序,或分派程序(Dispatcher)。●
进程调度算法多数适用于线程调度。2023/1/311323.8低级调度2、低级调度的时机●当一个进程从运行态切换成等待态时;●当一个进程从运行态切换成就绪态时;●当一个进程从等待态切换成就绪态时;●当一个进程中止时。2023/1/311333.8低级调度3、低级调度的功能(1)记录系统中所有进程的执行情况●作为进程调度的准备,进程管理模块必须将系统中各进程的执行情况和状态特征记录在各进程的PCB表中。●根据各进程的状态特征和资源需求、进程管理模块还将各进程的PCB排成相应的队列并进行动态队列转接。●进程调度模块通过PCB变化来掌握系统中存在的所有进程的执行情况和状态特征,并在适当的时机从就绪队列中选择出一个进程占据处理机。2023/1/311343.8低级调度3、低级调度的功能(2)选择占有处理机的进程●进程调度的主要功能是按照一定的策略选择一个处于就绪状态的进程,使其获得处理机执行。●根据不同的系统设计目的,有各种各样的选择策略,例如系统开销较少的静态优先数调度法,适合于分时系统的时间片轮转法等。
2023/1/311353.8低级调度3、低级调度的功能(3)进行进程上下文切换●系统要首先检查是否允许做上下文切换(在有些情况下,上下文切换是不允许的,例如系统正在执行某个不允许中断的原语时)。●然后,系统要保留有关被切换进程的足够信息,以便以后切换回该进程时,顺利恢复该进程的执行。●在系统保留了CPU现场之后,调度程序选择一个新的
处于就绪状态的进程、并装配该进程的上下文,使
CPU的控制权掌握在被选中进程手中。2023/1/311363.8低级调度3、低级调度的功能(4)低级调度的功能小结●记住进程的状态。●决定某个进程什么时候获得处理器。●决定某个进程占用处理器多长时间。●把处理器分配给进程。●收回处理器。2023/1/311373.8低级调度4、低级调度的方式可剥夺式(可抢占式Preemptive):
当有比正在运行的进程优先级更高的进程就绪时,系统可强行剥夺正在运行进程的CPU,提供给具有更高优先级的进程使用,或是当运行进程/线程时间片用完后被剥夺。win98/2000/xp不可剥夺式(不可抢占式Non-preemptive):某一进程被调度运行后,除非由于它自身的原因不能运行,否则一直运行下去,win3.1折衷方式2023/1/311383.8低级调度5、低级调度算法1)先来先服务算法按照进程进入就绪队列的先后次序分配处理器。先进入就绪队列的进程优先被挑选,运行进程一旦占有处理器将一直运行直到结束或阻塞。算法容易实现,效率不高,不利于I/O频繁的进程2023/1/311393.8低级调度5、低级调度算法2)时间片轮转调度算法调度程序每次把CPU分配给就绪队列首进程使用一个时间片,例如100ms,就绪队列中的每个进程轮流地运行一个时间片。当这个时间片结束时,强迫一个进程让出处理器,让它排列到就绪队列的尾部,等候下一轮调度。轮转策略可防止那些很少使用外围设备的进程过长的占用处理器而使得要使用外围设备的那些进程没有机会去启动外围设备。2023/1/311403.8低级调度5、低级调度算法2)时间片轮转调度算法
关于时间片的取选轮转法调度是一种剥夺式调度,系统耗费在进程切换上的开销比较大,这个开销与时间片的大小很有关系。时间片大小的确定要从进程个数、切换开销、系统效率和响应时间等方面考虑。2023/1/311413.8低级调度5、低级调度算法2)时间片轮转调度算法
关于时间片的取选时间片取值太小,多数进程不能在一个时间片内运行完毕,切换就会频繁,开销显著增大,从系统效率来看,时间片取大一点好。时间片取值较大,随就绪队列里进程数目增加,轮转一次的总时间增大,对进程的响应速度放慢了。为满足响应时间要求,要么限制就绪队列中进程数量,要么采用动态时间片法,根据负载状况,及时调整时间片的大小。2023/1/311423.8低级调度5、低级调度算法3)优先权调度算法(1)静态优先数法使用外围设备频繁者优先数大,这样有利于提高效率;重要算题程序的进程优先数大,这样有利于用户;进入计算机时间长的进程优先数大,这样有利于缩短作业完成的时间;交互式用户的进程优先数大,这样有利于终端用户的响应时间等等。2023/1/311433.8低级调度5、低级调度算法3)优先权调度算法(2)动态优先数法根据进程占有CPU时间多少来决定,当进程占有CPU时间愈长,那么,在它被阻塞之后再次获得调度的优先级就越低,反之,进程获得调度的可能性越大;根据进程等待CPU时间多少来决定,当进程在就绪队列中等待时间愈长,那么,在它被阻塞之后再次获得调度的优先级就越高,反之,进程获得调度的可能性越小。2023/1/311443.8低级调度5、低级调度算法4)多级反馈队列调度又称反馈循环队列或多队列策略。主要思想是将就绪进程分为两级或多级,系统相应建立两个或多个就绪进程队列,较高优先级的队列一般分配给较短的时间片。处理器调度先从高级就绪进程队列中选取可占有处理器的进程,只有在选不到时,才从较低级的就绪进程队列中选取。2023/1/311453.8低级调度5、低级调度算法4)多级反馈队列调度处理机处理机接纳就绪队列1就绪队列2就绪
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 彩钢板产品知识培训课件
- 活动效果跟踪记录表格(事件类)
- 建筑工地施工安全管理与预案
- 电子废物回收与处理协议
- 物业管理服务具体协议
- 数据管理中心办公场所表格(特定公司情境)
- 麻疹的防治知识培训课件
- 酒店防汛知识培训课件
- 小学低年级绘本故事解读
- 新能源充电站运营与管理手册
- 企业内部系统使用权限规范
- 2024年亳州职业技术学院单招职业技能测试题库
- 2025年旅行与旅游的未来:拥抱可持续与包容性增长报告(英文版)-世界经济论坛
- 学校跟移动公司合作协议
- 茶馆项目创业计划书
- 化工生产中的智能优化
- 《西方经济学》(上册)课程教案
- 移动政企部年终总结
- 施工合同协议书样本
- 医学综合题库(含答案)
- 工会一函两书模板
评论
0/150
提交评论