errno - -retval;retval --1;return retval,A·19
第4章处理机调度1.什么是分级调度?分时统中有作业调度的概念吗?如果没有,为什么?答:处理机调度问题实际上也是处理机的分配问题。显然只有那些参与竞争处理及所必需的资源都已得到满足的进程才能享有竞争处理机的资格。这时它们处于内存就绪状态。这些必需的资源包括内存、外设及有关数据结构等。从而,在进程有资格竞争处理机之前,作业调度程序必须先调用存储管理、外设管理程序,并按一定的选择顺序和策略从输入井中选择出几个处于后备状态的作业·为它们分配资源和创建进程,使它们获得竞争处理机的资格。另外,由于处于执行状态下的作业一般包括多个进程,而在单机系统中,每一时刻只能有一个进程占有处理机,这样,在外存中,除了处于后备状态的作业外,还存在处于就绪状态而等待得到内存的作业。我们要有一定的方法和策略为这部分作业分配空间。因此处理机调度需要分级。一般来说,处理机调度可分为4级:(1)作业调度:又称宏观调度,或高级调度。(2)交换调度:又称中级调度。其主要任务是按照给定的原则和策略,将处于外存交换区中的就绪状态或等待状态或内存等待状态的进程交换到外存交换区。交换调度主要涉及到内存管理与扩充。因此在有些书本中也把它归入内存管理部分。(3)进程调度:又称微观调度或低级调度。其主要任务是按照某种策略和方法选取一个处于就绪状态的进程占用处理机。在确立了占用处理机的进程之后,系统必须进行进程上下文切换以建立与占用处理机进程相适应的执行环境。(4)线程调度:进程中相关堆栈和控制表等的调度。在分时系统中,一般不存在作业调度,而只有线程调度、进程调度和交换调度。这是因为在分时系统中,为了缩短响应时间,作业不是建立在外存,而是直接建立在内存中。在分时系统中,一用户和系统的交互开始,用户马上要进行控制。因此,分时系统中没有作业提交状态和后备状态。分时系统的输入信息经过终端缓冲区为系统直接接收,或立即处理,或经交换调度暂存外存中。2.试述作业调度的主要功能。答:作业调度的主要功能是:按-一定的原则对外存输入井上的大量后备作业进行选择,给选出的作业分配内存、输入输出设备等必要的资源,并建立相应进程,使该作业的相关进程获得竞争处理机的权利。另外,当作业执行完毕时,还负责回收系统资源。3.作业调度的性能评价标准有哪些?这些性能评价标准在任何情况下都能反映调度策略的优劣吗?答:对于批处理系统,由于主要用于计算,因而对于作业的周转时间要求较高。从而作业的平均周转时间或平均带权周转时间被用来衡量调度程序的优劣。但对于分时系统来说,·20·
平均响应时间又被用来衡量调度策略的优劣。对于分时系统,除了要保证系统吞吐量大、资源利用率高之外,还应保证用户能够容忍的响应时间。因此,在分时系统中,仅仅用周转时间或带权周转时间来衡量调度性能是不够的。对于实时系统来说,衡量调度算法优劣的主要标志则是满足用户要求的时限时间。4.进程调度的功能有哪些?答:进程调度的功能有:(1)记录和保存系统中所有进程的执行情况;(2)选择占有处理机的进程;(3)进行进程上下文切换。5.进程调度的时机有哪几种?答:进程调度的时机有:(1)正在执行的进程执行完毕。这时如果不选择新的就绪进程执行,将浪费处理机资源。(2)执行中进程自已调用阻塞原语将自已阻塞起来进入睡眠等待状态。(3)执行中进程调用了P原语操作,从而困资源不足而被阻塞,或调用了V原语操作激活了等待资源的进程队列。(4)执行中进程提出1/O请求后被阻塞。(5)在分时系统中时间片已经用完。(6)在执行完系统调用等系统程序后返回用户程序时,可看做系统进程执行完毕,从而调度选择一新的用户进程执行。在CPU执行方式是可剥夺时,还有:(7)就绪队列中的某进程的优先级变得高于当前执行进程的优先级,从而也将引发进程调度。6.进程上下文切换由哪几部分组成?描述进程上下文切换过程。答:进程上下文切换由以下4个步骤组成:(1)决定是否作上下文切换以及是否允许作上下文切换。包括对进程调度原因的检查分析,以及当前执行进程的资格和CPU执行方式的检查等。在操作系统中,上下文切换程序并不是每时每刻都在检查和分析是否可作上下文切换,它们设置有适当的时机。(2)保存当前执行进程的上下文。这里所说的当前执行进程,实际上是指调用上下文切换程序之前的执行进程。如果上下文切换不是被那个当前执行进程所调用,且不属于该进程,则所保存的上下文应是先前执行进程的上下文,或称为“老”进程上下文。显然,上下文切换程序不能破坏“老”进程的上下文结构。(3)使用进程调度算法,选择一一处于就绪状态的进程。(4)恢复或装配所选进程的上下文.将CPU控制权交到所选进程手中。: 21
7.为什么说在进程上下文切换过程中,上下文切换程序不能破坏“老”进程的上下文结构?答:因为如果在进程上下文切换中破坏了老的进程上下文,等到CPU调度到该老进程执行时,就不能正确地恢复其停止执行前的状态了。8.设有4道作业,它们的提交时间及执行时问由表E1.2给出。表E1.2作业号提交时刻(时)执行时问(小时)1210:002110#2030. 510:40410:500. 3计算在单道程序环境下,采用先来先服务调度算法和最短作业优先调度算法时的平均周转时间和平均带权周转时间.并指出它们的调度顺序。答:(1)先来先服务调度:顺序:1.Ts1=1000Te1=12:00T1 = 2.00Twl - 02. Ts2 = 10 : 20Te2=13:00T2 = 1.00Tw2 = 1. 703.Ts31040Te3=13:30T3= 0.50Tw3 = 2.304.Ts4=10150Te4=13150T4 = 0. 30Tw4 = 2. 70T=0.25(2+2.7+2.8+3)=2.625hW-0.25*(4+0+1.7/1+2.3/0.5+2.7/0.3)=4.825(2)最短作业优先调度顺序:1.Ts4-10:50Te4 =10:80T4 = 0. 3Tw4 = 02.Ts3=10140Te3 = 11 : 40T3 = 0. 5Tw3 = 0. 53. Ts2 10 20Te212:40T2 = 1Tw2 = 1.34.TsI=10:00Tel = 1440T1=2Twl = 2.7T=0.25*(0.3+1+2.3+4.7)=2.075hW=0.25*(4+0+1+1.3+2.7/2)=1.91259.设某进程所需要的服务时间t一k*q·其中,k为时间片的个数q为时间片长度且为常数。当t为一定值时,今α超于0,则有k超于无穷,从而服务时间为t的进程响应时间T为t的迹续函数。对应于时间片调度方式RR、先来先服务方式FCFS和线性优先级调度方式SRR,其响应时问函数分别为:Trr(t) - t * μ/(μ->)Tfe(t) = 1/(μ-^)Tsr(t) = 1/ (μ-x) - (1 - T *μ)/(μ-x)其中X=(1—b/a)*入r*入.22
取(入,μ)=(50,100)和(入,μ)=(80.100),分别改变r的值,画出Trr(t)、Tfc(t)和Tsr(t)的时间变化图。答:(1)对(入,μ)=(50100),则Tsr(t)1/50-(1-100t)/(100-50r)Trr(t) = t,Tfc(t)1/50,r→+0时.Tsr(t) = 1/100 + t;r-1时,Tsr(t) 2t 。时间变化图如图E1.2所示。n(r=1)Trr()Tie(e)1/100Vt0(c)(b)(a)图E1.2只有Tsr(t)受r值影响。且r增大时,Tsr(t)斜率增大.服务时间也增加。(2)对(入,μ)=(80,100),有Tfe(t)=1/20.Tsr():=1/20-(1—100)/(100—80r)Trr(t) = 5t,T-+0时,Tsr(t)-+1/2s+t;r-→1 时,Tsr(t)→5t .时间变化图如图E1.3所示。y4VTrr(t)=5tTfe(t)1/25+t1/251/2000at-(a)(b)(c)图E1.3Tsr(t)的斜率随r增大而增大:截距由1/25到0逐渐移动。10.什么是多处理机系统?并行处理系统、计算机网络、分布式系统和多处理机系统的操作系统之间有何区别?答:从广义上说使用多台处理机协调工作,来完成用户所要求任务的计算机系统都是多处理机系统。狭义的多处理机系统是利用系统内的多个CPU来并行执行用户的几个程序,以提高系统的吞吐量;或用来进行允余操作,以提高系统的可靠性。-23