计算机软件及应用处理器管理课件_第1页
计算机软件及应用处理器管理课件_第2页
计算机软件及应用处理器管理课件_第3页
计算机软件及应用处理器管理课件_第4页
计算机软件及应用处理器管理课件_第5页
已阅读5页,还剩279页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

处理器管理

本章考核知识点:1.多道程序设计2.进程3.进程状态4.进程控制块5.进程队列6.可再入程序7.中断及中断响应8.中断优先级9.进程调度自学要求:通过本章学习应该掌握多道程序设计是如何提高计算机系统效率的;进程与程序有什么区别;进程的基本状态以及状态变化;进程队列及进程调度策略;中断的作用。重点是:多道程序设计;进程的定义和属性;进程调度策略。处理器管理本章考核知识点:1.多道程序设计2.进程3.13.1、多道程序设计(领会)3.1.1什么是多道程序设计让多个计算问题同时装入一个计算机系统的主存储器并行执行,这种设计技术称“多道程序设计”,这种计算机系统称“多道程序设计系统”或简称“多道系统”。3.1、多道程序设计(领会)2在多道程序设计的系统中,有三点基本要求:用"存储保护"的方法保证各道程序互不侵犯;用"程序浮动"技术让程序能灵活地改变存放区域且能正确执行;必须对资源按一定的策略分配和调度。程序浮动:在多道程序设计系统中,对程序有一些特殊要求,也就是说,程序可以随机地从主存的一个区域移动到另一个区域,程序被移动后仍丝毫不影响它的执行,这种技术称为“程序浮动“在多道程序设计的系统中,有三点基本要求:33.1.2为什么采用多道程序设计程序的顺序执行程序的并行执行P363.1.2为什么采用多道程序设计程序的顺序执行4多道程序设计利用了系统与外围设备的并行工作能力,从而提高工作效率。具体表现为:提高了处理器的利用率;充分利用外围设备资源:发挥了处理器与外围设备以及外围设备之间的并行工作能力;从总体上说,采用多道程序设计技术后,可以有效地提高系统中资源的利用率,增加单位时间内的算题量,从而提高了吞吐率。多道程序设计利用了系统与外围设备的并行工作能力,从而提高工作53.1.3采用多道程序设计注意的问题

可能延长程序的执行时间;

并行工作道数与系统效率不成正比从表面上看,增加并行工作道数就可提高系统效率,但实际上并行工作道数与系统效率是不成正比,因为并行的道数要根据系统配置的资源和用户对资源的要求而定:(1)主存储器的大小限制了可同时装入的程序数量;

(2)外围设备的数量也是一个制约条件;

(3)多个程序同时要求使用同一资源的情况也会经常发生。3.1.3采用多道程序设计注意的问题6

总之,多道程序设计能提高系统资源的使用效率,增加单位时间的算题量;但是对每个计算问题来说,从算题开始到全部完成所需要的时间可能延长,另外在确定并行工作道数时应综合系统的资源配置和用户对资源的要求。

7思考多道程序设计环境中,内存中有多个程序,但是某时刻只有一个程序占用CPU运行,其他程序在做什么?思考多道程序设计环境中,内存中有多个程序,但是某时刻只有一个8S1:a:=x+y;S2:b:=a-5;S3:c:=b+1;S4:w=3+a

S5:x=c+w程序的顺序执行及其特征1.程序的顺序执行S1S2S3例如对一个程序的多条语句:三条语句的顺序执行

3.2进程S4S5S1:a:=x+y;程序的顺序执行及其特征1.程序的顺序9

2.程序顺序执行时的特征

(1)顺序性:处理机的操作严格按照程序所规定的顺序执行,即每一操作必须在上一个操作结束之后开始。

(2)封闭性:程序是在封闭的环境下执行的,即程序运行时独占全机资源,资源的状态(除初始状态外)只有本程序才能改变它。程序一旦开始执行,其执行结果不受外界因素影响。

(3)可再现性:只要程序执行时的环境和初始条件相同,当程序重复执行时,都将获得相同的结果。优点:程序的编制、调试方便,缺点:计算机系统效率不高。

程序的顺序执行及其特征2.程序顺序执行时的特征程序的顺序执行及其特征10程序的并发执行及其特征

1.程序的并发执行

若干个程序段同时在系统中运行,这些程序段的执行在时间上是重叠的,一个程序段的执行尚未结束,另一个程序段的执行已经开始,即使这种重叠是很小的一部分,也称这几个程序段是并发执行的。PQR例:三个并发执行的程序段。程序的并发执行及其特征PQR例:三个并发执行的程序段。11程序的并发执行及其特征

1.程序的并发执行在图中存在Ii→Ci→Pi前趋关系,以至对一个作业的输入、计算和打印三个操作,必须顺序执行,但并不存在Pi→Ii+1的关系,因而在对一批程序进行处理时,可使它们并发执行。i1p1icpo1i2p2o2i3p3o3t1t2t3进程时间程序的并发执行及其特征i1p1icpo1i2p2o2i3p12在该例中存在下述关系:

Ii→Ci,Ii→Ii+1,Ci→Pi,Ci→Ci+1,Pi→Pi+1

而Ii+1和Ci及Pi-1是重迭的,亦即在Pi-1和Ci以及Ii+1之间,可以并发执行。对于具有下述四条语句的程序段:S1:a:=x+2S2:b:=y+4S3:c:=a+bS4:d:=c+b在该例中存在下述关系:Ii→Ci,Ii→Ii+1,Ci→P13练习:已知一个求值公式(A×A+3B)/(B+5A)若A和B已经赋值,试画出该公式求解的前趋图S1:W=A×AS2:V=3×B……练习:已知一个求值公式14

2.程序并发执行时的特征

1)间断性:走走停停

