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

上传人:hyn****60 文档编号:70760102 上传时间:2023-01-27 格式:PPT 页数:20 大小:927.50KB
返回 下载 相关 举报
《操作系统》课件-2.ppt_第1页
第1页 / 共20页
《操作系统》课件-2.ppt_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《《操作系统》课件-2.ppt》由会员分享,可在线阅读,更多相关《《操作系统》课件-2.ppt(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第2章 处理机管理1.2.3.本章讲述内容:本章讲述内容:4.进程与线程概念的引入;进程与线程概念的引入;进程的组成与管理;进程的组成与管理;处理机的调度算法;处理机的调度算法;处理机的二级调度与作业管理。处理机的二级调度与作业管理。2.1 进程进程o2.1.1 多道程序设计多道程序设计程序A程序B程序C0469141820232630423542334程序A程序B程序C0469131822121517(a)单道程序设计环境(b)多道程序设计环境时间时间打印机输出CPU执行图例:.单道程序设计环境特点单道程序设计环境特点1.资源的独占性资源的独占性.执行的顺序性执行的顺序性结果的再现性结果的再

2、现性多道程序设计环境特点多道程序设计环境特点2.执行的并发性执行的并发性.相互的制约性相互的制约性状态的多变性状态的多变性 系统进程直接管理软、硬件资源的活动;用户进程不得插手资源管理,在需要使用某资源时,须向系统提出申请,由系统统一调度与分配。.用户进程用户进程:可以并发执行的用户程序段,它们是操作系统的服务对象,是系统资源的实际享用者。系统进程系统进程:操作系统中用于管理系统资源的那些并发程序,它们向用户提供系统服务,分配系统的资源。系统进程间的相互关系由操作系统负责协调;用户进程间的相互关系由用户自己(在程序中)安排,操作系统向用户提供一定的协调手段(以命令的形式)。o2.1.2进程的定

3、义进程的定义1.应该从应该从3个方面来描述进程个方面来描述进程.进程是程序的一次运行活动;进程的运行活动是建立在某个数据集合之上;进程要在获得资源的基础上从事自己的运行活动。2.3.进程定义进程定义 所谓“进程进程”,是指一个程序在给定数据集合上的一次执行过程,是系统进是指一个程序在给定数据集合上的一次执行过程,是系统进行资源分配和运行调度的独立单位行资源分配和运行调度的独立单位。进程的分类进程的分类4.系统进程与用户进程的区别系统进程与用户进程的区别.系统进程使用资源的级别,高于用户进程。.进程间会相互制约进程间会相互制约。进程是系统中资源分配和运行调度的单位,因此在对资源共享和竞争中,必然

4、会相互制约,影响着各自向前推进的速度。进程之间具有并发性进程之间具有并发性。系统中多个进程对应的多个程序同时在系统中运行,轮流占用CPU和各种资源。每个进程都有自己的生命期每个进程都有自己的生命期。一个进程创建后,系统就感知到它的存在;撤消后,系统就无法再感知到它。于是,从创建到撤消,这个时间段就是一个进程的“生生命期命期”。不同进程可以执行同一个程序不同进程可以执行同一个程序。从进程定义知,区分进程的条件一是所执行的程序,二是数据集合。因此,即使多个进程执行同一个程序,只要它们运行在不同的数据集合上,那么它们就是不同的进程。“进程进程”是一个动态的概念是一个动态的概念。进程强调的是程序的一次

5、“执行”过程,因此它是一个动态的概念;程序是一组有序指令的集合,在多道程序设计环境下,它不涉及“执行”,因此是一个静态的概念。o2.1.3 进程的特征进程的特征1.2.进程与程序的关系进程与程序的关系进程与程序的区别进程与程序的区别 进程是程序的一次执行过程,程序是进程赖以存在的基础。这就是说,进程与程序之间有一种必然的联系。但进程又不等同于程序,它们是两个完全不同的概念。.在输入/输出操作完成后,会使某个进程的状态由阻塞变为就绪。这属于由于外界环境的变化而引起的状态变化。一个处于运行状态的进程,比如会由于提出输入/输出请求而使自己的状态变成为阻塞。这属于进程自身推进过程中引起的状态变化。就绪

6、状态就绪状态:已具备运行所需的一切条件,只是由于别的进程占用处理机而暂时无法运行。运行状态运行状态:获得CPU的进程处于此状态,其对应的程序正在处理机上运行着。阻塞状态阻塞状态:进程为了等待某种外部事件的发生(如等待输入/输出操作的完成,等待另一个进程发来消息),暂时无法运行。阻塞状态也称等待状态或挂起状态。o2.1.4 进程的基本状态进程的基本状态1.进程的三种基本状态进程的三种基本状态2.进程状态的变迁进程状态的变迁运行状态阻塞状态就绪状态调度该进程时间片用完某事件发生等待某事件发生.一个进程的状态,可随自身的推进和外界环境的变化而变化,从一种状态变迁到另一种状态。进程状态变迁图中,箭头表

7、示状态变迁的方向,文字是引起这种状态变迁的原因。.现场信息现场信息:进程暂时让出处理机时,须把当前各种现场信息保存在PCB的固定单元里。这样,当进程再次获得处理机时,就可以把这些信息置入处理机的相应寄存器中,恢复到被中断时的原有状态,保证进程正常执行。标识信息标识信息:代表了一个进程的身份,是系统内部区分不同进程的依据。进程控制块进程控制块 2.2 进程控制块进程控制块o2.2.1 进程的三个组成部分进程的三个组成部分.程序程序数据集合数据集合PCB程序数据集合o2.2.2 进程控制块的内容进程控制块的内容.进程名进程状态程序存放位置数据存放位置通用寄存器内容控制寄存器内容断点地址进程优先数队

8、列指针标识信息说明信息现场信息管理信息说明信息说明信息:随时反映进程的情况。管理信息管理信息:系统通过这些信息管理、调度进程,使它们有条不紊地工作。为管理和控制进程,系统在创建一个进程时,都为其开辟一个专用的存储区,随时记录它在系统中的动态特性;当一个进程被撤消时,系统收回分配给它的存储区。把这一存储区称作为该进程的“进程控制块PCB”。就绪队列就绪队列:系统中所有处于就绪状态的进程的PCB排成一队,称其为“就绪队列”。一般地,就绪队列里会有多个进程的PCB排在里面,它们形成处理机分配的侯选对象。阻塞队列阻塞队列:所有处于阻塞状态的进程的PCB,应该根据阻塞的原因进行排队,每一个都称为一个“阻

9、塞队列”。o2.2.3进程控制块队列进程控制块队列PCB1PCB2PCB5PCB10PCB3PCB7PCB6PCB8PCB9PCB4-1-1-1运行队列头指针就绪队列头指针阻塞队列1头指针阻塞队列2头指针运行队列:就绪队列:阻塞队列1:阻塞队列2:.运行队列运行队列:处于运行状态的PCB构成运行队列。在单CPU系统,任何时刻系统里都只有一个进程处于运行状态,因此运行队列里只能有一个PCB。.Ao2.3.1进程调度算法进程调度算法2.3 进程的调度与管理进程的调度与管理1.先来先服务调度算法先来先服务调度算法ABCD调度就绪队列到达阻塞队列完成I/O完成阻塞CPUI/O 基本思想:调度时以到达就

10、绪队列的先后次序选择占用处理机的进程。进程一旦占有处理机,就一直用下去,直至结束或因等待某事件而让出处理机。2.时间片轮转调度算法时间片轮转调度算法 基本思想:调度时为进程分配一个称为“时间片”的时间段,在使用完一个时间片后,即使进程没运行完,也要释放处理机,让给另一个进程使用,自己则排到就绪队列末尾,等待下一次调度。ABCD调度就绪队列到达阻塞队列完成I/O完成阻塞CPUI/O时间片到3.优先数调度算法优先数调度算法 基本思想:为系统中的每个进程规定一个优先数,就绪队列中具有最高优先数的进程有优先获得处理机的权利;如果几个进程的优先数相同,则对它们实行先来先服务的调度。4.多级队列调度算法多

11、级队列调度算法调度就绪队列到达完成CPU阻塞、就绪时间片到调度完成CPU阻塞、就绪调度完成CPU阻塞、就绪时间片到时间片到级1(先来先服务)级2(先来先服务)级n(先来先服务)基本思想:系统中维持多个就绪队列,每个就绪队列具有不同的调度级别,可以获得不同长度的时间片。级 1就绪队列里进程的调度级别最高,可获得的时间片最短;级 n就绪队列里进程的调度级别最低,但可以获得的时间片最长。创建新进程时,它的PCB将先进入级 1就绪队列的末尾。功能:在等待的事件发生后,由唤醒进程原语把等待进程从相应的阻塞队列里解放出来,进入就绪队列,重新参与调度。撤消进程原语撤消进程原语 功能:为新建进程申请进程控制块

12、PCB,将创建者提供的信息填入PCB,将新建进程设置为就绪状态,按照调度算法把PCB排入就绪队列中。o2.3.2 进程管理的基本原语进程管理的基本原语1.原语定义原语定义操作系统提供若干基本操作,以便能创建、撤消、阻塞和唤醒进程。为了保证执行的正确,要求它们以一个整体出现,不可分割。即一旦启动了对应的程序,就要保证做完,中间不能插入其它程序的执行序列。具有这种特性的程序被称为“原原语语”。为保证原语操作的不可分割性,通常总是利用屏蔽中断的方法。2.进程管理的基本原语进程管理的基本原语.创建进程原语创建进程原语阻塞进程原语阻塞进程原语唤醒进程原语唤醒进程原语 功能:收回该进程占用的资源,将该进程

13、的PCB从所在队列里摘下,把PCB所占用的存储区归还给系统。功能:将被阻塞进程的现场信息保存到PCB中,状态改为阻塞;将其PCB排到相应的阻塞队列中。若被阻塞的是自己,调用了该原语后,就重新分配处理机。2.4 线程线程o2.4.1 线程的概念线程的概念引入线程的原因引入线程的原因1.进程既是资源分配的单位,又是处理机调度的单位。为提高进程并发执行程度,减少进程切换时的开销,让进程只具有“资源拥有者”这个特征,而“调度和运行”这个特征就赋予新的实体线程。线程的定义线程的定义2.所谓“线程线程”,指进程中实施处理机调度和分配的单位。有时把进程称为“重载进程(HWP)”,把线程称为“轻载进程(LWP

14、)”。单进程,单线程单进程,多线程多进程,每个进程一个线程多进程,每个进程多个线程线程的状态线程的状态3.创建.阻塞.唤醒.引入线程后,线程是进程中的实体,实施CPU分配时,把CPU分配给进程中可并发执行的线程。如果把进程理解为是操作系统在逻辑上需要完成的一个任务,那么线程则是完成该任务时可以并发执行的多个子任务。.如图所示,给出了进程和线程之间的各种关系。通信关系通信关系:不同进程间使用系统提供的进程通信机制;同一进程各线程直接通过访问共享的进程地址空间来实现。描述处理器工作情况的一组寄存器(如程序计数器、状态寄存器、通用寄存器等)的内容;o2.4.2 进程与线程的关系进程与线程的关系进程与

15、线程的关系进程与线程的关系1.线程执行时,要有自己的堆栈(放程序计数器、通用寄存器、局部变量和返回地址等)、优先级、标识、运行状态等,因此系统要为每个线程设置一个线程控制块(TCB),以实现系统对线程的管理和控制。.线程TCB的四个组成部分(1)一个唯一的线程标识;(2)(3)两个堆栈指针,一个指向用户栈,一个指向系统栈;(4)一个私用的现场保护区。PCB数据程序用户栈系统栈寄存器单线程进程模型进程PCB数据程序用户栈系统栈寄存器TCB用户栈系统栈寄存器TCB用户栈系统栈寄存器TCB线程1线程2线程3进程多线程进程模型(a)(b)进程和线程间的几点不同.(1)地址空间地址空间:不同进程的地址空

16、间相互独立,进程各线程共享一个地址空间。(2)(3)调度切换调度切换:不同进程间切换要花很大开销,同一进程的线程切换开销很少。资源资源:引入线程后,进程内的所有线程共享该进程拥有的全部资源,如代码段、数据、打开的文件以及输入/输出设备等;线程只有很少一些运行时必需的资源,如程序计数器、一组寄存器和堆栈等。调度调度:引入线程后,进程是资源的拥有者,线程是处理机调度和分配的单位。因此,在同一进程内线程的切换不会引起进程的切换;而由一个进程中的线程切换到另一个进程中的线程时,就要引起进程的切换。处理机管理的新含义处理机管理的新含义 2.引入线程后,存在着两种并发执行:一是进程间的并发执行,一是进程里

17、的线程的并发执行。因此系统对进程和线程的管理,就有了新的含义。.新的含义(1)(2)并发并发:引入线程后,不仅进程之间可以并发执行,而且一个进程内的多个线程之间也可以并发执行,因此系统具有了更好的并发性,进而使系统的资源利用率和吞吐率大大提高。(3)(4)开销开销:创建和撤消进程时,系统要做很多有关资源的分配和回收工作;在进程间进行切换时,系统要为其保存现场信息,会将旧进程的内容调出至辅存,将新进程的内容调入内存。由于同一进程内的线程有相同的地址空间,它们间的切换只需保存和设置少量的寄存器内容,不涉及存储器管理方面的操作。2.5 作业调度作业调度o2.5.1 用户与操作系统的两种接口用户与操作

18、系统的两种接口1.两种接口两种接口.程序接口 操作系统提供各种系统调用命令,以让用户在编程时获得所需的功能服务。这是系统在程序一级给予用户的支持。命令接口 操作系统提供各种操作命令,以便用户通过键盘控制程序的运行。这是系统在作业控制一级给予用户的支持。2.若干概念若干概念.特权指令与非特权指令 把CPU的指令分为两类:一类是操作系统和用户都能使用的指令,称为“非特权指令”;一类是只能由操作系统使用的指令,称为“特权指令”。管态与目态 这是CPU的两种工作状态:当其处于管态时,可执行包括特权指令在内的一切机器指令;当其处于目态时,只能执行非特权指令,禁止使用特权指令。一般的过程调用,调用者与被调

19、用者都运行在相同的CPU状态;但发生系统调用时,发出调用命令的调用者运行在目态,而被调用的对象则运行在管态。.系统调用命令系统调用命令 操作系统里预先编制了不同功能的子程序,用户可在自己的程序里调用它们,以求操作系统提供功能服务。这些子程序被称为“系统功能调用”程序,简称“系统调用系统调用”。访管指令访管指令是一条非特权指令,功能是执行它就会产生一个软中断,促使中央处理机由目态转为管态,进入操作系统。用户程序只有通过 访管指令,才能由目态转为管态、以达到调用系统调用命令的目的。.访管指令3.系统调用与一般过程调用的区别系统调用与一般过程调用的区别.一般的过程调用,直接通过转移指令转向被调用的程

20、序;但系统调用时,只能通过访管指令提供的统一的入口,由目态进入管态,然后转向相应的系统调用命令。一般的过程调用,执行完后径直返回断点继续执行;但系统调用可能会招致进程状态的变化,从而引起系统重新分配处理机,因此系统调用处理结束后,不一定是返回调用者断点处继续执行。4.操作命令操作命令脱机命令接口和联机命令接口。C编译程序以该源程序做为输入进行编译,产生出以“.OBJ”为扩展名的目标程序;用户经键盘在编辑程序支持下建立以“.C”为扩展名的源程序;作业步作业步:为了获得结果,一个作业需要经过若干个加工步骤。称每一个加工步骤为一个作业步。作业作业:指用户要求计算机系统做的一个计算问题或一次事务处理的

21、完整过程。o2.5.2 作业与作业管理作业与作业管理.一个作业的各作业步之间是有联系的。通常,上一个作业步的输出是下一个作业步的输入。下一个作业步能否顺利执行,取决于上一个作业步的结果是否正确。.典型的C语言作业处理过程(1)(2)(3)连接装配程序以目标程序、系统库函数、包含文件等为输入,产生一个以“.EXE”为扩展名的可执行文件。这个文件才是真正可以投入运行的程序。作业控制块作业控制块:把一个作业提交给系统时,系统为它开辟一个专用的存储区,随时记录作业的信息。该存储区称为作业的作业控制块JCB。.后备作业与后备作业队列后备作业与后备作业队列:被系统接纳的作业,在未投入运行前,称后备作业。它

22、们存放在辅存,由JCB连接在一起,形成后备作业队列。后备作业队列里的作业,不参与对处理机的竞争,但系统从它们里面挑选对象去参与对处理机的竞争。.作业调度:作业调度:按某种规则从后备作业队列里挑选作业进入内存,参与对处理机的竞争,称为作业调度作业调度,它由作业调度程序作业调度程序完成。所 采用的规则,称作业调度算法作业调度算法。.作业的生命期作业的生命期:从作业提交给系统,到作业运行完毕被撤消,是一个作业的生命期。在这期间,作业随着自己的推进,及环境变化,状态也在不断变化。作业的四个基本状态用户名外设类型与需求数量作业提交时间作业运行时间(估计)作业控制块(JCB)指针其他作业类别内存需求量作业

23、名作业现行状态作业优先数(1)提交状态(2)后备状态(3)运行状态(4)完成状态作业控制块JCB内容 由于是按照1、2、3的顺序同时提交给系统,可假定它们三个到达系统的时间都为0。作业1第1个被作业调度程序选中,投入运行。花24个CPU时间运行完毕。因此其周转时间是:T1=24-0=24;作业2在等待24个CPU时间后被调度并运行。它花费3个CPU时间运行完毕,因此周转时间是:T2=27-0=27;不难算出作业3的周转时间是:T3=30-0=30。于是,这三个作业的平均周转时间为:T=(T1+T2+T3)/3=(24+27+30)/3=81/3=27 有3个作业,所需CPU时间如右表所示。按1

24、、2、3的顺序,同时提交给系统,采用先来先服务的作业调度算法。求每个作业的周转时间及它们的平均周转时间。2.5.3 作业的调度算法作业的调度算法 在批处理系统中,使用作业的“周转时间周转时间”来描述系统的吞吐能力。假定作业 i 提交给系统的时间为S i,其完成的时间为W i。那么该作业的周转时间Ti是:Ti=W i S i对于一批n个作业而言,它们的“平均周转时间平均周转时间”T 应该是:T=(T1+T2+Tn)/n1.先来先服务作业调度算法先来先服务作业调度算法 基本思想:以作业进入后备作业队列的先后次序,作为作业调度程序挑选作业的依据。即哪个作业在后备作业队列里等待的时间最长,下次调度即是

25、选中者,这当然是以其资源需求能够得到满足为前提的。例:例:作业所需CPU时间1232433解:解:.有5个作业,进入后备作业队列的到达时间如表所示(注意,不是同时到达)。采用短作业优先的作业调度算法。求每个作业的周转时间以及它们的平均周转时间(忽略系统调度时间)。按短作业优先的作业调度算法,应先调度作业1进入内存运行,其周转时间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。每个作业的完成时间和周转时间如表

26、所示。2.短作业优先作业调度算法短作业优先作业调度算法 基本思想:要求每个用户对自己作业所需CPU时间做出估计,填入作业说明书。作业调度程序工作时,是从后备作业队列里挑需CPU时间最少、且资源能得到满足的作业进入内存投入运行。例:例:作业所需CPU时间12310.110.310.54510.610.7到达时间0.70.50.40.40.2解:解:作业所需CPU时间12310.110.310.54510.610.7到达时间0.70.50.40.40.2完成时间周转时间10.812.311.411.811.00.720.91.20.3 注意,如果所有作业“同时”到达后备作业队列,那么采取短作业优先

27、的作业调度算法,总会获得最小的平均周转时间。.作业3在时刻10.1完成,作业2和作业4是参与调度的对象。这时,它们各自的响应比分别为3.2和3。所以这次选中的应该是作业2。4个作业进入后备作业队列的到达时间如表所示。采用响应比高者优先的作业调度算法,求每个作业的周转时间及它们的平均周转时间(忽略系统调度时间)。3.响应比高者优先作业调度算法响应比高者优先作业调度算法 基本思想:在进行作业调度时,先计算每个作业当时的响应比:响应比响应比=(已等待时间已等待时间)/(所需所需CPU时间时间)然后从中挑选出响应比最高的作业作为调度的对象。例:例:作业所需CPU时间1238.08.59.049.5到达

28、时间20.50.10.2 初启,后备作业队列里只有作业1,它投入运行,完成于时间10。重新调度时,作业2、3、4都到达。计算这一时刻三个作业各自的响应比。比如作业2,它已等待(10.0-8.5)=1.5,所需运行时间是0.5。因此此刻它的响应比是1.5/0.5=3。从下表知,这时作业3有最高的响应比,因此它是第2个调度的对象。作业所需CPU时间2348.59.09.5当前CPU时间=10.0到达时间0.50.10.2已等待时间 响应比10.812.311.43102.5(1)(2)(3)作业2在时刻10.6完成。最后调度运行的作业是作业4,它在时刻10.8完成。这4个作业各自的周转时间是2、2.1、1.1和1.3,其平均周转时间是1.625。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