📒
考研操作系统笔记
  • 408操作系统考察范围
  • 第一章 概述
    • 1.1 操作系统的基本概念
    • 1.2 操作系统的发展与分类
    • 1.3 操作系统的运行环境
    • 1.4 操作系统的体系结构
  • 第二章 进程管理
    • 2.1 进程与线程
    • 2.2 处理机调度
    • 2.3 进程同步
    • 2.3 进程管理(经典进程同步问题)
    • 2.4 死锁
  • 第三章 内存管理
    • 3.1 内存管理概念
    • 3.1 分页存储相关概念
    • 3.2 虚拟内存技术
  • 第四章 文件管理
    • 4.1 文件系统基础
    • 4.2 文件的系统实现
    • 4.3 磁盘的组织与管理
  • 第五章 输入输出(I/O)管理
    • 5.1 I/O管理概述
    • 5.2 I/O核心子系统
  • 附录
    • A.1 调度算法一览
由 GitBook 提供支持
在本页
  • 4.3.1 磁盘的结构
  • 4.3.2 磁盘调度算法
  • 1、磁盘读写时间的计算
  • 2、先来先服务算法(FCFS)
  • 3、最短寻找时间优先(SSTF)
  • 4、扫描算法(SCAN)
  • 5、LOOK调度算法
  • 6、循环扫描算法(C-SCAN)
  • 7、C-LOOK算法
  • 4.3.3 磁盘管理
  • 1、磁盘初始化
  • 2、引导块
  • 3、坏块

这有帮助吗?

  1. 第四章 文件管理

4.3 磁盘的组织与管理

上一页4.2 文件的系统实现下一页5.1 I/O管理概述

最后更新于2年前

这有帮助吗?

4.3.1 磁盘的结构

磁盘:磁盘的表面由一些磁性物质组成,可以用这些磁性物质来记录二进制数据

磁道:磁盘的盘面被划分成一个个磁道。这样的一个“圈”就是一个磁道。

扇区:一个磁道又被划分成一个个扇区,每个扇区就是一个磁盘块。各个扇区存放的数据量相同。

盘面:磁盘表面所有的扇区的集合。

柱面:所有盘面中相对位置相同的磁道组成柱面。

可以用(柱面号,盘面号,扇区号)来定位任意一个磁盘块。

4.3.2 磁盘调度算法

1、磁盘读写时间的计算

(1)寻找时间(寻道时间)TS\text T_{S}TS​

  1. 启动磁头所需要的时间,设为s;

  2. 移动磁头所需要的时间,假设磁头匀速运动,每跨越一个磁道的时间为m,总共跨越n条磁道,则:

TS=s+m×n\text T_{S} = s + m \times nTS​=s+m×n

即转动磁盘,使磁头定位到目标扇区所用的时间,设磁盘转速为r,则平均所需的延时为;

减少延迟时间的方法:

交替编号:若采用交替编号的策略,即让逻辑上相邻的扇区在物理上有一定的间隔,可以使读取连续的逻辑扇区所需要的延迟时间更小。(磁头读取完一个扇区之后需要一段时间冷却)

错位命名:与交替编号类似,将不同盘面的编号错开来。

对磁盘进行读/写操作所需的时间。设磁盘转速为r,需要进行读/写的字节数为b,每个磁道上存储的字节数为N,则:

其中,延迟时间与传输时间都取决于硬盘的转速,操作系统则可以通过不同的算法来影响寻道时间。

2、先来先服务算法(FCFS)

根据进程请求访问磁盘的先后顺序进行调度。

  • 优点

    • 公平

    • 当访问的磁道比较集中时性能还彳亍

  • 缺点

    • 有大量进程同时请求访问,且磁道十分分散,则性能很差

3、最短寻找时间优先(SSTF)

SSTF算法会优先处理的磁道是与当前磁头最近的磁道。可以保证每次的寻道时间最短,但是并不能保证总的寻道时间最短。

  • 优点

    • 性能较好

    • 平均寻找时间短

  • 缺点

    • 可能产生饥饿现象

4、扫描算法(SCAN)

SSTF算法会产生饥饿的原因在于:磁头有可能在一个小区域内来回来去地移动。

为了防止这个问题,可以规定只有磁头移动到最外侧磁道的时候才能往内移动,移动到最内侧磁道的时候才能往外移动。这就是扫描算法(SCAN)的思想。由于磁头移动的方式很像电梯,因此也叫电梯算法。

  • 优点

    • 性能较好

    • 平均寻道时间短

    • 不会产生饥饿现象

  • 缺点

    • 只有到达最边上的磁道才能开始反向移动(哪怕已经没有更外侧的磁道需要访问)

    • 对各个磁道的响应时间不均

5、LOOK调度算法

相较于扫描算法,在当前磁头移动方向前方若没有其他需要访问的磁道,LOOK算法允许磁头立刻开始反方向移动。

LOOK算法使得寻道时间进一步缩短。

6、循环扫描算法(C-SCAN)

SCAN算法对于各个位置磁道的响应频率不平均,而C-SCAN算法就是为了解决这个问题。规定只有磁头朝某个特定方向移动时才处理磁道访问请求,而返回时直接快速移动至起始端而不处理任何请求。

7、C-LOOK算法

将LOOK算法与C-SCAN算法结合,得到C-LOOK算法。

如果磁头移动的方向上已经没有磁道访问请求了,就可以立即让磁头返回,返回途中不处理任何请求,并且磁头只需要返回到有磁道访问请求的位置即可。

4.3.3 磁盘管理

1、磁盘初始化

  1. 进行低级格式化(物理格式化)

    • 将磁盘的各个磁道划分为扇区。

    • 一个扇区通常可分为头、数据区域、尾三个部分组成。

    • 管理扇区所需要的各种数据结构一般存放在头、尾两个部分,包括扇区校验码等

  2. 将磁盘分区,每个分区由若干柱面组成(C盘、 D盘 、 E盘)

  3. 进行逻辑格式化,创建文件系统

    • 包括创建文件系统的根目录、初始化存储空间管理所用的数据结构(如位示图、空闲分区表等)

2、引导块

计算机启动时需要运行一系列的初始化程序(自举程序),用于初始化各软硬件。

完整的自举程序放在磁盘的启动块(引导块 /启动分区)上,启动块位于磁盘的固定位置。在ROM中存放自举装入程序,用于找到引导快并将其中的自举程序装入内存。

拥有启动分区的磁盘称为启动磁盘或是系统盘。

3、坏块

无法正常使用的扇区就是坏块。这属于硬件故障,操作系统是无法修复的。应该将坏块标记出来,以免错误地使用到它。

对于简单的磁盘,可以在逻辑格式化时对整个磁盘进行坏块检查,标明哪些扇区是坏扇区(在这种方式中,坏块对操作系统不透明)

对于复杂的磁盘,磁盘控制器(磁盘设备内部的一个硬件部件)会维护一个坏块链表。在磁盘出厂前进行物理格式化时就将坏块链进行初始化。会保留一些备用扇区,用于替换坏块。这种方案称为扇区备用。且这种处理方式中,坏块对操作系统透明。

(2)延迟时间TR\text T_{R}TR​

TR=12×1r=12r\text T_{R} = \frac{1}{2} \times \frac{1}{r} = \frac{1}{2r}TR​=21​×r1​=2r1​

找到目标分区平均需要转半圈,因此乘以12\frac{1}{2}21​。

(3)传输时间Tt\text T_{t}Tt​

Tt=1r×bN=brN\text T_{t} = \frac{1}{r} \times \frac{b}{N} = \frac{b}{rN}Tt​=r1​×Nb​=rNb​