2)失去封闭性:资源状态有多个程序改变3)不可再现性:计算结果和执行速度有关例如,有两个循环程序A和B,它们共享一个变量N。程序A每执行一次时,都要做N:=N+1操作;程序B每执行一次时,都要执行print(N)操作,然后再将N置成“0”。A:while(1)B:while(1)N:=N+1;{print(N);N:=0;}程序A和B以不同的速度运行。这样,可能出现下述三种情况(假定某时刻变量N的值为n)。2.程序并发执行时的特征15(1)N:=N+1;print(N);N:=0;N值分别为n+1,n+1,0。(2)print(N);N:=0;N:=N+1;值分别为n,0,1。(3)print(N);N:=N+1;N:=0;N值分别为n,n+1,0。上述情况说明,程序在并发执行时,由于失去了封闭性,其计算结果已与并发程序的执行速度有关,从而使程序的执行失去了可再现性。不可再现性:程序经过多次执行后,虽然它们执行时的环境和初始条件相同,但得到的结果却各不相同。(1)N:=N+1;print(N);N:=0;N值分别为n16进程的定义较典型的进程定义有:(1)进程是程序的一次执行。(2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动。(3)进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。我们给出的进程的定义:

进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。3.2进程3.2.1进程的定义进程的定义3.2进程173.2进程进程三要素:程序、数据、CPU进程与程序的区别及关系。程序是静止的,进程是动态的。进程包括程序和程序处理的对象(数据集),进程能得到程序处理的结果。进程是一个独立的运行单位,能与其它进程并行(并发)活动。而程序则不是。进程是竞争计算机系统有限资源的基本单位,也是进行处理机调度的基本单位。进程和程序并非一一对应的,一个程序运行在不同的数据集上就构成了不同的进程。一个程序可以作为多个进程的运行程序,一个进程也可以运行多个程序。3.2进程18进程与程序的区别简单例子《操作系统课程》--程序教师--CPU学生学习过程--进程同一个教师教的A和B班学习进度不一样,所以可以比喻为一个程序拥有2个进程思考:还有类似的例子吗?进程与程序的区别简单例子19

我们举一个例子,比如在有一个用户程序notepad.exe(记事本),当它存放在磁盘上时,就是一个程序,在windows操作系统下运行它时,就会在内存中建立一个记事本程序的进程,而我们在记事本中编辑的当前文字就是这个进程的数据集,操作系统会为当前的进程设置一个进程控制块。如果我们再打开一个记事本程序的窗口,就会建立另一个进程,此时运行的是同一个程序,但存在两个进程,第二个窗口中的编辑内容就是第二个进程的数据集。

203.2.2为什么引入进程提高资源利用率正确描述程序的执行情况3.2.2为什么引入进程提高资源利用率21

进程的类型在系统中同时有多个进程存在,但归纳起来有两大类:(1)系统进程系统进程起着资源管理和控制的作用。

或者:执行操作系统核心代码的进程。(2)用户进程执行用户程序的进程。进程的类型22系统进程与用户进程的区别系统进程被分配一个初始的资源集合,这些资源可以为它独占,也能以最高优先权的资格使用。用户进程通过系统服务请求的手段竞争使用系统资源;用户进程不能直接做I/O操作,而系统进程可以做显式的、直接的I/O操作。系统进程在管态下活动,而用户进程则在用户态(目态)下活动。另一种分类:计算进程,I/O进程等注意:在UNIX系统中没有这样对进程进行分类。系统进程与用户进程的区别233.2.3进程状态(领会)

进程的三种基本状态:等待态:等待某个事件的完成;就绪态:等待系统分配处理器以便运行;运行态:占有处理器正在运行。3.2.3进程状态(领会)24

1)就绪状态(Ready)当进程已分配到除CPU以外的所有必要资源后,只要再获得CPU,便可立即执行,进程这时的状态称为就绪状态。在一个系统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为就绪队列。

2)执行状态(Running)进程已获得CPU,其程序正在执行。在单处理机系统中,只有一个进程处于执行状态;在多处理机系统中,则有多个进程处于执行状态。3.2.3进程状态(领会)1)就绪状态(Ready)2)执行状态(Runni25

3)等待状态(Wait/Block)正在执行的进程由于发生某事件而暂时无法继续执行时,便放弃处理机而处于暂停状态,这种暂停状态称为等待状态(阻塞状态或封锁状态)。

3)等待状态(Wait/Block)26进程的状态变化进程在执行中状态会不断地改变,每个进程在任何时刻总是处于上述三种基本状态的某一种基本状态,进程状态之间转换关系如下图所示:进程的状态变化27进程的三种基本状态及其转换

进程的三种基本状态及其转换28

运行态→等待态往往是由于等待外设,等待主存等资源分配或等待人工干预而引起的。

等待态→就绪态则是等待的条件已满足,只需分配到处理器后就能运行。

运行态→就绪态不是由于自身原因,而是由外界原因使运行状态的进程让出处理器,这时候就变成就绪态。例如时间片用完,或有更高优先级的进程来抢占处理器等。

就绪态→运行态系统按某种策略选中就绪队列中的一个进程占用处理器,此时就变成了运行态。运行态→等待态往往是由于等待外设,等待主存等资源分配29进程及状态的例子医院体检体检表——程序体检过程——进程体检中等待、就绪、运行对应进程的三种状态进程及状态的例子医院体检30问题:单CPU系统中,如果系统中有N个进程,运行进程最多几个,最少几个?就绪进程最多几个,最少几个?等待进程最多几个,最少几个?解答:运行进程最多1个,最少0个; 就绪进程最多N-1个,最少0个; 等待进程最多N个,最少0个;问题:单CPU系统中,如果系统中有N个进程,解答:运行进程最31

小问题

下列进程状态变化中,______变化是不可能产生的?A运行->就绪B运行->阻塞C阻塞->运行D阻塞->就绪小问题下列进程状态变化中,_32其他教材给出的进程的状态变图

运行

等待就绪服务请求(请求I/O等)服务完成/事件来到进程调度时间片到运行等待就绪服务请求服务完33

讨论进程状态变迁

运行

等待

就绪变迁1变迁4变迁3变迁2变迁1——>变迁3?变迁4——>变迁3?讨论进程状态变迁运行34问题:如果操作系统里面存在多个进程,找出所有的可能状态转换。解答:

就绪—运行:不一定(系统中仅一个进程) 转换条件:被调度程序选中

运行—就绪:一定(讨论就绪队列的长度) 转换条件:时间片到时,或有更高优先级 的进程出现

运行—等待:不一定(考虑死锁) 转换条件:等待某事件发生

等待—就绪:不一定 转换条件:考虑就绪队列的长度问题:如果操作系统里面存在多个进程,找出所有的可能状态转换。35例1:设有3个排序程序。程序A:采用冒泡排序算法,在屏幕的左1/3处开设一个窗口显示其排序过程。程序B:采用堆排序算法,在屏幕的中1/3处开设一个窗口显示其排序过程。程序C:采用快速排序算法,在屏幕的右1/3处开设一个窗口显示其排序过程。(1)在不支持进程运行环境的操作系统下运行(2)在支持进程运行环境的操作系统下运行

例1:设有3个排序程序。36

例2:设有2个程序,程序C是打印工资报表的程序,程序D是计算1000以内所有素数并显示最后结果程序。(1)在不支持进程运行环境的操作系统下运行。(2)在支持进程运行环境的操作系统下运行。例2:解答(1)在不支持进程运行环境的操作系统下,依次执行程序C、程序D,可以看到,先是打印机不停地打印工资报表,打完后,接着运行程序C,不停地计算,最后显示所计算的结果。

(2)在支撑进程运行环境的操作系统下,创建进程C和进程D。由于进程C是I/O量较大的进程,而进程D是计算量较大的进程,故在系统进程调度的控制下,两个进程并发执行。可以看到打印机不断打印工资报表,而处理机不停地计算,最后屏幕显示计算的结果。例2:设有2个程序,程序C是打印工37进程属性:动态性

多个不同的进程可以包含相同的程序并发执行并发执行的进程轮流占用处理器

