计算机操作系统第五章设备管理复习资料

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第五章设备管理

(一)简答题

1、为什么要在设备管理中引入缓冲技术?

解:缓冲技术是用来在两种不同速度的设备之间传输信息时平滑传输过程的常用手段。在OS的设备管理中,引入缓冲技术的主要原因可归结为以下几点。(1)缓和CPU与I/O设备间速度不匹配的矛盾。一般情况下,程序的运行过程是时而进行计算,时而进行输入或输出。以打印机输出为例,如果没有缓冲,则程序在输出时,必然由于打印机的速度跟不上而使CPU停下来等待;然而在计算阶段,打印机又无事可做。如果设置一个缓冲区,程序可以将待输出的数据先输出到缓冲区中,然后继续执行;而打印机则可以从缓冲区取出数据慢慢打印。(2)减少中断CPU的次数。例如,假定设备只用一位二进制数接收从系统外传来的数据,则设备每接收到一位二进制数就要中断CPU一次,如果数据通信速率为9.6Kb/s,则中断CPU的频率也是9.6KHz,即每100us就要中断CPU一次,若设置一个具有8位的缓冲寄存器,则可使CPU被中断的次数降低为前者的1/8。(3)提高CPU和I/O设备之间的并行性。由于在CPU和设备之间引入了缓冲区,CPU可以从缓冲区中读取或向缓冲区写入信息,相应地设备也可以向缓冲区写入或从缓冲区读取信息。在CPU工作的同时,设备也能进行输入输出操作,这样,CPU和I/O设备就可以并行工作。

2、引入缓冲的主要原因是什么?P155

【解】

引入缓冲的主要原因是:

●缓和CPU和I/O设备速度不匹配的矛盾;

●减少对CPU的中断频率,放宽对中断响应时间的限制

●提高CPU和I/O设备之间的并行性。

3、请简述为什么要在核心I/O子系统中要引入缓冲机制(Buffering)。

答:引入缓冲的主要原因:

(1)缓和CPU与I/O设备间速度不匹配的矛盾。

(2)减少对CPU的中断频率,放宽对中断响应时间的限制。

(3)提高CPU与I/O设备之间的并行性。

4、简述SPOOLing(斯普林)系统的工作原理。

解:多道程序并发执行后,可利用其中的一道程序来模拟脱机输入时外围控制机的功能,将低速I/O设备上的数据传送到高速磁盘上;

再利用另一道程序来模拟脱机输出时外围控制机的功能,将高速磁盘上的数据传送到输出设备上,这样就可以在主机的直接控制下,实现脱机输入、输出操作,这时外围操作与CPU对数据的执行同时进行。

4、有如下请求磁盘服务的队列,要访问的磁道分别是98、183、37、122、14、124、6

5、67。现在磁头在53道上,若按最短寻道时间优先法,磁头的移动道数是多少?

解:最短寻道时间优先法总是让查找时间最短的那个请求先执行,而不考虑请求访问者到来的先后时间。即靠近当前移动臂位置的请求访问者将优先执行。当前磁头在53道上,则总的移动道数为:

12 + 2+ 30+ 23+ 84+ 24+ 2+ 59 =236

65 67 37 14 98 122 124 183

5、什么是虚拟设备?请说明SPOOLing系统是如何实现虚拟设备的。

解:虚拟设备是指通过虚拟技术将一台独占设备变换为若干台逻辑设备,供若干个用户进程同时使用,通常把这种经过虚拟技术处理后的设备称为虚拟设备。

SPOOLing系统主要由输入井和输出井(磁盘上)、输入缓冲区和输出缓冲区(内存中)、输入进程和输出进程三部分组成。

当要运行用户程序时,由输入进程将用户要求的程序和数据预先从输入设备经由输入缓冲区送到输入井,当程序运行需要输入数据时,直接从输入井将数据读入内存。

当用户程序要求输出数据时,由输出进程先将数据从内存送到输出井,待输出设备空闲时,再将输出井中的数据经由输出缓冲区送到输出设备上。

