习题44.1强迫性中断与自愿性中断的主要区别是什么?答:强迫性中断这类中断事件是正在运行的程序(进程)所不知的。这类中断的发生与否,何时发生都是事先所无法预知的,因而执行的程序可能在任意位置被打断。自愿性中断这类中断事件是正在运行的程序事先有意识安排的。它们通常由于正在运行的程序执行访管指令(或系统调用)而引起的,其目的是要求系统为其提供某种服务。这类中断的发生具有必然性,而且发生的位置确定。4.2试说明时钟中断对于程序、作业管理的作用。答:①进程管理:在采用时间片轮转处理机调度算法的系统中,记录进程已占用处理机时间,并判断时间片是否用完。在采用可抢占CPU动态优先数处理机调度算法中,重新计算各进程的优先数,并判断是否有高优先数(与当前运行的进程优先数比较)进程出现。②作业管理:记录作业在输入井中等待的时间,以及目前的优先级别,以便作业调度程序据此决定下一个将要进入系统执行的作业。4.3试说明中断是进程切换的必要条件,但不是充分条件。答:进程切换是在系统模式下,是通过硬/软中断进入系统模式的,但中断不一定产生进程切换,如在非强占机制下,尽管发生I/O外部中断使得一个进程可能从阻塞队列进入就绪队列,但不能立刻强占CPU,即发生进程切换。4.4为什么在中断发生时要保存当前被中断进程的PC和PSW,IBMPC机上在中断发生后,硬件上都保存那些内容?答:因为PC和PSW当前进程的CPU现场,是下次运行的初始环境。IBMPC机上在中断发生后,硬件上都保存:CS,IP,PSW。4.5何谓中断向量,用户在多道程序系统下是否可修改中断向量,为什么?答:每个中断处理程序都有一个入口地址(PC←存放于系统固定单元中的地址),及其运行环境(PSW)。当中断事件发生时,中断装置根据中断类别自动地将对应的PSW和PC分别送入程序状态字和程序计数器中,如此便转入到对应的中断处理程序。这个转移类似于向量转移,因而PSW和PC也可以被称为中断向量。用户在多道程序系统下不可修改中断向量,因为中断、中断向量和中断处理程序是由系统控制和管理的,对用户是透明的。4.6你认为在多道程序系统下,用户程序是否可以执行“关中断”和“屏蔽中断”指令,为什么?答:用户程序不可以执行“关中断”和“屏蔽中断”指令,因为中断是由系统控制和管理的,用户不感知中断;否则将造成系统混乱(无统一管理者)。4.7如果没有中断,是否可以实现多道程序设计,为什么?答:不能,因为如果一个进程被调度执行就一直执行下去而不会被打断,就不会存在多个进程交替运行。4.8高级调度与低级调度各自的任务是什么,何时需要中级调度,中级调度的目的是什么?70答:高级调度的任务就是选择一个或多个作业投入系统活动空间中,即从静止空间进入活动空间,准备在CPU上运行。低级调度的任务就是选择一个处在活动空间中的一个就绪进程调度到CPU上执行。在需要进行进程的程序和数据交换时需要中级调度的时机,中级调度的目的就是缓解内存紧张状况,将一个或多个进程的全部或部分程序和数据交换到外存的交换区上。4.9如果系统存在系统级线程,低级调度的单位是什么,如果系统不存在系统级线程,低级调度的单位是什么?答:如果系统存在系统级线程,则低级调度的单位是线程,如果系统不存在系统级线程,低级调度的单位是进程。4.10请你给出低级调度的三个时机,即何时会产生低级调度。答:一个进程执行结束、当前进程由于请求I/O进入阻塞、以及分时系统中时间片到。4.11在抢占方式的系统中,何时会产生抢占?答:当一个进程从阻塞队列进入就绪队列时、以及创建一个新进程时等。4.12判别下列各结论的正确与错误,并说明你的理由(1)若系统限定一个进程在CPU上一次只能执行一个时间片,则系统采用的是抢占式调度方式。正确,因为时间片到是一种强占机制。(2)若只当一个进程执行完了它的任务,系统才重新进行调度,则系统采用的是非抢占式调度方式。正确,因为中间未被打断过(强占)。(3)若现行进程需要等待某个事件时,系统立即将CPU转交给其它进程,则系统采用的是抢占式调度方式。否,因为是由进程主动放弃CPU的。(4)实时系统通常采用抢占式调度方式。正确,因为需要及时响应高级中断事件。4.12解释CPU利用率、吞吐率、作业的周转时间和进程的周转时间,以及作业带权周转时间。答:单位时间内CPU运行时间所占比例。单位时间内完成任务的个数。作业进入系统到完成的时间;进程初始进入就绪队列到完成的时间。作业周转时间与运行时间的比。4.13如果某调度算法获得了平均周转时间昀小,能否说明该算法必定是昀佳的,该结论是否成立?试说明你的理由。答:平均周转时间昀小将导致单位时间内系统吞吐率高,因而该算法是昀佳的。4.14周转时间与响应时间有何不同?答:周转时间一般是指从进入到完成的时间。响应时间一般是指从进入到准备开始响应的时间(分时系统否)。4.15设在批处理系统中,有4道作业,他们进入系统的时刻及运行时间如下:71请分别求出下列算法各作业的执行顺序,以及平均周转时间、带权周转时间。FCFS,SJF,HRN,SRT算法答:FCFS:作业到达时间运行时间开始时间完成时间周转时间带权周转时间A10.02B10.01C10.301D10.500,5作业到达时间运行时间开始时间完成时间周转时间带权周转时间SJF:A10.0210.012.02.01B10.0112.013.03.03C10.30113.014.03.703.7D10.500,514.014.504.083.1753.925作业到达时间运行时间开始时间完成时间周转时间带权周转时间HRN:A10.0212.514.54.52.25B10.0110.011.011C10.30111.512.52.22.2D10.500,511.011.501.022.1751.8625作业到达时间运行时间开始时间完成时间周转时间带权周转时间A10.0210.012.02.01B10.0112.513.53.53.5C10.30113.514.54.24.2D10.500,512.012.502.042.9253.175SRT与SJF同样:4.16请证明SJF算法导致昀短的平均周转时间。答:在长作业之前,优先执行短作业,所减少的短作业的等待时间大于长作业所增加的等待时间,从而,平均等待时间应得到减少;即有下面图示:72长短短长从相关的参考资料(何炎祥主编,计算机操作系统学习指导与习题解答,清华大学出版社)得到的具体解答为:解:假设在某一时刻,有n个作业到达,其服务时间(运行时间)分别为;t1≤t2≤t3。。。,所以响应时间;T(t1)=t1,T(t2)=t1+t2,。。。。因此平均响应时间如下:Tav=∑=+−niitinn1)1(1再假设,作业a和作业b交换执行顺序,且ab,则新响应时间如下:'Tav=n1[nt1+(n-1)t2+…+(n-a+1)tb+…+(n-b+1)ta+…+tn]'Tav-Tav=n1[(n-a+1)tb-(n-a+1)ta+(n-b+1)ta-(n-b+1)tb]=n1(tb-ta)(b-a)由于ab,所以tatb,上式大于0,即按SJF调度平均响应时间昀小(短)。4.17下述结论是否正确?为什么?(1)SJF属于公平调度算法。(2)越短的作业,或进程,应越优先服务。(3)由于SJF优先服务短者,故可用于分时系统。答:(1)不正确,因为SJF属于短作业优先。(2)不正确,应根据系统的追求的目标。(3)正确,分时系统对及时要求不高。4.18假定RR算法调度一个进程所需的CPU时间的平均值为a,讨论下述情况对时间片q不同的设置将导致什么结果,或产生什么影响;(1)q=∝;(2)q稍大于0;(3)q=a;答:(1)q=∝时,相当于FCFS。(2)q稍大于0时,CPU利用率极低。(3)q=a时,CPU利用率=50%4.19实时调度算法中昀重要的参考依据是什么?答:实时调度算法中昀重要的参考依据是截止时间。4.20目前常用的调度算法能否应用到实时系统中?答:不能。4.21在实时系统中,采用不可抢占处理机的优先级调度算法与采用可抢占处理机的优先级调度算法的区别是什么?73答:区别是否存在快速的外部事迹中断响应。可抢占处理机的优先级调度算法要求系统具有快速响应外部事件中断的能力。一旦出现外部中断,只要当前任务未处于临界区,便能立即剥夺当前任务的执行,把处理机分配给请求中断的紧迫任务;而不可抢占处理机的优先级调度算法一旦调度某个进程运行就一直运行下去,直到完成,或自我终止。4.22紧耦合与松散耦合多处理机系统的区别是什么?答:区别就在于是否通过主存进行数据交换。紧耦合是通过主存进行数据交换,而松散耦合是通过通信线进行的数据交换。74