进程有三种基本状态[计算机软件及应用]处理器管理课件38可再入程序(识记)(1)什么是可再入程序。一个能被多个用户同时调用的程序称做"可再入"的程序。(2)可再入程序的性质。可再入程序必须是纯代码,在执行时自身不改变;一个可再入程序要求调用者提供工作区,以保证程序以同样方式为各用户服务。编译程序和操作系统程序通常都是"可再入"程序,能同时被不同用户调用而构成不同的进程。可再入程序(识记)39进程三个特性:动态性从诞生、运行,直至消灭。并发性并发执行的进程轮流占用处理器

异步性不可预知的速度向前推进[计算机软件及应用]处理器管理课件40进程控制块的作用

进程控制块(ProcessControlBlock,简称PCB),是操作系统为进程分配的用于标志进程,记录各进程执行情况的。进程控制块是进程存在的标志,它记录了进程从创建到消亡动态变化的状况,进程队列实际也是进程控制块的链接。操作系统利用进程控制块对进程进行控制和管理。作用:(1)记录进程的有关信息,以便操作系统的进程调度程序对进程进行调度。这些信息包括标志信息、说明信息、现场信息和管理信息等;(2)标志进程的存在,进程控制块是进程存在的唯一标志

进程的组成:程序+数据+PCB3.3进程队列3.3.1进程控制块(领会)进程控制块的作用3.3进程队列413.3进程队列3.3.1进程控制块(领会)进程控制块的基本内容。标志信息含唯一的进程名说明信息有进程状态、等待原因、进程程序存放位置和进程数据存放位置现场信息包括通用、控制和程序状态字寄存器的内容管理信息存放程序优先数和队列指针3.3进程队列42PCB的主要内容

PCB的主要内容433.3进程队列3.3.2进程的创建和撤销3.3进程队列441.进程图(ProcessGraph)一个进程可以创建另一个进程,进程图是用于描述一个进程的家族关系的有向树,结点(圆圈)代表进程。进程树

父进程祖先子进程1.进程图(ProcessGraph)进程树父进程祖45

2.引起创建进程的事件用户登录->分时OS作业调度->批处理OS提供服务应用请求系统内核创建应用程序自己创建2.引起创建进程的事件系统内核创建应用程序自己创建46

3.进程的创建(CreationofProcess)调用进程创建原语Creat()按下述步骤创建一个新进程。申请空白PCB。为新进程分配资源。初始化进程控制块将新进程插入就绪队列

代码是什么样的?

3.进程的创建(CreationofProcess)47创建原语流图创建原语流图48进程的撤销1.引起进程撤销的事件1)正常结束例如,批处理系统中,Holt分时系统中,Logsoff2)异常结束越界﹑保护错﹑特权指令错﹑非法指令错﹑运行超时﹑等待超时﹑算术运算错﹑I/O故障3)外界干预操作员或操作系统﹑父进程请求﹑父进程终止进程的撤销492.进程的撤销过程如果系统中发生了上述要求终止进程的某事件,OS便调用进程终止原语destroy

.(1)根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态。(2)若被终止进程正处于执行状态,应立即终止该进程的执行,并置调度标志为真,用于指示该进程被终止后应重新进行调度。2.进程的撤销过程50

(3)若该进程还有子孙进程,还应将其所有子孙进程予以终止,以防它们成为不可控的进程。?(4)将被终止进程所拥有的全部资源,或者归还给其父进程,或者归还给系统。(5)将被终止进程(PCB)从所在队列(或链表)中移出,等待其他程序来搜集信息。(3)若该进程还有子孙进程,还应将其所有子孙进程予以终51撤消原语流图撤消原语流图52进程的阻塞与唤醒

1.引起进程阻塞和唤醒的事件有下述几类事件会引起进程阻塞或被唤醒。1)请求系统服务:打印机2)启动某种操作:I/O3)新数据尚未到达:合作4)无新工作可做:发送数据

进程的阻塞与唤醒532.进程阻塞过程正在执行的进程,当发现上述某事件时,由于无法继续执行,于是进程便通过调用阻塞原语block把自己阻塞。过程:停止执行,把进程控制块中的现行状态由“执行”改为“阻塞”,并将PCB插入阻塞队列;将本进程插入到具有相同事件的阻塞(等待)队列;转调度程序进行重新调度,将处理机分配给另一就绪进程并进行切换,2.进程阻塞过程54入口将现行进程的pcb现场送该进程的pcb现场保护区置该进程状态为阻塞把该进程插入相应的等待队列转进程调度程序进程阻塞原语的实现,这里,转进程调度程序是很重要的,否则,处理机将会出现空转而浪费资源。入口将现行进程的pcb现场送该进程的pcb现场保护55

3.进程唤醒过程当被阻塞进程所期待的事件出现时,则由有关进程调用唤醒原语wakeup(),将等待该事件的进程唤醒。执行过程:把被阻塞的进程从等待该事件的阻塞队列中移出,将其PCB中的现行状态由阻塞改为就绪;再将该PCB插入到就绪队列中。

3.进程唤醒过程56图唤醒原语[计算机软件及应用]处理器管理课件57小结

操作系统的顺序程序和并发进程执行的各自特点(1)顺序性1)间断性

(2)封闭性2)失去封闭性(3)可再现性3)不可再现性

进程基本概念进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位进程的三个基本状态及转换1)就绪(Ready)状态2)执行状态3)阻塞状态进程控制小结

操作系统的顺序程序和并发进程执行的各自特点583.3.3进程队列的链接在多道程序设计的系统中往往会同时创建多个进程。在单处理器的情况下,每次只能让一个进程运行,其他的进程处于就绪状态或等待状态。为了便于管理,经常把处于相同状态的进程链接在一起,称“进程队列”,由于进程控制块能标志进程的存在和动态刻画进程的特性,因此,进程队列可以用进程控制块的连接来形成。链接的方式有两种:单向链接和双向链接。

3.3.3进程队列的链接59基本队列就绪队列:由若干就绪进程按一定次序链接起来的队列。

等待队列:把等待资源或等待某些事件的进程排列的队列进程的入队和出队。出队和入队:当发生的某个事件使一个进程的状态发生变化时,这个进程就要退出所在的某个队列而排入到另一个队列中去。

出队:一个进程从所在的队列退出的操作称为出队

入队:一个进程排入到一个指定的队列的操作称为入队。基本队列60

系统中负责进程入队和出队的工作称为队列管理。无论单向链接还是双向链接,解决入,出队问题,都是首先找到该队列的队首指针,沿链找出要入队的进程以及它要插入的位置,或找出要出队的进程,然后修改本进程指针(入队情况)和相邻进程的有关指针值即可。系统中负责进程入队和出队的工作称为队列管理。61[计算机软件及应用]处理器管理课件623.4UNIX系统中的进程3.4.1UNIX进程的特点UNIX中分为用户进程和系统进程,用户进程工作在用户态执行,系统进程工作在核心态执行。如果在用户态的进程要请求系统功能调用的话,需要使用访管指令。3.4UNIX系统中的进程3.4.1UNIX进程的特点633.4UNIX系统中的进程3.4.2UNIX进程的组成进程控制块(包括进程基本控制块和进程扩充控制块)、正文段、数据段(1)进程基本控制块(proc)中包含的内容PS:进程基本控制块的内容是常驻主存的。A,标识信息:包括用户标识和进程标识。B,有关进程非常驻主存的信息。C,进程调度的一些信息。D,其他信息(2)进程扩充控制块(user)随用户程序一起装入主存和调出主存,包括:标识,现场保护,主存管理,文件读写,系统调用,进程控制与管理等。进程控制块并不全部在内存。P46-48正文段:可供多个进程共享的程序。数据段:进程执行费共享的程序和程序执行时所用到的数据。3.4UNIX系统中的进程3.4.2UNIX进程的组成643.4UNIX系统中的进程3.4.3UNIX进程的状态(1)运行状态(2)就绪状态(3)睡眠状态(4)创建状态(5)僵死状态3.4UNIX系统中的进程3.4.3UNIX进程的状态65

