收藏 分享(赏)

《操作系统》课件-2.ppt

上传人:jw66tk88 文档编号:8117837 上传时间:2019-06-09 格式:PPT 页数:20 大小:927.50KB
下载 相关 举报
《操作系统》课件-2.ppt_第1页
第1页 / 共20页
《操作系统》课件-2.ppt_第2页
第2页 / 共20页
《操作系统》课件-2.ppt_第3页
第3页 / 共20页
《操作系统》课件-2.ppt_第4页
第4页 / 共20页
《操作系统》课件-2.ppt_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、第2章 处理机管理,1.,2.,3.,本章讲述内容:,4.,进程与线程概念的引入;,进程的组成与管理;,处理机的调度算法;,处理机的二级调度与作业管理。,2.1 进程,2.1.1,多道程序设计,程序A,程序B,程序C,0,4,6,9,14,18,20,23,26,30,4,2,3,5,4,2,3,3,4,程序A,程序B,程序C,0,4,6,9,13,18,22,12,15,17,(a) 单道程序设计环境,(b) 多道程序设计环境,时间,时间,打印机输出,CPU执行,图例,:,.,单道程序设计环境特点,1.,资源的独占性,.,.,执行的顺序性,结果的再现性,多道程序设计环境特点,2.,.,执行的

2、并发性,.,.,相互的制约性,状态的多变性,系统进程直接管理软、硬件资源的活动;用户进程不得插手资源管理,在需要使用某资源时,须向系统提出申请,由系统统一调度与分配。,.,.,用户进程:可以并发执行的用户程序段,它们是操作系统的服务对象,是系统资源的实际享用者。,系统进程:操作系统中用于管理系统资源的那些并发程序,它们向用户提供系统服务,分配系统的资源。,系统进程间的相互关系由操作系统负责协调;用户进程间的相互关系由用户自己(在程序中)安排,操作系统向用户提供一定的协调手段(以命令的形式)。,2.1.2,进程的定义,1.,应该从3个方面来描述进程,.,进程是程序的一次运行活动;,进程的运行活动

3、是建立在某个数据集合之上;,进程要在获得资源的基础上从事自己的运行活动。,2.,3.,进程定义,所谓“进程”,是指一个程序在给定数据集合上的一次执行过程,是系统进行资源分配和运行调度的独立单位。,进程的分类,4.,系统进程与用户进程的区别,.,.,.,系统进程使用资源的级别,高于用户进程。,.,.,进程间会相互制约。进程是系统中资源分配和运行调度的单位,因此在对资源共享和竞争中,必然会相互制约,影响着各自向前推进的速度。,进程之间具有并发性。系统中多个进程对应的多个程序同时在系统中运行,轮流占用CPU和各种资源。,每个进程都有自己的生命期。一个进程创建后,系统就感知到它的存在;撤消后,系统就无

4、法再感知到它。于是,从创建到撤消,这个时间段就是一个进程的“生命期”。,不同进程可以执行同一个程序。从进程定义知,区分进程的条件一是所执行的程序,二是数据集合。因此,即使多个进程执行同一个程序,只要它们运行在不同的数据集合上,那么它们就是不同的进程。,“进程”是一个动态的概念。进程强调的是程序的一次“执行”过程,因此它是一个动态的概念;程序是一组有序指令的集合,在多道程序设计环境下,它不涉及“执行”,因此是一个静态的概念。,2.1.3,进程的特征,1.,2.,进程与程序的关系,进程与程序的区别,进程是程序的一次执行过程,程序是进程赖以存在的基础。这就是说,进程与程序之间有一种必然的联系。但进程

5、又不等同于程序,它们是两个完全不同的概念。,.,.,.,.,.,在输入/输出操作完成后,会使某个进程的状态由阻塞变为就绪。这属于由于外界环境的变化而引起的状态变化。,一个处于运行状态的进程,比如会由于提出输入/输出请求而使自己的状态变成为阻塞。这属于进程自身推进过程中引起的状态变化。,就绪状态:已具备运行所需的一切条件,只是由于别的进程占用处理机而暂时无法运行。,运行状态:获得CPU的进程处于此状态,其对应的程序正在处理机上运行着。,阻塞状态:进程为了等待某种外部事件的发生(如等待输入/输出操作的完成,等待另一个进程发来消息),暂时无法运行。阻塞状态也称等待状态或挂起状态。,2.1.4,进程的

