操作系统作业 联系客服

发布时间 : 星期三 文章操作系统作业更新完毕开始阅读83f0de1351e79b8969022615

第七章

思考与练习题

1. 数据传输控制方式有哪几种?试比较它们的优缺点。 答:数据传输控制方式有以下四种:

(1) 程序直接控制方式就是由用户进程直接控制CPU与外设之间信息传递。

缺点:①CPU与外设只能串行工作。②CPU在一段时间内只能与一台外设交换数据信息,因此多台外设之间也是串行。③无法发现和处理由于设备和其他硬件所产生的错误。程序直接控制方式只适用于那些CPU执行速度较慢,且外设较少的系统。 (2) 中断控制方式

与程序直接控制方式比较,中断控制方式可以成百倍地提高CPU的利用率,但还存在以下问题: ① 设备控制器的数据寄存器装满数据后,发生中断。在进程传送数据的过程中,发生中断

的次数可能很多,这将消耗CPU的大量处理时间。 ② 计算机的各种外设通过中断方式进行数据传送,由于中断次数的急剧增加会造成CPU

无法响应中断,出现数据丢失现象。 (3) DMA控制方式

采用中断方式时,CPU是以字节为单位进行干预的。如果将这种方式用于块设备I/O,显然是低效的。因此引入DMA控制方式。

局限性:DMA方式对外设的管理和操作仍由CPU控制,多个DMA同时使用显然会引起内存地址的冲突并使得控制过程进一步复杂化。 (4) 通道方式

通道方式是DMA方式的发展,它可以进一步减少CPU干预,即把对一个数据块的读(写)干预减少到对一组数据块的读(写)干预。同时又实现CPU、通道及I/O设备三者的并行工作,从而更有效地提高整个系统的资源利用率。 2. 何谓设备的独立性?如何实现设备的独立性?

答:设备的独立性,也称设备的无关性。其含义是,用户独立于具体使用的物理设备。 为实现设备独立性,系统必须使用能够将用户程序中所使用的逻辑设备名转换成物理设备名。为此需要设置一张逻辑设备表(LUT),该表的每个表目包含逻辑设备、物理设备名和设备驱动程序的入口地址。当以后进程再利用逻辑设备名请求I/O操作时,系统通过查找LUT表,即可找到物理设备和相应设备的驱动程序。逻辑设备表如图:

逻辑设备名物理设备名驱动程序入口地址/dev/tty/dev/print...53...10342056...

3.什么是缓冲?为什么要引入缓冲?操作系统如何实现缓冲技术?

答:缓冲是在通信问题中,为了通信双方的速度匹配引入的一个中间层次,这个层次的速度比通信双方中较慢的一方快,而与较快的一方更匹配。

21

引入缓冲的目的:(1)缓解CPU与I/O设备之间速度不匹配的矛盾。(2)减少中断CPU的次数。(3)提高CPU与I/O设备之间的并行性。

为实现缓冲技术,操作系统在内存中开辟I/O设备缓冲区、文件缓冲区。脱机I/O技术和SPOOLing技术也属于缓冲技术。 4.设备分配中为什么可能出现死锁?

答:在对于不同属性的设备时采用不同的分配方式。对于独占设备,采用独享分配策略,即在将一个设备分配给某个进程以后,便一直由它独占,直到进程完成或释放改设备,然后系统才将该设备分配给其他进程使用。若此时将设备分配给一个进程,它一直占有。其他进程请求设备只能阻塞,设备不释放进程一直阻塞。此时设备利用不充分,还引起死锁。

对于共享设备,在多个进程使用时要合理调度,若多个进程此时都争夺申请该设备就会出现死锁现象。

5.以打印机为例说明SPOOLing技术的工作原理。 答

打印请求表内存输入进程SP1输出进程SP0磁盘输入设备输入缓冲区输出缓冲区输入井输出井打印机

SPOOLing系统组成 当打印机要打印东西时,插入用户的磁盘。此时由输出设备在输出井中为之申请一空闲盘块区,并将要打印的数据送入其中。输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中,再将该表犹如打印队列。当打印机空闲时,输出进程将从请求打印队列上依次取出一张用户请求打印表,根据表中要求将要打印的数据从输出井传送到内存缓冲区,再由打印机进行打印。打印完毕后,输出进程再查看打印队列是否还有等待打印的请求,依次根据要求打印。

6.假设一个磁盘有200个柱面,编号0~199,当前存取臂的位置是在143号柱面上,并刚刚完成了125号柱面的服务请求,如果存在以下请求序列:86、147、91、177、94、150、102、175、130,试问:为完成上述请求,采用下列算法时存取臂的移动顺序是什么?移动总量是多少?

(1)先来先服务(FCFS)。