在UNIX系统中进程控制的系统调用有:fork()创建子进程sleep()进程睡眠exit()进程自已终止(自杀)wait()(父)等待子进程终止wakeup()进程唤醒

在UNIX系统中进程控制的系统调用有:663.4UNIX系统中的进程3.4.4UNIX进程的创建和终止(1)unix进程树unix系统被启动后,首先执行0号进程,0号进程是运行持续工作在核心态的进程,它的功能是执行进程调度和让进程在主存和磁盘上进行交换。0号进程又称为交换进程。0号进程又创建一个1号进程,1号进程又称为初始化进程。1号进程在用户态运行,每当有终端有用户请求注册时,1号进程就为该用户创建1个login进程。如果有多个用户注册,那么就创建多个login进程。如果用户登陆成功login进程就创建1个shell进程。------------------------这样的创建过程像一棵树(2)unix进程的创建在unix中除了1号进程和0号进程外其他进程都是用fork()系统调用创建的,形成父子关系。由fork()创建的新进程实际上是父进程的一个映像。3.4UNIX系统中的进程3.4.4UNIX进程的创建和67fork主要工作如下:a,在进程proc[]中找出一个空闲的表项,用来存放proc结构b,为子进程分配一个唯一的标识号c,把父进程的proc[]中的字段复制到子进程的proc中,但把分配到得标识号置于p_pid中,把p_ppid置为父进程的的标识号,把p_stat置为创建状态。d,按父进程中p_size所示的长度为子进程申请分配内存。(3)unix进程的终止fork主要工作如下:68过程:以shell进程为例,shell进程通过接收用户的命令,然后通过fork()创建子进程处理命令exec,父进程通过wait等待子进程的结束,子进程是通过系统调用exit请求终止自己,并释放父进程。系统调用exit的主要任务是把终止进程自被创建以来所占用的系统资源退还给系统。关闭该进程的打开文件,释放它对正文段的使用权。把user结构换出到磁盘兑换区并收回数据段占用的主存空间。然后把子进程改为僵死状态,像父进程发出信号,由父进程作善后处理。

系统调用wait对exit终止信号作善后处理。wait的任务是先查找僵死状态的子进程,若子进程未僵死,则让该进程等待,直到子进程成为僵死状态后释放。当父进程释放后,wait继续执行,再从磁盘对换区中把子进程的user结构读入主存,释放user在对换区中所占的空间,然后把user存放的时间信息加在本进程的user结构中,再释放主缓冲去,把子进程子proc中的表项删除。

综上所述:一个子进程终止后,其父进程的善后处理工作主要是释放子进程的proc和user,并把user存放的时间信息累加到父进程中。过程:以shell进程为例,shell进程通过接收用户的命令69fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值:在父进程中,fork返回新创建子进程的进程ID;在子进程中,fork返回0;如果出现错误,fork返回一个负值P54实验二进程管理fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两70/*fork_test.c*/

#include<sys/types.h>

#inlcude<unistd.h>

main()

{

pid_tpid;

/*此时仅有一个进程*/

pid=fork();

/*此时已经有两个进程在同时运行*/

if(pid<0)

printf("errorinfork!");

elseif(pid==0)

printf("Iamthechildprocess,myprocessIDis%d\n",getpid());

else

printf("Iamtheparentprocess,myprocessIDis%d\n",getpid());

}

编译并运行:$gccfork_test.c-ofork_test

$./fork_test

Iamtheparentprocess,myprocessIDis1991

Iamthechildprocess,myprocessIDis1992

/*fork_test.c*/

#include<sys713.4.5unix进程的换进换出概念:动态的对内存中把就绪进程从磁盘交换区移入,把等待进程移到磁盘交换区,称这种行为叫做进程的换进换出。意义:使系统运行效率提高。3.4.6unix进程的睡眠与唤醒3.4.5unix进程的换进换出概念:动态的对内存中把就绪723.5中断技术3.5.1、中断和中断的类型中断一个进程占有处理器运行时,由于自身或者外界的原因(出现了事件)使运行被打断,让操作系统处理所出现的事件,到适当的时候再让被打断的进程继续运行,这个过程称为"中断"。3.5中断技术73从中断事件的性质出发,中断可以分为两大类:强迫性中断事件包括硬件故障中断,程序性中断,外部中断和输入输出中断等自愿性中断事件是由正在运行的进程执行一条访管指令用以请求系统调用而引起的中断,这种中断也称为"访管中断"。自愿中断的断点是确定的,而强迫性中断的断点可能发生在任何位置。从中断事件的性质出发,中断可以分为两大类:743.5.2中断的响应中断响应(硬件即中断装置操作)处理器每执行一条指令后,硬件的中断位置立即检查有无中断事件发生,若有中断事件发生,则暂停现行进程的执行,而让操作系统的中断处理程序占用处理器,这一过程称为"中断响应"。3.5.2中断的响应中断响应(硬件即中断装置操作)75中断响应过程中,中断装置要做以下三项工作:是否有中断事件发生

判别自愿性中断,只要检查操作码是否为访管指令。

判别强迫性中断,则要检查中断寄存器内容。若为0,则无中断;若非0,则表示有中断事件发生。若有中断发生,保护断点信息

每个程序都有一个程序状态字(PSW)来反映本状态的执行状态,如基本状态、中断码和中断屏蔽位等内容。处理器设有一个"程序状态字寄存器"用来存放当前运行程序的PSW。程序状态字可分为当前PSW、旧PSW和新PSW。

当出现中断事件后,把被中断进程的PSW保存为旧PSW,即完成断点信息保护。启动操作系统的中断处理程序工作

中断装置通过"交换PSW"过程完成此项任务,即把出现的中断事件存放到当前PSW中断码位置,然后把该当前PSW保存为旧PSW,再把操作系统中断处理程序的新PSW送到程序状态字寄存器中,成为当前的PSW。中断响应过程中,中断装置要做以下三项工作:763.5.4中断处理(软件即操作系统操作)操作系统的中断处理程序对中断事件进行处理时,大致要做三方面的工作:保护被中断进程的现场信息

把中断时的通用寄存器,控制寄存器内容及旧PSW保存到被中断进程的进程控制块中。分析中断原因

根据旧PSW的中断码可知发生该中断的具体原因。处理发生的中断事件

