05. 【解答】
2026 旧版 · 非 2027 主源 · 原书检索 · 文字用于定位,公式与图表请回原页核验 · 本次导入快照
# 05. 【解答】
磁盘逆时针方向旋转按扇区来看即 0, 3, 6, … 这个顺序。每个号码连续的扇区正好相隔 2 个扇区,即数据从控制器传送到内存的时间,所以相当于磁头连续工作。
1)由题中条件可知,旋转速度为 3000 转/分 = 50 转/秒,即 $20\mathrm{ms}/\mathrm{转}$。
读一个扇区需要的时间为 $20/8 = 2.5\mathrm{ms}$。
读一个扇区并将扇区数据送入内存需要的时间为 $2.5 \times 3 = 7.5\mathrm{ms}$。
所以读出一个磁道上的所有扇区需要的时间为 $20/2 + 8 \times 7.5 = 70\mathrm{ms} = 0.07\mathrm{s}$。
2)每个磁道的数据量为 $8 \times 512 = 4\mathrm{KB}$。
所以数据传输速率为 $4\mathrm{KB}/0.07\mathrm{s} = 4 \times 1024\mathrm{kB}/(1000 \times 0.07\mathrm{s}) = 58.5\mathrm{kB/s}$。
# 注意
表示存储容量。文件大小时,K 等于 1024(通常用大写的 K);表示传输速率时,k 等于 1000(通常用小写的 k),注意区别。
<!-- page: 369 -->
06. 【解答】
1)用位图表示磁盘的空闲状态。每位表示一个磁盘块的空闲状态,共需 $16384 / 32 = 512$ 个字 $= 512 \times 4\mathrm{B} = 2\mathrm{KB}$,正好可放在系统提供的内存中。
2)采用C-SCAN调度算法,访问磁道的顺序和移动的磁道数如下表所示:
[tbl-152.md](tbl-152.md)
移动的磁道数为 $20 + 90 + 20 + 40 = 170$,因此总的移动磁道时间为 $170\mathrm{ms}$。
转速为6000转/分,因此平均旋转延迟为 $5\mathrm{ms}$,总的旋转延迟时间 $= 20\mathrm{ms}$。
转速为6000转/分,因此读取一个磁道上的一个扇区的平均读取时间为 $0.1\mathrm{ms}$,扇区的平均读取时间为 $0.1\mathrm{ms}$,总的读取扇区的时间为 $0.4\mathrm{ms}$。
综上,读取上述磁道上所有扇区所花的总时间为 $190.4\mathrm{ms}$。
3)采用先来先服务(FCFS)调度策略更高效。因为Flash半导体存储器的物理结构不需要考虑寻道时间和旋转延迟,可直接按I/O请求的先后顺序服务。
07. 【解答】
1)磁盘容量 = 磁盘的柱面数 × 每个柱面的磁道数 × 每个磁道的扇区数 × 每个扇区的大小 = $(300 \times 10 \times 200 \times 512 / 1024) \mathrm{KB} = 3 \times 10^{5} \mathrm{KB}$。
2)磁头在85号柱面上,对SSTF算法而言,总是访问当前柱面距离最近的地址。注意每个簇包含2个扇区,通过计算得到,85号柱面对应的簇号为 $85000\sim 85999$。通过比较得出,系统最先访问离 $85000\sim 85999$ 最近的100260,随后访问离100260最近的101660,然后访问110560,最后访问60005。顺序为100260,101660,110560,60005。
3)第100530簇在磁盘上的物理地址由其所在的柱面号、磁头号、扇区号构成。
柱面号 $= \left\lfloor \text{簇号/每个柱面的簇数} \right\rfloor = \left\lfloor 100530 / (10 \times 200 / 2) \right\rfloor = 100$。
磁头号 $= \left\lfloor (\text{簇号}\% \text{每个柱面的簇数}) / \text{每个磁道的簇数} \right\rfloor = \left\lfloor 530 / (200 / 2) \right\rfloor = 5$。
扇区号 $= \text{扇区地址}\% \text{每个磁道的扇区数} = (530 \times 2)\% 200 = 60$。
将簇号转换成磁盘物理地址的过程由磁盘驱动程序完成。
08. 【解答】
1)执行顺序依次是ROM中的引导程序、磁盘引导程序、分区引导程序、操作系统的初始化程序。启动系统时,首先运行ROM中的引导代码(bootstrap)。为执行某个分区的操作系统的初始化程序,需要先执行磁盘引导程序以指示引导到哪个分区,然后执行该分区的引导程序,用于引导该分区的操作系统。
2)4个操作的执行顺序依次是磁盘的物理格式化、对磁盘进行分区、逻辑格式化、操作系统的安装。磁盘只有通过分区和逻辑格式化后才能安装系统和存储信息。物理格式化(也称低级格式化,通常出厂时就已完成)的作用是为每个磁道划分扇区,安排扇区在磁道中的排列顺序,并对已损坏的磁道和扇区做“坏”标记等。随后将磁盘的整体存储空间划分为相互独立的多个分区(如Windows中划分C盘、D盘等),这些分区可以用作多种用途,如安装不同的操作系统和应用程序、存储文件等。然后进行逻辑格式化(也称高级格式化),其作用是对扇区进行逻辑编号,建立逻辑盘的引导记录、文件分配表、文件目录表和数据区等。最后才是操作系统的安装。
<!-- page: 370 -->
3)由上述分析可知,磁盘扇区的划分是在磁盘的物理格式化操作中完成的,文件系统根目录的建立是在逻辑格式化操作中完成的。
## 5.4 本章疑难点
### 1. 为了增加设备分配的灵活性、成功率,可以如何改进?
可以从以下两方面对基本的设备分配程序加以改进:
1)增加设备的独立性。进程使用逻辑设备名请求 I/O。这样,系统首先从 SDT 中找出第一个该类设备的 DCT。若该设备忙,则又查找第二个该类设备的 DCT。仅当所有该类设备都忙时,才将进程挂到该类设备的等待队列上;只要有一个该类设备可用,系统便进一步计算分配该设备的安全性。
2)考虑多通路情况。为防止 I/O 系统的“瓶颈”现象,通常采用多通路的 I/O 系统结构。此时对控制器和通道的分配同样要经过几次反复,即若设备(控制器)所连接的第一个控制器(通道)忙时,则应查看其所连接的第二个控制器(通道),仅当所有控制器(通道)都忙时,此次的控制器(通道)分配才算失败,才将进程挂到控制器(通道)的等待队列上。而只要有一个控制器(通道)可用,系统便可将它分配给进程。
设备分配过程中,先后分别访问的数据结构为 $\mathrm{SDT} \rightarrow \mathrm{DCT} \rightarrow \mathrm{COCT} \rightarrow \mathrm{CHCT}$。要成功分配一个设备,必须要:①设备可用;②控制器可用;③通道可用。所以,“设备分配,要过三关”。
### 2. 什么是用户缓冲区、内核缓冲区?
#### 5.1.4 节中讨论过:“I/O 操作完成后,系统将数据从内核复制到用户空间”,这里说的是“内核”其实是指内核缓冲区,“用户空间”是指用户缓冲区。
用户缓冲区是指当用户进程读文件时,通常先申请一块内存数组,称为 Buffer,用来存放读取的数据。每次 read 调用,将读取的数据写入 Buffer,之后程序都从 buffer 中获取数据,当 buffer 使用完后,再进行下一次调用,填充 buffer。可见,用户缓冲区的目的是减少系统调用次数,从而降低系统在用户态与内核态之间切换的开销。公众号:小兔网盘免费分享无水印PDF
内核也有自己的缓冲区。当用户进程从磁盘读取数据时,不直接读磁盘,而将内核缓冲区中的数据复制到用户缓冲区中。若内核缓冲区中没有数据,则内核请求从磁盘读取,然后将进程挂起,为其他进程服务,等到数据已读取到内核缓冲区中时,将内核缓冲区中的数据复制到用户进程的缓冲区,才通知进程(当然,I/O 模型不同,处理的方式也不同)。当用户进程需要写数据时,数据可能不直接写入磁盘,而将数据写入内核缓冲区,时机适当时(如内核缓冲区的数据积累到一定量后),内核才将内核缓冲区的数据写入磁盘。可见,内核缓冲区是为了在操作系统级别提高磁盘 I/O 效率,优化磁盘写操作。
关注公众号【考研小舟】
免费考研资料&无水印PDF
<!-- page: 371 -->
# 参考文献
[1] 汤小丹,梁红兵,哲凤屏,等.计算机操作系统[M]. 4版.西安:西安电子科技大学出版社,2014.
[2] 李善平.操作系统学习指导和考试指导[M]. 杭州:浙江大学出版社,2004.
[3] Andrew S. Tanenbaum. 现代操作系统[M]. 4版. 北京:机械工业出版社,2017.
[4] Abraham Silberschatz, Peter B. Galvin, Greg Gagne. 操作系统概念[M]. 北京:机械工业出版社,2018.
[5] William Stallings. 操作系统:精髓与设计原理[M]. 第九版. 北京:电子工业出版社,2020.
[6] 全国考研计算机大纲配套教材专家委员会. 全国硕士研究生入学统一考试计算机学科专业基础综合考试大纲解析(2010版)[M]. 北京:高等教育出版社,2009.
[7] 李春葆.操作系统联考辅导教程(2011版)[M]. 北京:清华大学出版社,2010.
[8] 崔巍.2010考研计算机学科专业基础综合辅导讲义[M]. 北京:原子能出版社,2009.
[9] 翔高教育.计算机学科专业基础综合复习指南[M]. 上海:复旦大学出版社,2009.
[10] Randal E. Bryant. 深入理解计算机系统[M]. 北京:机械工业出版社,2010.