6、基本状态,1.,进程的三种基本状态,2.,进程状态的变迁,运行状态,阻塞状态,就绪状态,调度 该进程,时间片 用完,某事件发生,等待某 事件发生,.,.,.,一个进程的状态,可随自身的推进和外界环境的变化而变化,从一种状态变迁到另一种状态。进程状态变迁图中,箭头表示状态变迁的方向,文字是引起这种状态变迁的原因。,.,.,.,现场信息:进程暂时让出处理机时,须把当前各种现场信息保存在PCB的固定单元里。这样,当进程再次获得处理机时,就可以把这些信息置入处理机的相应寄存器中,恢复到被中断时的原有状态,保证进程正常执行。,标识信息:代表了一个进程的身份,是系统内部区分不同进程的依据 。,进程控制块,

7、2.2 进程控制块,2.2.1,进程的三个组成部分,.,.,.,程序,数据集合,PCB,程序,数据集合,2.2.2,进程控制块的内容,.,.,.,.,进程名,进程状态,程序存放位置,数据存放位置,通用寄存器内容,控制寄存器内容,断点地址,进程优先数,队列指针,标识信息,说明信息,现场信息,管理信息,说明信息:随时反映进程的情况 。,管理信息:系统通过这些信息管理、调度进程,使它们有条不紊地工作。,为管理和控制进程,系统在创建一个进程时,都为其开辟一个专用的存储区,随时记录它在系统中的动态特性;当一个进程被撤消时,系统收回分配给它的存储区。把这一存储区称作为该进程的“进程控制块PCB” 。,就绪

8、队列:系统中所有处于就绪状态的进程的PCB排成一队,称其为“就绪队列”。一般地,就绪队列里会有多个进程的PCB排在里面,它们形成处理机分配的侯选对象。,阻塞队列:所有处于阻塞状态的进程的PCB,应该根据阻塞的原因进行排队,每一个都称为一个“阻塞队列”。,2.2.3,进程控制块队列,PCB1,PCB2,PCB5,PCB10,PCB3,PCB7,PCB6,PCB8,PCB9,PCB4,-1,-1,-1,运行队列头指针,就绪队列头指针,阻塞队列1头指针,阻塞队列2头指针,运行队列:,就绪队列:,阻塞队列1:,阻塞队列2:,.,运行队列:处于运行状态的PCB构成运行队列。在单CPU系统,任何时刻系统里

9、都只有一个进程处于运行状态,因此运行队列里只能有一个PCB 。,.,.,A,2.3.1,进程调度算法,2.3 进程的调度与管理,1.,先来先服务调度算法,A,B,C,D,调度,就绪队列,到达,阻塞队列,完成,I/O完成,阻 塞,CPU,I/O,基本思想:调度时以到达就绪队列的先后次序选择占用处理机的进程。进程一旦占有处理机,就一直用下去,直至结束或因等待某事件而让出处理机。,2.,时间片轮转调度算法,基本思想:调度时为进程分配一个称为“时间片”的时间段,在使用完一个时间片后,即使进程没运行完,也要释放处理机,让给另一个进程使用,自己则排到就绪队列末尾,等待下一次调度。,A,B,C,D,调度,就

10、绪队列,到达,阻塞队列,完成,I/O完成,阻 塞,CPU,I/O,时间片到,3.,优先数调度算法,基本思想:为系统中的每个进程规定一个优先数,就绪队列中具有最高优先数的进程有优先获得处理机的权利;如果几个进程的优先数相同,则对它们实行先来先服务的调度。,4.,多级队列调度算法,调度,就绪队列,到达,完成,CPU,阻塞、就绪,时间片到,调度,完成,CPU,阻塞、就绪,调度,完成,CPU,阻塞、就绪,时间片到,时间片到,级1 (先来先服务),级2 (先来先服务),级n (先来先服务),基本思想:系统中维持多个就绪队列,每个就绪队列具有不同的调度级别,可以获得不同长度的时间片。级 1就绪队列里进程的

11、调度级别最高,可获得的时间片最短;级 n就绪队列里进程的调度级别最低,但可以获得的时间片最长。创建新进程时,它的PCB将先进入级 1就绪队列的末尾。,功能:在等待的事件发生后,由唤醒进程原语把等待进程从相应的阻塞队列里解放出来,进入就绪队列,重新参与调度。,撤消进程原语,功能:为新建进程申请进程控制块PCB,将创建者提供的信息填入PCB,将新建进程设置为就绪状态,按照调度算法把PCB排入就绪队列中。,2.3.2 进程管理的基本原语,1.,原语定义,操作系统提供若干基本操作,以便能创建、撤消、阻塞和唤醒进程。为了保证执行的正确,要求它们以一个整体出现,不可分割。即一旦启动了对应的程序,就要保证做