一般只做一些简单处理,在多数情况下把具体的处理交给其他程序模块去做。3.5.4中断处理(软件即操作系统操作)773.5.4中断优先级和中断屏蔽(识记)1、中断优先级是硬件设计时确定的。中断装置按预定的顺序来响应同时出现的中断事件,这个预定的顺序称为"中断优先级"。中断优先级是按中断事件的重要性和紧迫程度来确定的,是由硬件设计时固定下来的。一般情况下,优先级的高低顺序依次为:硬件故障中断、自愿中断、程序性中断,外部中断和输入输出中断。3.5.4中断优先级和中断屏蔽(识记)782、中断的嵌套处理3、中断屏蔽的作用。中断优先级只是规定了中断装置响应同时出现的中断的次序,当中断装置响应了某个中断后中断处理程序在进行处理时,中断装置也可能去响应另一个中断事件。因此会出现优先级低的中断事件的处理打断优先级高的中断事件的处理,使得中断事件的处理顺序与响应顺序不一致,而且会形成多重嵌套处理,使多现场保护、程序返回等工作变的复杂。2、中断的嵌套处理79中断屏蔽技术就是为了解决上述问题而提出的在一个中断处理没有结束之前不响应其他中断事件,或者只响应比当前级别高的中断事件。于是,当中断装置检查到有中断事件后,便去查看PSW中中断屏蔽标志,如果没有屏蔽就响应该中断;否则,暂时不响应该中断,待屏蔽标志消除后再响应。自愿中断是不能屏蔽的。中断屏蔽技术就是为了解决上述问题而提出的在一个中断处理没有结803.6UNIX系统的中断技术3.6UNIX系统的中断技术813.7处理器调度(领会)1、进程调度的职责。按选定的进程调度算法从就绪队列中选择一个进程,让它占用处理器。2、选择进程调度算法的几个准则:·提高处理器利用率

·增大吞吐量

·减少等待时间

·缩短响应时间3.7处理器调度(领会)82处理机是计算机系统中的重要资源处理机调度算法对整个计算机系统的综合性能指标有重要影响不同的OS,处理机管理的策略不同可把处理机调度分成三个层次:高级调度中级调度低级调度处理机调度的层次

3.7处理器调度(领会)处理机是计算机系统中的重要资源处理机调度的层次3.783处理机调度的层次

高级调度(宏观调度、作业调度、长程调度)主要功能:根据作业控制块中的信息,审查系统能否满足用户作业的资源需求,以及按照一定的算法,从外存的后备队列中选取某些作业调入内存,并为它们创建进程、分配必要的资源。然后再将新创建的进程插入就绪队列,准备执行。因此,有时也把作业调度称为接纳调度(AdmissionScheduling)。

处理机调度的层次高级调度(宏观调度、作业调度、长程调度)84低级调度(微观调度、进程调度、短程调度)功能:决定就绪队列中的哪个进程(或内核级线程)应获得处理机,然后再由分派程序执行把处理机分配给该进程的具体操作.中级调度(中程调度、交换调度)按照给定的原则和策略,将处于外存交换区中的就绪状态或等待状态的进程调入内存,或把处于内存就绪状态或内存等待状态的进程交换到外存交换区中。目的:提高内存的利用率和系统吞吐量。处理机调度的层次

低级调度(微观调度、进程调度、短程调度)处理机调度的层次85处理机调度的层次

1高级调度(只针对批处理系统)1.作业和作业步(1)作业(Job)=程序+数据+作业说明书系统根据说明书来对程序的运行进行控制。在批处理系统中,以作业为基本单位从外存调入内存的。输入井:磁盘上用来存放作业信息的专用区域后备作业:在输入井中等待处理的作业。

处理机调度的层次1高级调度(只针对批处理系统)86(2)作业步(JobStep)。通常,在作业运行期间,每个作业都必须经过若干个相对独立,又相互关联的顺序加工步骤才能得到结果,我们把其中的每一个加工步骤称为一个作业步,各作业步之间存在着相互联系,往往是把上一个作业步的输出作为下一个作业步的输入。①编译②连结装配③运行

(3)作业流。若干个作业进入系统后,被依次存放在外存上,形成输入的作业流;在操作系统的控制下,逐个作业进行处理,形成处理作业流。

(2)作业步(JobStep)。通常,在作业运行期间87

2.作业控制块JCB(JobControlBlock)是作业在系统中存在的标志保存了系统对作业进行管理和调度所需的全部信息。通常应包含的内容有:作业标识、用户名称、用户帐户、作业类型(CPU繁忙型、I/O繁忙型、批量型、终端型)、作业状态、调度信息(优先级、作业已运行时间)、资源需求(预计运行时间、要求内存大小、要求I/O设备的类型和数量等)、进入系统时间、开始处理时间、作业完成时间、作业退出时间、资源使用情况等。作业的状态作业从输入到完成要经历提交,收容,执行,完成四个阶段。2.作业控制块JCB(JobControlBlock88JCB主要信息JCB主要信息89作业的状态及其转换①提交状态:一个作业被提交给机房后或用户通过终端设备向计算机中输入其作业时所处的状况。②后备状态:作业的全部信息都已输入,并存放在磁盘中等待运行。③运行状态:作业被调度程序选中而被送入主存中投入运行。④完成状态:作业完成其全部运行,释放其所占用的全部资源,准备退出系统。作业的状态及其转换90提交后备运行就绪等待完成作业调度作业调度作业录入作业的状态及转换提交后备运行就绪等待完成作业调度作业调度作业录入作业的状态及91

3.作业调度算法的选择用户:周转时间少最好系统:作业的平均周转时间尽可能少,有利于提高CPU的利用率和系统的吞吐量。既应考虑用户的要求,又能确保系统具有较高的效率。在每次执行作业调度时,都须做出以下两个决定。1)决定接纳多少个作业:多道程序度的确定应根据系统的规模和运行速度等情况做适当的折衷2)决定接纳哪些作业:作业调度算法

3.作业调度算法的选择922低级调度调度的对象是进程(或内核级线程)。进程调度是最基本的一种调度,在多道批处理、分时和实时三种类型的OS中,都必须配置这级调度。1.低级调度的功能低级调度用于决定就绪队列中的哪个进程(或内核级线程)应获得处理机,然后再由分派程序执行把处理机分配给该进程的具体操作。2低级调度93

低级调度的主要功能如下:(1)保存处理机的现场信息。(2)按某种算法选取进程。(3)把处理器分配给进程。低级调度的主要功能如下:942.进程调度中的三个基本机制为了实现进程调度,应具有如下三个基本机制:(1)排队器。就绪进程按照一定的方式排成一个或多个队列(2)分派器(分派程序)。从就绪队列中取出选中进程,然后进行上下文切换,分配处理机。(3)上下文切换机制。当对处理机进行切换时,会发生两对上下文切换操作。在第一对上下文切换时,操作系统将保存当前进程的上下文,而装入分派程序的上下文,以便分派程序运行;在第二对上下文切换时,将移出分派程序,而把新选进程的CPU现场信息装入到处理机的各个相应寄存器中。耗时?怎么办?P862.进程调度中的三个基本机制95进程调度时机正在执行的进程执行完毕。运行中的进程提出I/O请求。执行某原语操作。在可剥夺调度方式中,一个具有更高优先数的进程进入就绪队列。在分时系统中,分配给该进程的时间片已用完

