【考研复习】《操作系统原理》孟庆昌等编著课后习题+答案——第六章

前言

 

此书在最后的附录 B 中,有给出部分重难点部分的参考答案。如果想要此书习题答案,可点以下链接:为一个压缩包,以图片形式,习题图片按章节排序,答案图片按书页排序。

《操作系统原理》孟庆昌等编著之课后部分习题+答案(图片版)-其它文档类资源-CSDN文库

但是其余习题,需此书读者在书中找到相应章节处得到答案。

所以,博主此系列文章,只是像做题一般,把未给出答案的部分题目(博主认为有需要写的)做出来,以当作复习,加深理解。

本章中,针对讲解不详细的题目,也有进一步的解析。而且,针对一些计算题的答案,博主将有疑问的,去问了王道老师,尽量保证解题正确(可能会把不是题目要求的但觉得重点的会考的也写上去),如果有不同意见或建议,可留言一起讨论。
 

补充各章节链接:

【考研复习】《操作系统原理》孟庆昌等编著课后习题+答案——第一章

【考研复习】《操作系统原理》孟庆昌等编著课后习题+答案——第二章

【考研复习】《操作系统原理》孟庆昌等编著课后习题+答案——第三章

【考研复习】《操作系统原理》孟庆昌等编著课后习题+答案——第四章

【考研复习】《操作系统原理》孟庆昌等编著课后习题+答案——第五章

【考研复习】《操作系统原理》孟庆昌等编著课后习题+答案——第七章

 一、第六章 设备管理 习题

1. 解释以下术语:存储设备、输入 / 输出设备、串行设备、并行设备、设备绝对地址。

答: (1)存储设备:称为外存后备存储器辅助存储器。主要是计算机用来存储信息的设备。

存储速度比内存慢,但容量比内存大得多,价格相对也便宜。通常包括磁盘(硬盘和软盘)、磁带等,提供了基本的联机信息(程序和数据)的存储。

大多数程序一像编译程序、 汇编程序、排序例程、编辑程序、格式化程序等,都是存放在磁盘
上的,在使用时才调入内存。在这类设备上存储的信息,在物理上往往是按字符块组织的,因此,这类设备也叫做面向块的设备,或简称块设备

(2)输入 / 输出设备

① 输入设备是计算机用来接收来自外部世界信息的设备,例如,终端键盘输入、卡片输入机、纸带输入机等;

② 输出设备是将计算机加工处理好的信息送向外部世界的设备,例如,终端屏幕显示或打印输出部分、行式打印机、卡片输出机等。

由于输入 / 输出设备上的信息往往是以字符为单位组织的,所以这种设备也称为面向字符的设备,或简称字符设备

(3)串行设备:指数据按二进制位一位一位地顺序传送的设备,如键盘、鼠标、USB设备、外置Modem以及老式摄像头和写字板等设备。相应的接口称做串行接口,简称串口,即 COM 接口,是采用串行通信协议的扩展接口。现在的 PC 机一般至少有两个串行口,即 COM1 和 COM2。
 

(4)并行设备:指 8 位数据同时通过并行线进行传送的设备,如打印机、扫描仪、磁盘驱动器、光驱、磁带机等。相应的接口称做并行接口,简称并口

(5)设备绝对地址:系统按某种原则为每台设备分配一个唯一的号码,用做硬件(设备控制器)区分和识别设备的代号,称做设备的绝对号( 或绝对地址 )。它如同内存中每一个单元都有一个地址那样。

【补充】

在多道程序环境中,系统中的设备被多个用户共享,用户并不知道系统中哪台设备忙、哪台设备闲,哪台可用、哪台不可用,只能由操作系统根据当时设备的具体情况决定哪个用户用哪台设备。

这样,用户在编写程序时就不能通过设备绝对号来使用设备,他只需向系统说明他要使用的设备类型,例如,是打印机,还是显示器。

为此,操作系统为每类设备规定了一个编号,称为设备的类型号。例如,在 UNIX / Linux 系统中,类型号称为主设备号。该系统中所有块设备的设备名由两部分构成:主设备号和次设备号,前者表示设备类型,后者表示同类设备中的相对序号。

