第五章设备管理(一)简答题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、65、67。
现在磁头在53道上,若按最短寻道时间优先法,磁头的移动道数是多少?解:最短寻道时间优先法总是让查找时间最短的那个请求先执行,而不考虑请求访问者到来的先后时间。
即靠近当前移动臂位置的请求访问者将优先执行。
当前磁头在53道上,则总的移动道数为:12 + 2+ 30+ 23+ 84+ 24+ 2+ 59 =23665 67 37 14 98 122 124 1835、什么是虚拟设备?请说明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<T时,输入操作比计算操作慢,在此情况下,由于M 远小于T,故在将磁盘上的一块数据传送到一个缓冲区期间(花费时间为T),计算机已完成了将另一个缓冲区中的数据传送到用户区并对这块数据进行计算的工作,所以一块数据的处理时间为T,即max(C,T)。
9、什么是缓冲池?设计一个数据结构来管理缓冲池。
解:缓冲池由多个缓冲区组成,这些缓冲区可供多个进程共享,且既能用于输入又能用于输出。
缓冲池中至少应包含3个缓冲队列和4类工作缓冲区,如下图。
缓冲池中的3个缓冲队列如下:(1) 空缓冲队列:由系统中的空闲缓冲区组成;(2) 输入队列:由装满输入数据的缓冲区组成队列,输入设备已将这些缓冲区中装满了输入数据等待CPU 处理;(3) 输出队列:由装满输出数据的缓冲区组成,这些数据等待输出设备输出。
缓冲池中的4类工作缓冲区如下:(1)收容输入工作缓冲区:用于收容来自输入设备的数据;(2)提取输入工作缓冲区:供CPU 从中提取输入数据进行计算;(3)收容输出工作缓冲区:用于收容CPU 要输出的计算结果;(4)提取输出工作缓冲区:供输出设备从中提取数据进行输出。
当输入设备欲输入数据时,便从空缓冲区队列的队首摘下一个空缓冲区,作为收容输入工作缓冲区,然后把数据输入其中,装满后再将它挂到输入队列队尾。
当CPU 需要数据处理时,便从输入队列取得一个缓冲区作为提取输入工作缓空缓冲区队列…装满输入数据的缓冲区队列收容输出工作缓冲区…装满输出数据的缓冲区队列冲区,CPU从中提取数据,数据用完后再将它挂到空缓冲队列尾。
当CPU欲输出结果时,便从空缓冲队列的队首取得一个空缓冲,作为收容输出工作缓冲区,当其中装满输出数据后,再将它挂到输出队列尾。
当输出设备欲输出结果时,由输出进程从输出队列中取得一个装满输出数据的缓冲区,作为提取输出工作缓冲区,当数据提取完后,再将它挂到空缓冲队列的末尾。
如此周而复始不停地工作,任何进程都可使用缓冲池中的缓冲区。
10、在某计算机系统中,其屏幕显示分辨率为1024×768,若要存储一屏256彩色的图像,需要多少字节存储空间?解:屏幕信息的显示是以像素为单位进行的。
由于屏幕显示分辨率为1024×768,故屏幕上有像素:1024×768=768×210个。
当用256彩色显示时,每个像素需要8位二进制数(28=256)表示,因此一屏信息需要存储空间:8×768×210位=768×210字节=768K字节,所以需要768K字节存储空间。
11、为什么在操作系统中要引入虚拟设备?解:在操作系统设备管理中,引入虚拟设备是为了克服独占设备速度较慢、设备资源利用率较低的缺点,从而提高设备的利用率。
12、假脱机系统的基本工作原理是什么?解:假脱机技术主要由输入程序模块和输出程序模块所组成,系统分别为之创建输入进程和输出进程,它们的优先级高于一般用户进程。
输入进程负责通过通道将信息从输入设备送到盘区的输入井中,输出进程负责通过通道将信息从盘区的输出井送到输出设备。
主机仅和快速存储设备磁盘中的输入井和输出井交换信息,大大提高了信息处理的速率。
13、什么是逻辑设备?什么是物理设备?如何实现从逻辑设备到物理设备的转换?解:用户程序中使用的设备是逻辑设备,计算机系统中实际配置的设备是物理设备。
在OS中,通常设置了反映逻辑设备和物理设备对应关系的数据结构,其中存放了逻辑设备名、物理设备名及设备驱动程序入口地址等信息,通过该数据结构即可实现逻辑设备到物理设备的转换。