进程调度时机963.进程调度方式(两种)

1)非抢占方式(NonpreemptiveMode)分派程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生某事件而阻塞时,才把处理机分配给另一个进程。优点:实现简单,开销小,适用于大多数的批处理系统环境。缺点:难以满足紧急任务的要求——立即执行3.进程调度方式(两种)972)抢占方式(PreemptiveMode)当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理机,将之分配给其它进程。

优点:公平,能满足对响应时间有着较严格要求的实时任务的需求。缺点:开销较大。原则:(1)优先权(2)短作业(进程)优先(3)时间片选择性剥夺调度2)抢占方式(PreemptiveMode)98

在上述三种调度中,进程调度的运行频率最高,在分时系统中通常是10~100ms便进行一次进程调度,因此把它称为短程调度。为避免进程调度占用太多的CPU时间,进程调度算法不宜太复杂。作业调度往往是发生在一个(批)作业运行完毕,退出系统,而需要重新调入一个(批)作业进入内存时,故作业调度的周期较长,大约几分钟(几小时)一次,因此把它称为长程调度。由于其运行频率较低,故允许作业调度算法花费较多的时间。中级调度的运行频率基本上介于上述两种调度之间,因此把它称为中程调度。

在上述三种调度中,进程调度的运行频率最高,在分时系统中通993.7.2批处理作业的调度算法设计调度算法的原则公平性平衡资源利用极大的流量3.7.2批处理作业的调度算法设计调度算法的原则100周转时间:从作业被提交给系统Si(进入输入井)开始,到作业完成为止Ei的这段时间间隔。Ti=Ei-Si平均周转时间带权周转时间:作业的周转时间T与系统为它提供服务的时间Ts之比,即W=T/Ts3.7.2批处理作业的调度算法周转时间:从作业被提交给系统Si(进入输入井)开始,到作业完101平均带权周转时间:一般,总是T或W小的作业被选中,因为这样资源利用率较高,用户也满意。平均带权周转时间:一般,总是T或W小的作业被选中,因为102作业调

1.先来先服务调度算法

先来先服务(FCFSFirstcomefirstserved

)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。作业调度算法1.先来先服务调度算法103FCFS算法比较有利于长作业,而不利于短作业。下表列出了A、B、C、D四个作业分别到达系统的时间、要求服务的时间、开始执行的时间及各自的完成时间,并计算出各自的周转时间和带权周转时间。FCFS算法比较有利于长作业,而不利于短作业。下表列出了104从表上可以看出,其中短作业C的带权周转时间竞高达100,这是不能容忍的;而长作业D的带权周转时间仅为1.99。据此可知,FCFS调度算法有利于CPU繁忙型的作业,而不利于I/O繁忙型的作业。从表上可以看出,其中短作业C的带权周转时间竞高达100105在此,我们通过一个例子来说明采用FCFS调度算法时的调度性能。图3-4(a)示出有五个进程A、B、C、D、E,它们到达的时间分别是0、1、2、3和4,所要求的服务时间分别是4、3、5、2和4,其完成时间分别是4、7、12、14和18。从每个进程的完成时间中减去其到达时间,即得到其周转时间,进而可以算出每个进程的带权周转时间。在此,我们通过一个例子来说明采用FCFS调度算法时的调度106图3-4

FCFS和SJF调度算法的性能

开始时间开始时间图3-4FCFS和SJF调度算法的性能开始时间开始时间1072.短作业优先调度算法短作业优先调度算法SJF(Shortestjobfirst),是指对短作业优先调度的算法。短作业优先(SJF)的调度算法是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行。

和FCFS调度算法进行比较2.短作业优先调度算法和FCFS调度算法进行比较108

SJF调度算法缺点:(1)该算法对长作业不利,可能出现饥饿现象(2)因而不能保证紧迫性作业会被及时处理。(3)不一定能真正做到短作业优先调度。

SJF调度算法缺点:109作业提交时间执行时间开始时间完成时间周转时间带权周转时间18.002.0028.500.5039.000.1049.500.20平均周转时间t=平均带权周转时间w=FCFS、SJF算法填表(以十进制计)

作业提交时间执行时间开始时间完成时间周转时间带权周转时间181103.高响应比优先调度算法(HRN)

先来先服务和短作业优先算法都有其片面性,先来先服务调度算法只考虑作业的等待时间,而忽视了作业的运行时间,短作业优先算法则相反,只考虑了作业的运行时间,而忽视了作业的等待时间。HRN(HighestResponse-ratioNext)是对FCFS和SJF方式的一种综合平衡。3.高响应比优先调度算法(HRN)111由于等待时间与服务时间之和就是系统对该作业的响应时间,故响应比RP=优先权。据此,又可表示为:

每当要进行调度时,系统计算每个作业的响应比,选择其中RP最大者投入执行。作业A执行时间是1小时,在上午8点到达,10开始调度,则A的响应比是多少?由于等待时间与服务时间之和就是系统对该作业的响应时间,故112由上式可以看出:(1)如果作业的等待时间相同,则要求服务的时间愈短,其优先权愈高,因而该算法有利于短作业。(2)当要求服务的时间相同时,作业的优先权决定于其等待时间,等待时间愈长,其优先权愈高,因而它实现的是先来先服务。

(3)对于长作业,作业的优先级可以随等待时间的增加而提高,当其等待时间足够长时,其优先级便可升到很高,从而也可获得处理机。长短作业都得到照顾,但是增加系统开销。

由上式可以看出:(3)对于长作业,作业的优先级可以113这样算法从理论上讲是比较完备的,但作业调度程序要统计作业的等待时间,使用用户的估计的运行时间,并要作浮点运算(这是系统程序最忌讳的)浪费大量的计算时间,这是系统程序所不允许的。这样算法从理论上讲是比较完备的,但作业调度程序要统计作业的等1144优先调度算法(1)优先权调度算法的类型为了照顾紧迫型作业/进程,使之在进入系统后便获得优先处理,系统将从后备队列中选择若干个优先权最高的作业装入内存。

对每个进程确定一个优先数,该算法总是让优先数最高的进程先使用处理器。对具有相同优先数的进程,再采用先来先服务的次序分配处理器。系统常以任务的紧迫性和系统效率等因素确定进程的优先数。进程的优先数可以固定的,也可随进程执行过程动态变化。一个高优先数的进程占用处理器后,系统处理该进程时有两种方法,一是"非抢占式",另一种是"可抢占式"。前者是此进程占用处理器后一直运行到结束,除非本身主动让出处理器,后者则是严格保证任何时刻总是让优先数最高的进程在处理器上运行。

4优先调度算法115(2)优先权的类型

如何确定?1)静态优先权