由于磁盘是共享设备,输入井及输出井是磁盘上的2个存储区域,因此多个用户进程可以共享使用输入井及输出井,这样,就将独占型设备改造成了可共享使用的虚拟设备。

下面以打印机为例进行说明,当用户进程请求打印输出时,操作系统同意为进程打印,但并不真正把打印机分配给该用户进程,而是为进程在磁盘上的输出井中分配一个空闲区域,并将要打印的数据送入其中,同时还为用户进程申请一张用户请求打印表,将用户的打印要求填入其中,再将该请求打印表挂在请求打印队列上。如果还有进程要求打印输出,系统仍可以接受该请求,也为进程完成上述操作。如果打印机空闲,输出进程将从请求打印队列的队首取出一张请求打印表,根据表中的要求将要打印的数据从输出井传送到内存的输出缓冲区,再由打印机进行打印。打印完成后,输出进程再查看请求打印队列中是否还有请求打印表,若有,则再取出第一张请求打印表,并根据其中的打印要求进行打印,如此重复,直至请求打印队列空为止,输出进程才将自己阻塞起来,直到下次再有打印请求时才被唤醒。

6、在应如何实现I/O的问题上,整个系统可以只设置一个I/O进程,负责系统

内的所有设备的I/O操作。是否还有其他实现方案(至少回答2种)?

解:在不同操作系统中,所采用的设备处理方式并不完全相同。除整个系统设置一个I/O进程这种方式外,还有以下2种方式。

(1)为每一类设备设置一个I/O进程,它专门执行这类设备的I/O操作。例如,为同一类型的打印机设置一个打印进程。

(2)不设置专门的I/O进程,而只为各类设备设置相应的设备处理程序模块,供用户或系统进程调用。

7、简述中断处理过程。

解:当中断发生时,一旦CPU响应中断,系统就开始进行中断处理。中断处理过程如下:

(1)保护被中断进程现场。为了在中断处理结束后能使进程正确地返回到中断点,系统必须保存当前处理机状态字PSW和程序计数器PC等的值。(2)分析中断原因,转去执行相应的中断处理程序。在多个中断请求同时发生时,处理优先级最高的中断源发出的中断请求。

(3)恢复被中断进程的现场,CPU继续执行原来被中断的进程。

8、在某系统中,从磁盘将一块数据输入到缓冲区需要花费的时间为T,CPU对一

块数据进行处理的时间为C,将缓冲区的数据传送到用户区所花时间为M,那么在单缓冲和双缓冲情况下,系统处理大量数据时,一块数据的处理时间为多少?

解:在无缓冲的情况下,为了读取磁盘数据,应先从磁盘把一块数据输入到用户数据区,所花费的时间为T;然后再由CPU对这一块数据进行计算,计算时间为C,所以每一块数据的处理时间为T+C。

(1)在单缓冲的情况下,应先从磁盘把一块数据输入到缓冲区,所花费的时间为T;然后由OS将缓冲区的数据传送到用户区,其所花的时间为M;接下来便由CPU对这一块数据进行计算,计算时间为C。由于CPU的计算操作与磁盘的数据输入操作可以并行,因此一块数据的处理时间为max(C,T)+M

(2)在双缓冲区的情况下,应先从磁盘把一块数据输入到第一个缓冲区,当装满第一个缓冲区后,操作系统可将第一个缓冲区的数据传送到用户区并对第一块数据进行计算时,与此同时可以将磁盘输入数据送入第二个缓冲区;当计算完成后,若第二个缓冲区已装满数据,则又可以将第二个缓冲区中的数据传送至用户区并对第二块数据进行计算时,与此同时可以将磁盘输入数据送入第一个缓冲区,如此反复交替使用2个缓冲区。当C>T时,计算操作比输入操作慢,在此情况下,上一块数据计算完成后,仍需将一个缓冲区中的数据传送到用户区,花费时间为M,再对这块数据进行计算,花费时间为C,所以一块数据的处理时间为C+M,即max(C,T)+M;当C

9、什么是缓冲池?设计一个数据结构来管理缓冲池。

解:缓冲池由多个缓冲区组成,这些缓冲区可供多个进程共享,且既能用于输入又能用于输出。

相关文档
最新文档