磁盘的管理
标签: 操作系统
学习人数: 16916

1.磁盘初始化

一个新的磁盘只是一个含有磁性记录材料的空白盘。在磁盘能存储数据之前,它必须分成扇区以便磁盘控制器能进行读和写操作,这个过程称为低级格式化(物理分区)。低级格式化为磁盘的每个扇区采用特别的数据结构。每个扇区的数据结构通常由头、数据区域(通常为512B大小)和尾部组成。头部和尾部包含了一些磁盘控制器所使用的信息。

为了使用磁盘存储文件,操作系统还需要将自己的数据结构记录在磁盘上:

①将磁盘分为由一个或多个柱面组成的分区(即我们熟悉的C盘、D 盘等形式的分区)。

②对物理分区进行逻辑格式化(创建文件系统),操作系统将初始的文件系统数据结构存储到磁盘上,这些数据结构包括空闲和已分配的空间及一个初始为空的目录。

 

2.引导块

计算机启动时需要运行一个初始化程序(自举程序),它初始化CPU、寄存器、设备控制器和内存等,接着启动操作系统。为此,该自举程序应找到磁盘上的操作系统内核,装入内存,并转到起始地址,从而开始操作系统的运行。

自举程序通常保存在ROM中,为了避免改变自举代码而需要改变ROM硬件的问题,因此只在ROM中保留很小的自举装入程序,将完整功能的自举程序保存在磁盘的启动块上,启动块位于磁盘的固定位。拥有启动分区的磁盘称为启动磁盘或系统磁盘。

 

3.坏扇区

由于磁盘有移动部件且容错能力差,因此容易导致一个或多个扇区损坏。部分磁盘甚至从出厂时就有坏扇区。根据所使用的磁盘和控制器,对这些块有多种处理方式。

对于简单磁盘,如电子集成驱动器(IDE) , 坏扇区可手工处理,如 MS-DOS的 Format 命令执行逻辑格式化时便会扫描磁盘以检查坏扇区。坏扇区在FAT表上会标明,因此程序不会使用。



课后作业

课后习题

 

1. 一个磁盘的转速为7200转/分,每个磁道有160个扇区,每扇区有512B,那么理想情况

下,其数据传输率为( )。

A. 7200×l60KB/s           B. 7200KB/s            C. 9600KB/s           D. 19200KB/s

【答案】C

【解析】磁盘的转速为7200转 /分 =120转/秒,转一圈经过160个扇区,每个扇区为512B,所以数据传输率= 120×160×512/1024KB/S = 9600KB/S。

 

2. 【2009统考真题】假设磁头当前位于第105道,正在向磁道序号增加的方向移动。现有一个磁道访问请求序列为35,45,12,68,110, 180, 170,195,采用SCAN调度(电梯调度)算法得到的磁道访问序列是( )。

A. 110, 170, 180, 195, 68, 45, 35, 12

B. 110, 68, 45, 35, 12, 170, 180, 195

C. 110, 170, 180, 195, 12, 35, 45, 68

D. 12, 35, 45, 68, 110, 170, 180, 195

【答案】A

【解析】SCAN算法的原理类似于电梯。首先,当磁头从105道向序号增加的方向移动时,便会按照从小到大的顺序服务所有大于105的磁道号(110, 170, 180, 195);往回移动时又会按照从大到小的顺序进行服务(68,45,35,12),结果如下图所示。

 

3. 【2015统考真题】某硬盘有200个磁道(最外侧磁道号为0),磁道访问请求序列为130, 42, 180, 15, 199,当前磁头位于第58号磁道并从外侧向内侧移动。按照SCAN调度方法处理完上述请求后,磁头移过的磁道数是( )。

A. 208                               B. 287

C. 325                               D. 382

【答案】C

【解析】SCAN算法就是电梯调度算法。顾名思义,若开始时磁头向外移动,就一直要到最外侧,然后返回向内侧移动,就像电梯若往下则一直要下到底层才会再上升一样。当前磁头位于58号并从外侧向内侧移动,先依次访问130和199,然后返回向外侧移动,依次访问42和15,因此磁头移过的磁道数是(199 -58) + (199 - 15) = 325。

 

4. 【2017统考真题】下列选项中,磁盘逻辑格式化程序所做的工作是( )。

Ⅰ.对磁盘进行分区

Ⅱ.建立文件系统的根目录

Ⅲ.确定磁盘扇区校验码所占位数

Ⅳ.对保存空闲磁盘块信息的数据结构进行初始化

A . 仅Ⅱ            B . 仅Ⅱ、Ⅳ            C . 仅Ⅲ、Ⅳ          D . 仅Ⅰ、Ⅱ、Ⅳ

【答案】B

【解析】新磁盘是空白的,必须分成各个扇区以便磁盘控制器能读和写,这个过程称为低级格式化(或物理格式化)。低级格式化为磁盘的每个扇区采用特别的数据结构,包括校验码,Ⅲ错误。为了使用磁盘存储文件,操作系统还需要将自己的数据结构记录在磁盘上。这分为两步。第一步是将磁盘分为由一个或多个柱面组成的分区,每个分区可以作为一个独立的磁盘,I 错误。在分区之后,第二步是逻辑格式化(创建文件系统)。在这一步,操作系统将初始的文件系统数据结构存储到磁盘上。这些数据结构包括空闲和已分配的空间及一个初始为空的目录,Ⅱ、Ⅳ正确。所以选B。

 