作业的优先级确定原则 作业的紧急程度 作业类型 作业要求资源情况(2)优先权的类型1162)动态优先权动态优先权是指在创建进程时所赋予的优先权,是可以随进程的推进或随其等待时间的增加而改变的,以便获得更好的调度性能。改变进程优先级的方式:线形优先级调度策略新创建的进程按FCFS方式排成就绪队列,优先级以a的速率增加,正在执行的进程优先级以b的速率下降。非线形改变优先级规则2)动态优先权1175均衡调度算法根据作业对资源的要求进行分类,作业调度从各类作业中挑选,尽可能使不同资源的作业同时执行。提高资源利用率,减少作业等待时间,加快作业执行。5均衡调度算法1183.7.3进程调度算法常用算法:先来先服务、优先数法、轮转法、分级调度。先来先服务调度算法该算法按进程进入就绪队列的先后次序选择可以占用处理器的进程。优先数调度算法对每个进程确定一个优先数,该算法总是让优先数最高的进程先使用处理器。对具有相同优先数的进程,再采用先来先服务的次序分配处理器。系统常以任务的紧迫性和系统效率等因素确定进程的优先数。进程的优先数可以固定的,也可随进程执行过程动态变化。一个高优先数的进程占用处理器后,系统处理该进程时有两种方法,一是"非抢占式",另一种是"可抢占式"。前者是此进程占用处理器后一直运行到结束,除非本身主动让出处理器,后者则是严格保证任何时刻总是让优先数最高的进程在处理器上运行。

3.7.3进程调度算法119进程的切换进程调度将从就绪队列中另选一个进程占用处理器,使一个进程让出处理器,由另一个进程占用处理器的过程称"进程切换"。若有一个进程从运行态变成等待态,或完成工作后就撤消,则必定会发生进程切换。若一个进程从运行态或等待态变成就绪态,则不一定发生进程切换。进程的切换进程调度将从就绪队列中另选一个进程占用处理器,使120进程的优先级确定原则按进程的类型赋予不同的优先级用户进程类型:I/O忙,CPU忙,I/O与CPU均衡小系统进程类型:调度进程,I/O进程,中断处理,存储各类等大进程对资源的要求少的大用户要求紧急大,付费多的大将作业的静态优先级作为它所属进程的优先级。静态优先权特点:简单易行,系统开销小;不够精确,可能出现优先级低的作业或进程,长期得不到调度。进程的优先级确定原则121时间片轮转法

1)基本原理将CPU的处理时间分成固定大小的时间片,系统将所有就绪进程按先来先服务的原则排成队列。每次调度时,把CPU分配给队首进程,令其执行一个时间片,时间片用完后,若进程未结束,则重新排入就绪队列尾部。2)时间片的划分简单循环轮转调度时间片Q=R/NmaxR:响应时间Nmax:最大进程数

可变时间片轮转调度时间片Q=R/NR:响应时间N:实际进程数[计算机软件及应用]处理器管理课件1222)时间片大小的确定

时间片很小:将有利于短作业,会频繁地发生中断、进程上下文的切换,从而增加系统的开销;

时间片太长,使得每个进程都能在一个时间片内完成,时间片轮转算法便退化为FCFS算法,无法满足交互式用户的需求。若取时间片略大于一次典型的交互所需要的时间,这样可使大多数进程在一个时间片内完成。

2)时间片大小的确定123下图1时间片分别为q=1和q=4时,A、B、C、D、E五个进程的运行情况,而图2为q=1和q=4时各进程的平均周转时间和带权平均周转时间。图中的RR(RoundRobin)表示轮转调度算法。A、B、C、D、E分别在0、1、2、3、4时刻到达,分别需要4、3、4、2、4个单位时间。下图1时间片分别为q=1和q=4时,A、B、C、D、E五个进124图1q=1和q=4时的进程运行情况

A、B、C、D、E?A:4B:3C:4D:2E:4ABCDE图1q=1和q=4时的进程运行情况A、B、C、D、E?125图2q=1和q=4时进程的周转时间

图2q=1和q=4时进程的周转时间126时间片轮转调度法把规定进程一次使用处理器的最长时间称为"时间片"。时间片轮转调度算法让就绪进程按就绪的先后次序排成队列,每次总选择该队列中第一个进程占用处理器,但规定只能使用一个时间片,如该进程尚未完成,则排入队尾,等待下一个供它使用的时间片。各个进程就这样轮转运行。时间片轮转算法经常用于分时操作系统中。

时间片轮转调度法把规定进程一次使用处理器的最长时间称为"时127分级调度(多级反馈队列调度)算法

(1)设置多个就绪队列,并为各个队列赋予不同的优先级。第一个队列的优先级最高,第二个队列次之,其余各队列的优先权逐个降低。该算法赋予各个队列中进程执行时间片的大小也各不相同,在优先权愈高的队列中,为每个进程所规定的执行时间片就愈小。例如,第二个队列的时间片要比第一个队列的时间片长一倍,……,第i+1个队列的时间片要比第i个队列的时间片长一倍。图3是多级反馈队列算法的示意。分级调度(多级反馈队列调度)算法128图

多级反馈队列调度算法

优先级:队列1>队列2>队列3>…>队列nSi=2Si-1时间片到时间片到时间片到时间片到图多级反馈队列调度算法优先级:队列1>队列2>队列3>129多级反馈轮转法设置多个就绪队列,每个队列赋予不同地优先级。队列按FCFS原则排列。各队列时间片不同。当一个新进程进入内存后,首先放在第一队列尾,按FCFS原则调度;如果该时间片内未结束,转入第二队列尾;直到最后的第N队列,在第N队列中便采取按时间片轮转的方式执行(不在转下一个队列了,因为在此队列都执行完了)。仅当第i队列空闲时,才调度第i+1队列。如有新进程进入优先级较高的队列,则剥夺CPU执行新进程,旧进程放入原队列尾多级反馈轮转法130多级反馈队列调度算法性能终端型用户:在第一队列中完成,作业短,交互型。短批处理用户:周转时间较短,通常三个队列即可完成。长批处理作业用户:依次在前N-1个队列中执行,在第N个队列中按轮转方式运行。多级反馈队列调度算法性能131思考:如下调度用的进程状态变迁图,有几个队列?调度算法和调度效果如何?

运行低优先就绪高优先就绪等待首先选择100ms其次选择500ms请求I/OI/O完成超时间片思考:如下调度用的进程状态变迁图,有几个队列?调度算法和调度132队列结构

I/O等待队列——

一个进程如果请求I/O,则进入I/O等待队列。低优先就绪队——一个进程如果在运行中超过了它的时间量就进入低优先就绪队列。高优先就绪队列——当进程从等待状态变为就绪状态时则进入高优先就绪队列。