(2)最短寻道时间优先(SSTF)。 (3)扫描算法(SCAN)。

(4)循环扫描算法(C-SCAN)。

22

以下表格清晰地展示了存取臂的移动顺序:

FCFS 下一个访移动的磁问的磁道 道数 86 147 91 177 94 150 102 175 130 57 61 56 86 83 56 48 73 45 SSTF 下一个访移动的磁问的磁道 道数 147 150 130 102 94 91 86 175 177 4 3 20 28 8 3 5 89 2 SCAN 下一个访移动的磁问的磁道 道数 147 150 175 177 130 102 94 91 86 4 3 25 2 47 28 8 3 5 C-SCAN 下一个访移动的磁问的磁道 道数 147 150 175 177 86 91 94 102 130 4 3 25 2 91 5 3 8 28 移动总量:565 移动总量:162 移动总量:125 移动总量:169 7.磁盘的访问时间分为三部分:寻道访问、旋转数据和数据传输时间。而优先磁盘磁道上的

信息分布能减少输入输出服务的总时间。例如,有一个文件有10个记录A,B,C,…,J存放在磁盘的某一磁道上,假定该磁盘共有10个扇区,每个扇区存放一个记录,安排如表7-4所示。现在要从这个磁道上顺序地将A~J这个记录读出,如果磁盘的旋转速度为20ms转一周,处理程序每读出一个记录要花4ms进行处理。试问: (1)处理完10个记录的总时间为多少?

答:由题知磁盘的旋转速度是20ms则共有10个扇区,每个扇区有一个记录。则读取一个记录的时间为:20ms/10=2ms。此时从A开始读,先读取A记录需要2ms,再处理4ms,共需2ms+4ms=6ms。在处理A时经过4ms 磁盘转动,此时转到D扇区。要想顺序处理A~J记录,就需要在转回B 扇区,就要经过8个扇区共经过:2ms*8=16ms。则处理B所需时间为16ms+2ms+4ms=22ms,C~J均为这样,故所需总时间为22ms*9+6ms=204ms。 (2)为了优化分布缩短处理时间,如何安排这些记录?并计算处理的总时间。 答:为了优化分布缩短处理时间,应该按如下所示安排:

EHKDAIFBGJ

这样安排的话就使A 依次到J读取数据,则处理的总时间:10*(2ms+4ms)=60ms。

表7-4 文件记录的存放 扇区号 1 A 2 B 3 C 4 D 5 E 6 F 7 G 8 H 9 I 10 J 记录号 23

8.假设一个磁盘有100个柱面,每个柱面有10个磁道,每个磁道有15个扇区。当进程的要访问磁盘的12345扇区时,计算该扇区在磁盘的第几柱面、第几磁道、第几扇区?

答:由题知每个柱面有10个磁道,每个磁道有15个扇区,则100个柱面共有10*15=150个扇区,12345/150=82??45则此时12345扇区处于82柱面。45/15=3,则该磁盘处于第82柱面、第2磁道、第15扇区。

9.一个文件记录大小为32B,磁盘输入输出以磁盘块为单位,一个盘块的大小为512B。当用户进程顺序读文件的各个记录时,计算实际启动磁盘I/O占用整个访问请求时间的比例。 答:由题知盘块大小为512B 一个文件记录为32B,此时存放了512B/32B=16个文件,进程顺序读文件的各记录只需要读一次即可,则启动磁盘I/O占用整个访问时间的比例为1/16。 10.如果磁盘扇区的大小固定为512B,每个磁道有80个扇区,一共有4个可用盘面。假设磁盘旋转速度是360rpm。处理机使用中断驱动方式从磁盘读取数据,每字节产生一次中断。如果处理中断需要2.5ms,试问:

(1)处理机花费在处理I/O上的时间占整个磁盘访问时间的百分比是多少(忽略寻道时间)?

答:磁盘的访问时间分为三部分Ts、Tr、Tt 由题知忽略Ts,此时只需要计算Tr、Tt

用360rpm/60s 则每1/6s转一周,则平均旋转时间Tr为1/12s。 Tt为512B/512B*80*6r/s=1/480 ;T=1/12s+1/480s 处理I/O的时间为(512B*2.5ms/1000)s

百分比为(512B*2.5ms/1000)/[1/12s+1/480s+(512B*2.5ms/1000)]=99.9%

(2)采用DMA方式,每个扇区产生一次中断,处理机花费在处理I/O上的时间占整个磁盘访问时间的百分比又是多少?

答:采用DMA方式,CPU只在传输数据的开始和结束干预,数据传送在DMA的控制下完成。

处理机花费在I/O上的时间为2.5ms

此时百分比为(2.5ms/1000)/[1/12s+1/480+(2.5ms/1000)]=96.7%

24