12、完,中间不能插入其它程序的执行序列。具有这种特性的程序被称为“原语”。为保证原语操作的不可分割性,通常总是利用屏蔽中断的方法。,2.,进程管理的基本原语,.,.,.,.,创建进程原语,阻塞进程原语,唤醒进程原语,功能:收回该进程占用的资源,将该进程的PCB从所在队列里摘下,把PCB所占用的存储区归还给系统。,功能:将被阻塞进程的现场信息保存到PCB中,状态改为阻塞; 将其PCB排到相应的阻塞队列中。若被阻塞的是自己,调用了该原语后,就重新分配处理机。,2.4 线程,2.4.1 线程的概念,引入线程的原因,1.,进程既是资源分配的单位 ,又是处理机调度的单位 。为提高进程并发执行程度,减少进程切

13、换时的开销,让进程只具有“资源拥有者”这个特征,而“ 调度和运行”这个特征就赋予新的实体线程。,线程的定义,2.,所谓“线程”,指进程中实施处理机调度和分配的单位。有时把进程称为“重载进程(HWP)”,把线程称为“轻载进程( LWP)”。,单进程,单线程,单进程,多线程,多进程,每个进程一个线程,多进程,每个进程多个线程,线程的状态,3.,创建,.,.,阻塞,.,唤醒,.,引入线程后,线程是进程中的实体,实施CPU分配时,把CPU分配给进程中可并发执行的线程。如果把进程理解为是操作系统在逻辑上需要完成的一个任务,那么线程则是完成该任务时可以并发执行的多个子任务。,.,.,如图所示,给出了进程和

14、线程之间的各种关系。,通信关系:不同进程间使用系统提供的进程通信机制;同一进程各线程直接通过访问共享的进程地址空间来实现。,描述处理器工作情况的一组寄存器(如程序计数器、状态寄存器、通用寄存器等)的内容;,2.4.2 进程与线程的关系,进程与线程的关系,1.,线程执行时,要有自己的堆栈(放程序计数器、通用寄存器、局部变量和返回地址等)、优先级、标识、运行状态等,因此系统要为每个线程设置一个线程控制块(TCB),以实现系统对线程的管理和控制。,.,.,线程TCB的四个组成部分,(1),一个唯一的线程标识;,(2),(3),两个堆栈指针,一个指向用户栈,一个指向系统栈;,(4),一个私用的现场保护

15、区。,PCB,数据,程序,用户栈,系统栈,寄存器,单线程进程模型,进程,PCB,数据,程序,用户栈,系统栈,寄存器,TCB,用户栈,系统栈,寄存器,TCB,用户栈,系统栈,寄存器,TCB,线程1,线程2,线程3,进程,多线程进程模型,(a),(b),进程和线程间的几点不同,.,(1),地址空间:不同进程的地址空 间相互独立,进程各线程共享一个地址空间。,(2),(3),调度切换:不同进程间切换要花很大开销,同一进程的线程切换开销很少。,资源:引入线程后,进程内的所有线程共享该进程拥有的全部资源,如代码段、数据、打开的文件以及输入/输出设备等;线程只有很少一些运行时必需的资源,如程序计数器、一组

16、寄存器和堆栈等。,调度:引入线程后,进程是资源的拥有者,线程是处理机调度和分配的单位。因此,在同一进程内线程的切换不会引起进程的切换;而由一个进程中的线程切换到另一个进程中的线程时,就要引起进程的切换。,处理机管理的新含义,2.,.,引入线程后,存在着两种并发执行:一是进程间的并发执行,一是进程里的线程的并发执行。因此系统对进程和线程的管理,就有了新的含义。,.,新的含义,(1),(2),并发:引入线程后,不仅进程之间可以并发执行,而且一个进程内的多个线程之间也可以并发执行,因此系统具有了更好的并发性,进而使系统的资源利用率和吞吐率大大提高。,(3),(4),开销:创建和撤消进程时,系统要做很

