1、期末复习一、问答题1什么是“多道程序设计”技术?它对操作系统的形成起到什么作用?答:所谓“多道程序设计”技术,即是通过软件的手段,允许在计算机内存中同时存放几道相互独立的作业程序,让它们对系统中的资源进行“共享”和“竞争”,以使系统中的各种资源尽可能地满负荷工作,从而提高整个计算机系统的使用效率。基于这种考虑,计算机科学家开始把CPU、存储器、外部设备以及各种软件都视为计算机系统的“资源”,并逐步设计出一种软件来管理这些资源,不仅使它们能够得到合理地使用,而且还要高效地使用。具有这种功能的软件就是“操作系统”。所以,“多道程序设计”的出现,加快了操作系统的诞生。2对于分时系统,怎样理解“从宏观
2、上看,多个用户同时工作,共享系统的资源;从微观上看,各终端程序是轮流运行一个时间片”?答:在分时系统中,系统把CPU时间划分成许多时间片,每个终端用户可以使用由一个时间片规定的CPU时间,多个用户终端就轮流地使用CPU。这样的效果是每个终端都开始了自己的工作,得到了及时的响应。也就是说,“从宏观上看,多个用户同时工作,共享系统的资源”。但实际上,CPU在每一时刻只为一个终端服务,即“从微观上看,各终端程序是轮流运行一个时间片”。3作业调度与进程调度有什么区别?答:作业调度和进程调度(即CPU调度)都涉及到CPU的分配。但作业调度只是选择参加CPU竞争的作业,它并不具体分配CPU。而进程调度是在
3、作业调度完成选择后的基础上,把CPU真正分配给某一个具体的进程使用。4系统调用与一般的过程调用有什么区别?答:系统调用是指在用户程序中调用操作系统提供的功能子程序;一般的过程调用是指在一个程序中调用另一个程序。因此它们之间有如下三点区别。(1)一般的过程调用,调用者与被调用者都运行在相同的CPU状态,即或都处于目态(用户程序调用用户程序),或都处于管态(系统程序调用系统程序);但发生系统调用时,发出调用命令的调用者运行在目态,而被调用的对象则运行在管态,即调用者与被调用者运行在不同的CPU状态。(2)一般的过程调用,是直接通过转移指令转向被调用的程序;但发生系统调用时,只能通过访管指令提供的一
4、个统一的入口,由目态进入管态,经分析后,才转向相应的操作系统命令处理程序。(3)一般的过程调用,在被调用者执行完后,就径直返回断点继续执行;但系统调用可能会导致进程状态的变化,从而引起系统重新分配处理机。因此,系统调用处理结束后,不一定是返回调用者断点处继续执行。5为什么请求分页式存储管理能够向用户提供虚拟存储器?答:请求分页式存储管理的基本思想是:操作系统按照存储块的尺寸,把用户作业地址空间划分成页,全部存放在磁盘上。作业运行时,只先装入若干页。运行过程中遇到不在内存的页时,操作系统就把它从磁盘调入内存。这样一来,用户的作业地址空间无需顾及内存的大小。这与虚拟存储器的思想是完全吻合的。所以,
5、请求分页式存储管理能够向用户提供虚拟存储器。6试述缺页中断与一般中断的区别。答:在计算机系统中,由于某些事件的出现,打断了当前程序的运行,而使CPU去处理出现的事件,这称为“中断”。通常,计算机的硬件结构都是在执行完一条指令后,去检查有无中断事件发生的。如果有,那么就暂停当前程序的运行,而让CPU去执行操作系统的中断处理程序,这叫“中断响应”。CPU在处理完中断后,如果不需要对CPU重新进行分配,那么就返回被中断进程的程序继续运行;如果需要进行CPU的重新分配,那么操作系统就会去调度新进程。由上面的讲述可以看出,缺页中断与一般中断的区别如下。(1)两种中断产生的时刻不同:缺页中断是在执行一条指
6、令中间时产生的中断,并立即转去处理;而一般中断则是在一条指令执行完毕后,当硬件中断装置发现有中断请求时才去响应和处理。(2)处理完毕后的归属不同:缺页中断处理完后,仍返回到原指令去重新执行,因为那条指令并未执行;而一般中断则是或返回到被中断进程的下一条指令去执行,因为上一条指令已经执行完了,或重新调度,去执行别的进程程序。7设备管理的主要功能是什么?答:设备管理的主要功能是:(1)提供一组I/O命令,以便用户进程能够在程序中提出I/O请求,这是用户使用外部设备的“界面”;(2)记住各种设备的使用情况,实现设备的分配与回收;(3)对缓冲区进行管理,解决设备与设备之间、设备与CPU之间的速度匹配问
7、题;(4)按照用户的具体请求,启动设备,通过不同的设备驱动程序,进行实际的I/O操作;I/O操作完成之后,将结果通知用户进程,从而实现真正的I/O操作。8启动磁盘执行一次输入/输出操作要花费哪几部分时间?哪个时间对磁盘的调度最有影响?答:执行一次磁盘的输入/输出操作需要花费的时间包括三部分:(1)查找时间;(2)等待时间;(3)传输时间。在这些时间中,传输时间是设备固有的特性,无法用改变软件的办法将它改进。因此,要提高磁盘的使用效率,只能在减少查找时间和等待时间上想办法,它们都与I/O在磁盘上的分布位置有关。由于磁臂的移动是靠控制电路驱动步进电机来实现,它的运动速度相对于磁盘轴的旋转来讲较缓慢
8、因此,查找时间对磁盘调度的影响更为主要。9如果一个文件系统没有提供显式的打开命令(即没有OPEN命令),但又希望有打开的功能,以便在使用文件时能减少与磁盘的交往次数。那么应该把这一功能安排在哪个系统调用里合适?如何安排?答:文件系统中设置打开命令的根本目的,是减少文件操作时与磁盘的交往次数。如果系统没有提供显式的打开命令,但又要能减少与磁盘的交往次数,那么只需把这一功能安排在读或写系统调用命令里。这时,在读、写命令功能前面添加这样的处理:总是先到内存的活动目录表里查找该文件的FCB。如果找到,则表明在此前文件已经被打开,于是就可以立即进行所需要的读、写操作;如果没有找到,那么表明在此前文件还
9、没有打开。于是应该先按照文件名,到磁盘上去查找该文件的FCB,把它复制到内存的活动目录表里,然后再进行对它的操作。10为什么在使用文件之前,总是先将其打开后再用?答:有关文件的信息都存放在该文件的FCB里,只有找到文件的FCB,才能获得它的一切信息。但FCB是在磁盘里。因此,只要对文件进行操作,就要到磁盘里去找它的FCB。这种做法,无疑影响了文件操作的执行速度。正因为如此,操作系统才考虑在对文件进行操作前,先将其打开,把文件的FCB内容复制到内存中来。这样,查找文件的FCB,就不必每次都要去访问磁盘。二、计算题1设有一组作业,它们的到达时间和所需CPU时间如下所示。作业号到达时间所需CPU时间
10、19:0070分钟29:4030分钟39:5010分钟410:105分钟分别采用先来先服务和短作业优先作业调度算法。试问它们的调度顺序、作业周转时间以及平均周转时间各是什么?解:(1)采用先来先服务作业调度算法时的实施过程如下。作业号到达时间所需CPU时间开始时间完成时间周转时间19:0070分钟9:0010:1070分钟29:4030分钟10:1010:4060分钟39:5010分钟10:4010:5060分钟410:105分钟10:5010:5545分钟这时,作业的调度顺序是1234。其平均周转时间为:(70 + 60 + 60 + 45)/ 4 = 58.75 (2)采用短作业优先作业调
11、度算法时的实施过程如下。作业号到达时间所需CPU时间开始时间完成时间周转时间19:0070分钟9:0010:1070分钟410:105分钟10:1010:155分钟39:5010分钟10:1510:2535分钟29:4030分钟10:2510:5575分钟这时,作业的调度顺序是1432。其平均周转时间为:(70 + 5 + 35 + 75)/ 4 = 46.252某系统有三个作业:作业号到达时间所需CPU时间18.81.529.00.439.51.0系统确定在它们全部到达后,开始采用响应比高者优先调度算法,并忽略系统调度时间。试问对它们的调度顺序是什么?各自的周转时间是多少?解:三个作业是在9
12、5时全部到达的。这时它们各自的响应比如下:作业1的响应比 =(9.5 8.8)/ 1.5 = 0.46作业2的响应比 =(9.5 9.0)/ 0.4 = 1.25作业3的响应比 =(9.5 9.5)/ 1.0 = 0因此,最先应该调度作业2运行,因为它的响应比最高。它运行了0.4后完成,这时的时间是9.9。再计算作业1和3此时的响应比:作业1的响应比 =(9.9 8.8)/ 1.5 = 0.73作业3的响应比 =(9.9 9.5)/ 1.0 = 0.40因此,第二个应该调度作业1运行,因为它的响应比最高。它运行了1.5后完成,这时的时间是11.4。第三个调度的是作业3,它运行了1.0后完成,
13、这时的时间是12.4。整个实施过程如下。作业号到达时间所需CPU时间开始时间完成时间周转时间29.00.49.59.90.918.81.59.911.42.639.51.011.412.42.9作业的调度顺序是213。各自的周转时间为:作业1为0.9;作业2为2.6;作业3为2.9。3某请求分页式存储管理系统,接收一个共7页的作业。作业运行时的页面走向如下: 1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6若采用最近最久未用(LRU)页面淘汰算法,作业在得到2块和4块内存空间时,各会产生出多少次缺页中断?如果采用先进先出(FIFO)页面淘汰算法时,结果又如何?解:
14、1)采用最近最久未用(LRU)页面淘汰算法,作业在得到2块内存空间时所产生的缺页中断次数为18次,如图3-3(a)所示;在得到4块内存空间时所产生的缺页中断次数为10次,如图3-3(b)所示。图3-3 LRU时的情形(2)采用先进先出(FIFO)页面淘汰算法,作业在得到2块内存空间时所产生的缺页中断次数为18次,如图3-4(a)所示;在得到4块内存空间时所产生的缺页中断次数为14次,如图3-4(b)所示。图3-4 FIFO时的情形关于先进先出(FIFO)页面淘汰算法,在给予作业更多的内存块时,缺页中断次数有可能上升,这是所谓的异常现象。但要注意,并不是在任何情况下都会出现异常。是否出现异常,
15、取决于页面的走向。本题所给的页面走向,在FIFO页面淘汰算法下,并没有引起异常:2块时缺页中断次数为18次,4块时缺页中断次数为14次。4系统内存被划分成8块,每块4KB。某作业的虚拟地址空间共划分成16个页面。当前在内存的页与内存块的对应关系如下表所示,未列出的页表示不在内存。页 号块 号页 号块 号02441153269530117试指出对应于下列虚拟地址的绝对地址:(a)20(b)4100(c)8300解:(a)虚拟地址20对应的页号是0,页内位移是20。用0去查页表,知道第0页现在存放在内存的第2块。由于每块的长度是4KB,所以第2块的起始地址为8192。因此,虚拟地址20所对应的绝对
16、地址是: 8192+20=8212(b)虚拟地址4100对应的页号是: 4100/4096=1(“/”是整除运算符)对应的页内位移是: 4100%4096=4(“%”是求余运算符)用1去查页表,知道第1页现在存放在内存的第1块。第1块的起始地址为4096。因此,虚拟地址4100所对应的绝对地址是: 4096+4=4100(c)虚拟地址8300对应的页号是: 8300/4096=2(“/”是整除运算符)对应的页内位移是: 8300%4096=108(“%”是求余运算符)用2去查页表,知道第2页现在存放在内存的第6块。第6块的起始地址为 64K=24576因此,虚拟地址8300所对应的绝对地址是
17、24576+108=246845磁盘请求以10、22、20、2、40、6、38柱面的次序到达磁盘驱动器。移动臂移动一个柱面需要6ms,实行以下磁盘调度算法时,各需要多少总的查找时间?假定磁臂起始时定位于柱面20。(a)先来先服务;(b)最短查找时间优先;(c)电梯算法(初始由外向里移动)。解:(a)先来先服务时,调度的顺序是20102220240638,总共划过的柱面数是: 10+12+2+18+38+34+32=146因此,总的查找时间为:1466=876ms。(b)最短查找时间优先时,调度的顺序是202210623840(由于磁臂起始时定位于柱面20,所以可以把后面第20柱面的访问立即进行
18、总共划过的柱面数是: 2+12+4+4+36+2=60 因此,总的查找时间为:606=360ms。(c)电梯算法(初始由外向里移动)时,调度的顺序是202238401062(由于磁臂起始时定位于柱面20,所以可以把后面第20柱面的访问立即进行),总共划过的柱面数是: 2+16+2+30+4+4=58因此,总的查找时间为:586=348ms。6假定磁盘的移动臂现在处于第8柱面。有如下表所示的6个I/O请求等待访问磁盘,试列出最省时间的I/O响应次序。序 号柱 面 号磁 头 号扇 区 号1963275631520649445209567152解:由于移动臂现在处于第8柱面,如果按照“先来先服务
19、调度算法,对这6个I/O的响应次序应该是897159207;如果是按照“最短查找时间优先”调度算法,对这6个I/O的响应次序可以有两种,一是8971520(到达9时完成1和4的请求,到达7时完成2和6的请求),二是8791520(到达7时完成2和6的请求,到达9时完成1和4的请求);如果按照“电梯”调度算法,对这6个I/O的响应次序可以有两种,一是8915207(由里往外的方向,到达9时完成1和4的请求,到达7时完成2和6的请求),二是8791520(由外往里的方向,到达7时完成2和6的请求,到达9时完成1和4的请求);如果按照“单向扫描”调度算法,对这6个I/O的响应次序是89152007。对比后可以看出,实行8791520的响应次序会得到最省的时间,因为这时移动臂的移动柱面数是: 1+2+6+5 = 14