5. 【2018统考真题】系统总是访问磁盘的某个磁道而不响应对其他磁道的访问请求,这种现象称为磁臂黏着。下列磁盘调度算法中,不会导致磁臂黏着的是( )。

A .先来先服务(FCFS)                               B .最短寻道时间优先(SSTF )

C .扫描算法(SCAN)                                 D .循环扫描算法(CSCAN)

【答案】A

【解析】当系统总是持续出现某个磁道的访问请求时,均持续满足最短寻道时间优先、扫描算法和循环扫描算法的访问条件,会一直服务该访问请求。而先来先服务按照请求次序进行调度,比较公平,因此选A。

 

6. 【2017统考真题】某文件系统的簇和磁盘扇区大小分别为1KB和 512B。若一个文件的大小为1026B,则系统分配给该文件的磁盘空间大小是( )。

A. 1026B             B. 1536B              C. 1538B            D. 2048B

【答案】D

【解析】绝大多数操作系统为改善磁盘访问时间,以簇为单位进行空间分配,因此答案选D。

 

7. 【2010统考真题】如下图所示,假设计算机系统采用C-SCAN (循环扫描)磁盘调度策略,使用2KB的内存空间记录16384个磁盘块的空闲状态。

1) 请说明在上述条件下如何进行磁盘块空闲状态的管理。

2) 设某单面磁盘旋转速度为6000转/分,每个磁道有100个扇区,相邻磁道间的平均移动时间为1ms。若在某时刻,磁头位于100号磁道处,并沿着磁道号增大的方向移动 (见上图),磁道号请求队列为50, 90, 30,120,对请求队列中的每个磁道需读取1个随机分布的扇区'则读完这4个扇区点共需要多少时间?要求给出计算过程。

3) 若将磁盘替换为随机访问的Flash半导体存储器(如 U盘、固态硬盘等),是否有比 GSCAN更高效的磁盘调度策略?若有,给出磁盘调度策略的名称并说明理由;若无,说明理由。

【解析】

1) 用位图表示磁盘的空闲状态。每位表示一个磁盘块的空闲状态,共需16384/32 = 512个字 =512×4B = 2K B ,正好可放在系统提供的内存中。

2) 采用C-SCAN调度算法,访问磁道的顺序和移动的磁道数如下表所示:

移动的磁道数为20 + 90 + 20 + 40= 170,因此总的移动磁道时间为170ms。

由于转速为6000转/分,因此平均旋转延迟为5ms,总的旋转延迟时间=20ms。

由于转速为6000转/分,因此读取一个磁道上的一个扇区的平均读取时间为0.1ms,扇区的平均读取时间为0.1ms,总的读取扇区的时间为04ms。

综上,读取上述磁道上所有扇区所花的总时间为190.4ms。

3 ) 采用先来先服务(FCFS)调度策略更高效。因为Flash半导体存储器的物理结构不需要考虑寻道时间和旋转延迟,可直接按I/O请求的先后顺序服务。

 

8. 【2019统考真题】某计算机系统中的磁盘有300个柱面,每个柱面有10个磁道,每个磁道有200个扇区,扇区大小为512B。文件系统的每个簇包含2个扇区。请回答下列问题:

1) 磁盘的容量是多少?

2) 假设磁头在85号柱面上,此时有4 个磁盘访问请求,簇号分别为100260, 60005,101660和 110560。采用最短寻道时间优先(SSTF) 调度算法,系统访问簇的先后次序是什么?

3) 第 100530簇在磁盘上的物理地址是什么?将簇号转换成磁盘物理地址的过程是由I/O系统的什么程序完成的?

【解析】

1) 磁盘容量= 磁盘的柱面数×每个柱面的磁道数×每个磁道的扇区数×每个扇区的大小=(300×10×200×512/1024) KB = 3×KB。

2) 磁头在85号柱面上,对 SSTF算法而言,总是访问当前柱面距离最近的地址。注意每个簇包含2个扇区,通过计算得到,85号柱面对应的簇号为85000〜 85999。通过比较得出,系统最先访问离85000〜 85999最近的100260,随后访问离100260最近的101660,然后访问 110560,最后访问 60005。顺序为 100260, 101660, 110560, 60005。

3) 第100530簇在磁盘上的物理地址由其所在的柱面号、磁头号、扇区号构成。

柱面号 = ⌊簇号/每个柱面的簇数⌋= ⌊100530/(10×200/2)⌋ = 100。

磁头号 =  ⌊(簇号%每个柱面的簇数)/每个磁道的簇数⌋= ⌊530/(200/2)⌋ = 5。

扇区号 = 扇区地址%每个磁道的扇区数= (530×2)%200 = 60。将簇号转换成磁盘物理地址的过程由磁盘驱动程序完成。


登录后发布评论

暂无评论,来抢沙发