17、多有关资源的分配和回收工作;在进程间进行切换时,系统要为其保存现场信息,会将旧进程的内容调出至辅存,将新进程的内容调入内存。由于同一进程内的线程有相同的地址空间,它们间的切换只需保存和设置少量的寄存器内容,不涉及存储器管理方面的操作。,2.5 作业调度,2.5.1 用户与操作系统的两种接口,1.,两种接口,.,.,程序接口,操作系统提供各种系统调用命令,以让用户在编程时获得所需的功能服务。这是系统在程序一级给予用户的支持。,命令接口,操作系统提供各种操作命令,以便用户通过键盘控制程序的运行。这是系统在作业控制一级给予用户的支持。,2.,若干概念,.,.,特权指令与非特权指令,把CPU的指令分为

18、两类:一类是操作系统和用户都能使用的指令,称为“非特权指令”;一类是只能由操作系统使用的指令,称为“特权指令”。,管态与目态,这是CPU的两种工作状态:当其处于管态时,可执行包括特权指令在内的一切机器指令;当其处于目态时,只能执行非特权指令,禁止使用特权指令。,一般的过程调用,调用者与被调用者都运行在相同的CPU状态;但发生系统调用时,发出调用命令的调用者运行在目态,而被调用的对象则运行在管态。,.,系统调用命令,操作系统里预先编制了不同功能的子程序,用户可在自己的程序里调用它们,以求操作系统提供功能服务。这些子程序被称为“系统功能调用”程序,简称“系统调用”。,访管指令是一条非特权指令,功能

19、是执行它就会产生一个软中断,促使中央处理机由目态转为管态,进入操作系统 。用户程序只有通过 访管指令,才能由目态转为管态、以达到调用系统调用命令的目的。,.,访管指令,3.,系统调用与一般过程调用的区别,.,.,.,一般的过程调用,直接通过转移指令转向被调用的程序;但系统调用时,只能通过访管指令提供的统一的入口,由目态进入管态,然后转向相应的系统调用命令。,一般的过程调用,执行完后径直返回断点继续执行;但系统调用可能会招致进程状态的变化,从而引起系统重新分配处理机,因此系统调用处理结束后,不一定是返回调用者断点处继续执行。,4.,操作命令,脱机命令接口和联机命令接口。,C编译程序以该源程序做为

20、 输入进行编译,产生出以“.OBJ”为扩展名的目标程序;,用户经键盘在编辑程序支持下建立以“.C”为扩展名的源程序;,作业步:为了获得结果,一个作业需要经过若干个加工步骤。称每一个加工步骤为一个作业步。,作业:指用户要求计算机系统做的一个计算问题或一次事务处理的完整过程。,2.5.2 作业与作业管理,.,.,一个作业的各作业步之间是有联系的。通常,上一个作业步的输出是下一个作业步的输入。下一个作业步能否顺利执行,取决于上一个作业步的结果是否正确。,.,.,典型的C语言作业处理过程,(1),(2),(3),连接装配程序以目标程序、系统库函数、包含文件等为输入,产生一个以“.EXE”为扩展名的可执

21、行文件。这个文件才是真正可以投入运行的程序。,作业控制块:把一个作业提交给系统时,系统为它开辟一个专用的存储区,随时记录作业的信息。该存储区称为作业的作业控制块JCB。,.,.,后备作业与后备作业队列:被系统接纳的作业,在未投入运行前,称后备作业。它们存放在辅存,由JCB连接在一起,形成后备作业队列。后备作业队列里的作业,不参与对处理机的竞争,但系统从它们里面挑选对象去参与对处理机的竞争。,.,作业调度:按某种规则从后备作业队列里挑选作业进入内存,参与对处理机的竞争,称为作业调度,它由作业调度程序完成。所 采用的规则,称作业调度算法。,.,.,作业的生命期:从作业提交给系统,到作业运行完毕被撤

22、消,是一个作业的生命期。在这期间,作业随着自己的推进, 及环境变化,状态也在不断变化。,作业的四个基本状态,用户名,外设类型与需求数量,作业提交时间,作业运行时间(估计),作业控制块(JCB)指针,其他,作业类别,内存需求量,作业名,作业现行状态,作业优先数,(1),提交状态,(2),后备状态,(3),运行状态,(4),完成状态,作业控制块JCB内容,由于是按照1、2、3的顺序同时提交给系统,可假定它们 三个到达系统的时间都为0。作业1第1个被作业调度程序选中,投入运行。花24个CPU时间运行完毕。因此其周转时间是:T1=24-0=24;作业2在等待24个CPU时间后被调度并运行。它花费3个C