队列结构133进程调度算法优先调度与时间片调度相结合的调度策略:(1)当CPU空闲时,若高优先就绪队列非空,则从高优先就绪队列中选择一个进程运行,分配时间片为100ms。(2)当CPU空闲时,若高优先就绪队列为空,则从低优先就绪队列中选择一个进程运行,分配时间片为500ms。调度效果优先照顾了I∕O量大的进程;适当照顾了计算量大的进程。进程调度算法1343.7.4UNIX系统的进程调度算法动态优先数调度算法设置法计算法进程调度程序Switch3.7.4UNIX系统的进程调度算法动态优先数调度算法135思考若在操作系统的就绪进程队列中等待运行的共有三个进程P1、P2、P3,已知它们各自的运行时间为a、b、c,且满足关系a<b<c。请证明采用最短作业优先调度算法能够获得最小平均周转时间。思考若在操作系统的就绪进程队列中等待运行的共有三个进程P1、136证明:短作业优先调度,调度顺序为1,2,3,三个作业的总周转时间为:T1=a+(a+b)+(a+b+c)若不按短作业优先调度,采用非时间片轮转法,不失一般性,假设调度顺序为2,1,3,则总周转时间为T2=由此可见,非时间片轮转法中短作业优先调度算法可获得最小平均周转时间。证明:137证明:

假设进程被调度运行的顺序为P1、P2、P3,每个进程的运行时间为T1、T2、T3。若采用非时间片轮转算法,则平均周转时间的计算公式为:平均周转时间=(3T1+2T2+T3)/3=T1+2T2/3+T3/3; 若采用时间片轮转算法,设每个进程需要N1,N2,N3个时间片可以运行完,则周转时间为:

其中Ts为时间片大小平均周转时间=显然可见,采用非时间片轮转的平均周转时间小于采用时间片轮转算法,在各种非时间片轮转的线程调度算法中,保证平均周转时间最小的条件为T1<T2<T3,即遵循最短作业优先的思想调度进程运行。T=【(N1+N1-1+N1-1)+(N2+N1+N2-1)+(N3+N2+N1)】Ts=5T1+3T2+T3-3Ts证明:T=【(N1+N1-1+N1-1)+(N2+N1+N2138复习题1、实现多道设程序设计的前提条件是()。A、成批处理作业B、分时多用户C、设置管、目态D、处理机与外设并行操作2、进程有多个状态,不会发生的状态转换是()A、就绪态转换为运行态B、运行态转换为就绪态C、就绪态转换为等待态D、等待态转换为就绪态3、进程调度算法有多种,不是进程调度算法的算法是()。A、先来先服务调度算法B、最高响应比优先调度算法C、优先数调度算法D、时间片轮转调度算法复习题1、实现多道设程序设计的前提条件是()。1394、多项选择:进程由()组成。A、程序状态字B、程序模块C、就绪队列D、数据集合E、进程控制块5、进程所请求的一次打印输出结束后,将使进程状态从()。A、运行态变为就绪态B、运行态变为等待态C、就绪态变为运行态D、等待态变为就绪态多项选择:引入多道程序设计的主要目的在于()A、提高实时响应速度B、充分利用处理机、减少处理机的空闲时间。C、有利于代码共享D、充分利用外围设备E、减少存储器碎片4、多项选择:进程由()组成。1407、进程存在的标志是__________,从操作系统的角度来看,可将进程分为______________、_____________两大类。8、进程在用完一个器时间片后被强迫进入的等待状态属于_________。9、简答题:进程调度中“可抢占”和“非抢占”两种方式,哪一种系统的开销更大?为什么?10、简答题:简述进程调度的功能。11、简答题:引起进程调度的原因很多,试指出这些原因。7、进程存在的标志是__________,从操作系统的角度来1411、D2、C3、B4、BD5、D6、BD7、进程控制块系统进程用户进程8、就绪态9、这两种方式下,“可抢占”方式的系统开销更大。因为此时系统必须监视每一个进入就绪态进程的优先数,当优先数高于当前运行态进程时就产生中断把更高优先数的进程调入运行,这种情况势必增加进程调度的次数和保护现场的开销。10、在多道程序设计系统中,同时有多个进程处于就绪状态,它们都要求占用处理器运行。进程调度的功能就是们竞争处理器问题的,它按照某种调度算法从就绪队列中选择一个进程,让它占用处理器。11、引起进程调度的原因包括:(1)一个进程从运行状态变成了等待状态。(2)一个进程从运行状态变成了就绪状态。(3)一个进程从等待状态变成了就绪状态(4)一个进程完成工作后被撤消。1、D2、C3、B4、BD5、D6、BD142处理器管理

本章考核知识点:1.多道程序设计2.进程3.进程状态4.进程控制块5.进程队列6.可再入程序7.中断及中断响应8.中断优先级9.进程调度自学要求:通过本章学习应该掌握多道程序设计是如何提高计算机系统效率的;进程与程序有什么区别;进程的基本状态以及状态变化;进程队列及进程调度策略;中断的作用。重点是:多道程序设计;进程的定义和属性;进程调度策略。处理器管理本章考核知识点:1.多道程序设计2.进程3.1433.1、多道程序设计(领会)3.1.1什么是多道程序设计让多个计算问题同时装入一个计算机系统的主存储器并行执行,这种设计技术称“多道程序设计”,这种计算机系统称“多道程序设计系统”或简称“多道系统”。3.1、多道程序设计(领会)144在多道程序设计的系统中,有三点基本要求:用"存储保护"的方法保证各道程序互不侵犯;用"程序浮动"技术让程序能灵活地改变存放区域且能正确执行;必须对资源按一定的策略分配和调度。程序浮动:在多道程序设计系统中,对程序有一些特殊要求,也就是说,程序可以随机地从主存的一个区域移动到另一个区域,程序被移动后仍丝毫不影响它的执行,这种技术称为“程序浮动“在多道程序设计的系统中,有三点基本要求:1453.1.2为什么采用多道程序设计程序的顺序执行程序的并行执行P363.1.2为什么采用多道程序设计程序的顺序执行146多道程序设计利用了系统与外围设备的并行工作能力,从而提高工作效率。具体表现为:提高了处理器的利用率;充分利用外围设备资源:发挥了处理器与外围设备以及外围设备之间的并行工作能力;从总体上说,采用多道程序设计技术后,可以有效地提高系统中资源的利用率,增加单位时间内的算题量,从而提高了吞吐率。多道程序设计利用了系统与外围设备的并行工作能力,从而提高工作1473.1.3采用多道程序设计注意的问题

可能延长程序的执行时间;

并行工作道数与系统效率不成正比从表面上看,增加并行工作道数就可提高系统效率,但实际上并行工作道数与系统效率是不成正比,因为并行的道数要根据系统配置的资源和用户对资源的要求而定:(1)主存储器的大小限制了可同时装入的程序数量;

(2)外围设备的数量也是一个制约条件;

(3)多个程序同时要求使用同一资源的情况也会经常发生。3.1.3采用多道程序设计注意的问题148

总之,多道程序设计能提高系统资源的使用效率,增加单位时间的算题量;但是对每个计算问题来说,从算题开始到全部完成所需要的时间可能延长,另外在确定并行工作道数时应综合系统的资源配置和用户对资源的要求。

149思考多道程序设计环境中,内存中有多个程序,但

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论