块设备的设备名主设备号表示设备类型
次设备号表示同类设备中的相对序号

例如,rfd0 和 rfd1 分别表示第一个和第二个软盘驱动器。

用户程序往往会同时使用几台同类设备,并且对每一台设备都可能多次使用。 这样,用户程序必须向操作系统说明当时他要用的设备是哪类设备的第几台。这里的 “ 第几台 ” 是设备相对号,是用户自己规定的所用同类设备中的第几台,应与系统为每台设备规定的绝对号相区别。

用户程序中提出使用设备的申请时,使用系统规定的设备类型号以及用户自已规定的设备相对号,由操作系统进行 “ 地址转换 ”,变成系统中的设备绝对号。

表1 从不同角度的设备分类
按照工作特性存储设备(块设备磁盘(硬盘和软盘)、磁带等
输入 / 输出设备(字符设备

终端键盘输入、行式打印机、卡片输出机等

按设备的使用性质独占设备
共享设备磁盘机、可读写CD-ROM
虚拟设备
按数据传输的方式串行设备键盘、鼠标、USB设备等
并行设备打印机、扫描仪、磁盘驱动器、光驱等
按传输速率的快慢低速设备键盘、鼠标等
中速设备行式打印机、激光打印机等
高速设备磁盘机、 磁带机等
按设备的从属关系系统设备(标准设备)键盘、显示器等
用户设备(非标准设备)绘图仪、扫描仪等

2. 解释:UNIX / Linux 系统中的主、次设备号,块设备,字符设备。

答: 在 UNIX / Linux 系统中,设备作为特殊文件对待,所以用户对设备的使用方式与文件的使用方式相同。系统会根据主、次设备号调用相应的设备驱动程序。

(1)主设备号:表示一个特定的驱动程序,用来区分不同种类的设备

(2)次设备号:表示使用该驱动程序的其他设备,用来区分同一类型的多个设备

(3)块设备:对块设备的存取方式和对文件的存取方式一样, 其实现机制也和字符设备使用的机制相同。

Linux 系统中有一个名为 blkdevs 的结构数组, 它描述了一系列在系统中登记的块设备。 数组blkdevs 也使用设备的主设备号作为索引

该数组元素类型是 device_struct 结构。 该结构中包括指向已登记的设备驱动程序名的指针和指向 block_device_ operations 结构的指针。在 block_device_ operations 结构中包含指向有关操作的函数指针,连接抽象的块设备操作与具体块设备类型的操作之间的枢纽。

与字符设备不一样,块设备有几种类型,如 IDE 设备和 SATA 设备,每类块设备都在 Linux系统内核中登记,并向内核提供自己的文件操作。

为了把各种块设备的操作请求队列有效地组织起来,内核中设置了一个结构数组blk_dev,该数组中的元素类型是 blk_dev_struct 结构。这个结构由三个成分组成,其主体是执行操作的请求队列request_queue 和一个函数指针 queue。当这个指针不为 0 时就调用这个函数来找到具体设备的请求队列,这是考虑到多个设备可能具有同一主设备号的情况,该指针在设备初始化时被设置好。通常当它不为 0 时还要使用该结构中的另一个指针 data,用来提供辅助性信息,帮助该函数找到特定设备的请求队列。

每一个请求数据结构都代表一个来自缓冲区的请求。每当缓冲区要和一个登记过的块设备交换数据,它都会在 blk_dev_struct 中添加一个请求数据结构。

如图 6- 17 所示为块设备驱动程序数据结构示意图。

(4)字符设备:例如打印机、终端,它们都作为字符特殊文件出现在用户面前,用户对字符设备的使用就和存取普通文件一样。在应用程序中,使用标准的系统调用来打开、关闭、读写字符设备。

当字符设备初始化时,其设备驱动程序被添加到由 device_struct 结构组成的 chrdevs 结构数组中。设备的主设备号用来对 chrdevs 数组进行索引。可见下图:

3. 设备分配技术主要有哪些?常用的设备分配算法是什么?

答: 设备分配技术主要有:独占分配、共享分配、虚拟分配。

常用的设备分配算法是:先来先服务、优先级高的优先服务。

5. 操作系统中设备管理的功能是什么?

答: (1)监视设备状态:即记住所有设备、控制器和通道的状态,以便有效地管理、调度和使用它们。

(2)进行设备分配:按设备的类型(是独占的、可共享的、还是虚拟的)和系统中所采用的分配算法,实施设备分配。(完成这一功能的程序称为设备分配程序,或 I/O 调度程序

(3)完成 I/O 操作:在设置有通道的系统中,应根据用户提出的 I/O 请求,构成相应的通道程序。(完成这一功能的程序通常叫做设备驱动程序

(4)缓冲管理与地址转换:为使计算机系统中各个部分充分并行,减少中断次数,大多数 I/O 操作都涉及缓冲区。用户程序应与实际使用的物理设备无关,所以需要将用户在程序中使用的逻辑设备转换成物理设备的地址。

7. 简述 UNIX / Limux系统中处理 I/O 请求的大致步骤。

答: (1)用户进程发出 I/O 请求;

(2)系统接受这个I/O请求,转去执行操作系统的核心程序;

(3)设备驱动程序具体完成 I/O 操作;

(4)I/O 完成后,系统进行 I/O 中断处理,然后用户进程重新开始执行。

8. 为什么要引入缓冲技术?设置缓冲区的原则是什么?

答: 引入缓冲技术的主要目的

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

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

(3) 减少对 CPU 的中断次数,放宽 CPU 对中断响应时间的要求。

设置缓冲区的原则

(1)如果数据到达率与离去率相差很大,则可采用单缓冲方式;

(2)如果信息的输入和输出速率相同(或相差不大) 时,则可用双缓冲区

(3)对于阵发性的输入、输出, 可以设立多个缓冲区。

【补充】

对单缓冲和双缓冲,以及相应的习题,皆在下方链接中(含真题)

【考研】操作系统——高速缓存与缓冲区、设备分配的数据结构_住在阳光的心里的博客

9. 设备驱动程序的主要功能是什么?它在系统中处于什么位置?

答: 设备驱动程序的功能主要有:

(1)接受用户的I/O请求;

(2)取出请求队列中队首请求,将相应设备分配给它;

(3)启动该设备工作,完成指定的I/O操作;

(4)处理来自设备的中断。

设备驱动程序处于操作系统的底层,位于设备控制器的上层,目的是对核心 I/O 子系统隐藏各个设备控制器的差别,实现 I/O 子系统与硬件无关

二、书中附录已有答案(见下图:习题+答案)

4. SPOOLing 系统的主要功能是什么?

答: SPOOLing 系统的主要功能是:将独占设备改造为共享设备,实现虚拟设备功能。
 

6. 处理 I/O 请求的主要步骤是什么?

答: 处理 I/O 请求的主要步骤是:

(1)用户进程发出 I/O 请求

(2)系统接受这个 I/O 请求,转去执行操作系统的核心程序

(3)设备驱动程序具体完成I/O操作;

(4)I/O 完成后,系统进行 I/O 中断处理,然后用户进程重新开始执行。

10. 假设一个磁盘有 200 个磁道,编号为 0 ~ 199。当前磁头正在 143 道上服务,并且刚刚完成了 125 道的请求。如果寻道请求队列的顺序是:86、147、91、177、94、150、102、175、130 为完成上述请求,下列算法各自磁头移动的总量是多少?
(1)FCFS                      (2) SSTF                        (3) 电梯法

答:先简单介绍三种磁盘调度算法的基本概念:

(1)FCFS:先来先服务法。从名字可知,它是根据进程请求访问磁盘的先后顺序进行调度,是最简单,也最容易实现的,但平均来说,并未提供最佳服务。

(2)SSTF:最短寻道时间优先法。选择调度处理的磁道是与当前磁头所在磁道距离最近的磁道,以使每次的寻找时间最短。它不能保证平均寻找时间最小,但能提供比 FCFS 算法更好的性能,会产生“饥饿”现象。

(3)SCAN:电梯法。在磁头当前移动方向上选择与当前磁头所在磁道距离最近的请求作为下一次服务的对象。由于磁头移动规律与电梯运行相似,故又称为电梯调度算法。

此题详细解答可见下图:

(1)FCFS:     

(2)SSTF:       

 (3)电梯法

11. 磁盘请求以 10、22、20、2、 40、6、38 柱面的次序到达磁盘驱动器。寻道时每个柱面移动要 6ms,计算以下寻道次序和寻道时间:
① 先到先服务;                 ②电梯调度算法(起始磁头向柱号增加方向移动)
所有情况下磁臂的起始位置都是柱面 20。

答: 先明确:寻道时间 = 柱面(磁道)移动总量 * 6ms

此题详细解法请见下图:

① 先到先服务算法

 ② 电梯调度算法( 起始磁头向柱号增加方向移动 )

12. 假没有 A、B、C、D,4个记录存放在磁盘的某个磁道上,该磁道划分为 4 块,每块存放一个记录,其布局如表 6-1 所示:

表6-1 记录存放布局
块号1234
记录号ABCD

现在要顺序处理这些记录。如果磁盘旋转速度为 20ms 转一周,处理程序每读出一个记录后花 5ms 的时间进行处理。试问:

(1)处理完这 4 个记录的总时间是多少?

(2)为了缩短处理时间应进行优化分布,试问应如何安排这些记录?并计算处理的总时间。

答:  磁盘旋转速度为 20 ms 转一周,而磁道划分为 4 块,

每块存放一个记录,所以读出一个记录要花 5 ms 的时间

因为读出一个记录后要花 5ms 的时间进行处理

详解可见下图:

【补充和说明】

10ms (移动到记录 A 的平均时间)

加上这一个的原因,据王道老师解释,10ms 是转半圈的时间,因为初始时题目并未说明磁头位置,且磁盘旋转速度为 20ms 转一周,所以要加上半个周期旋转时间,即平均时间就是转一半圈。

而书中的答案是:

优化前处理的总时间 = (5 + 5) + (5 * 3 + 5 + 5) + (5 * 3 + 5 + 5) + (5 * 3 + 5 + 5) = 85 ms

优化后处理的总时间= (5 + 5) + (5 + 5) + ( 5 + 5+ 5) + (5 + 5) = 45

准确来说,应该优化前后的总时间要加上移动到记录 A 的平均时间 10 ms,即以图片答案为准

三、补充习题

例1:一个软盘有 40 个柱面,寻道时移过每个柱面花费 6ms。若不采取任何使文件的块尽量紧密存放的措施,则逻辑上相邻的块平均间隔 13 个柱面。如果采取一项的措施使得文件中相邻的块尽可能地放在一起,则块间的平均间隔是 2 个柱面。

假定读 / 写时找到柱面后平均旋转延迟时间为 100ms,传输速度为每一块 25ms,则在此两种情况下传输一个 100 块的文件各需要多长时间?

【分析】首先,在读第一个块时,无论是紧密存放还是不紧密存放其读取方式都是一致的,但在第二个块开始将发生变化时,它们在柱面间的移动花费的时间并不相同。每个块传输到定位柱面所花费的时间和传输该块所花的时间。

解:读第一块时平均移动柱面为 20 个,需要 20 * 6ms

平均旋转延迟时间为 100ms,传输速率为每块 25ms,

所以读取第一块共需要: 20 * 6ms + 100ms + 25ms = 245 ms

(1)不采用紧密存放

从第 2 块开始,每块的处理时间平均是:13 * 6ms + 100ms + 25ms = 203ms,

所以传输 100 块的文件共需:245ms + 99 * 203ms = 20342ms = 20.3425s。

(2)采用紧密存放

从第 2 块开始,每块的处理时间平均是:2 * 6ms + 100ms + 25ms= 137ms,

所以传输100块的文件共需:245ms + 99 *137ms= 13808ms = 13.8085s.

  • 9
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

住在阳光的心里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值