23、PU时间运行完毕,因此周转时间是:T2=27-0=27;不难算出作业3的周转时间是:T3=30-0=30。于是,这三个作业的平均周转时间为:T= (T1+T2+T3 ) / 3 = (24+27+30) / 3 = 81 / 3 = 27,有3个作业,所需CPU时间如右表所示。按1、2、3的顺序,同时提交给系统,采用先来先服务的作业调度算法。求每个作业的周转时间及它们的平均周转时间。,2.5.3 作业的调度算法,在批处理系统中,使用作业的“周转时间”来描述系统的吞吐能力。假定作业 i 提交给系统的时间为S i,其完成的时间为W i。那么该作业的周转时间Ti是:Ti = W i S i 对于一批

24、n个作业而言,它们的“平均周转时间” T 应该是:T=( T1 + T2 + + Tn ) / n,1.,先来先服务作业调度算法,基本思想:以作业进入后备作业队列的先后次序,作为作业调度程序挑选作业的依据。即哪个作业在后备作业队列里等待的时间最长,下次调度即是选中者,这当然是以其资源需求能够得到满足为前提的。,例:,作业,所需CPU时间,1,2,3,24,3,3,解:,.,有5个作业,进入后备作业队列的到达时间如表所示(注意,不是同时到达)。采用短作业优先的作业调度算法。求每个作业的周转时间以及它们的平均周转时间(忽略系统调度时间)。,按短作业优先的作业调度算法,应先调度作业1进入内存运行,其

25、周转时间T1是0.7。它于CPU时间10.8完成时,作业2、3、4、5都已在后备作业队列里等候。因此调度顺序应是:5、3、4、2。作业5在时刻10.8进入内存,运行0.2后结束。其周转时间T5= (完成时间 - 到达时间 )=11.0-10.7=0.3。每个作业的完成时间和周转时间如表所示 。,2.,短作业优先作业调度算法,基本思想:要求每个用户对自己作业所需CPU时间做出估计,填入作业说明书。作业调度程序工作时,是从后备作业队列里挑需CPU时间最少、且资源能得到满足的作业进入内存投入运行。,例:,作业,所需CPU时间,1,2,3,10.1,10.3,10.5,4,5,10.6,10.7,到达

26、时间,0.7,0.5,0.4,0.4,0.2,解:,作业,所需CPU时间,1,2,3,10.1,10.3,10.5,4,5,10.6,10.7,到达时间,0.7,0.5,0.4,0.4,0.2,完成时间,周转时间,10.8,12.3,11.4,11.8,11.0,0.7,2,0.9,1.2,0.3,注意,如果所有作业“同时”到达后备作业队列,那么采取短作业优先的作业调度算法,总会获得最小的平均周转时间。,.,作业3在时刻10.1完成,作业2和作业4是参与调度的对象。这时,它们各自的响应比分别为3.2和3。所以这次选中的应该是作业2。,4个作业进入后备作业队列的到达时间如表所示。采用响应比高者优

27、先的作业调度算法,求每个作业的周转时间及它们的平均周转时间(忽略系统调度时间)。,3.,响应比高者优先作业调度算法,基本思想:在进行作业调度时,先计算每个作业当时的响应比:响应比 = ( 已等待时间 ) / ( 所需CPU时间 ) 然后从中挑选出响应比最高的作业作为调度的对象。,例:,作业,所需CPU时间,1,2,3,8.0,8.5,9.0,4,9.5,到达时间,2,0.5,0.1,0.2,初启,后备作业队列里只有作业1,它投入运行,完成于时间10。重新调度时,作业2、3、4都到达。计算这一时刻三个作业各自的响应比。比如作业2,它已等待(10.0-8.5)=1.5,所需运行时间是0.5。因此此刻它的响应比是1.5/0.5=3。从下表知,这时作业3有最高的响应比,因此它是第2个调度的对象。,作业,所需CPU时间,2,3,4,8.5,9.0,9.5,当前CPU时间=10.0,到达时间,0.5,0.1,0.2,已等待时间,响应比,10.8,12.3,11.4,3,10,2.5,(1),(2),(3),作业2在时刻10.6完成。最后调度运行的作业是作业4,它在时刻10.8完成。这4个作业各自的周转时间是2、2.1、1.1和1.3,其平均周转时间是1.625。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报