目录
磁盘概念
磁盘管理
磁盘调度算法
FCFS(先来先服务)
SSTF(最短寻找时间优先)
SCAN(扫描)
C-SCAN(循环扫描)
LOOK与C-LOOK
磁盘概念
-
磁道(柱面):磁盘盘面上的数据存储在一组同心圆上,每个圆称为一个磁道。所有盘片上的同一位置的磁道组成一个柱面。
-
盘块:一个磁道被划分为多个扇区,每个扇区可以存储固定大小的数据。通常,一个扇区称为一个盘块。
-
磁盘地址:磁盘上的每个扇区都可以通过一个三元组地址来唯一标识,即柱面号(磁道号)、盘面号(磁头号)和扇区号(块号)。
-
补充:并不是所有的存储设备都可以按任意次序读写。例如,磁盘通常是按扇区顺序读取的,而光盘通常是从中心向外读取的。
磁盘管理
-
磁盘初始化:
- 低级格式化/物理分区:在磁盘出厂时进行,将磁盘划分为扇区,并为每个扇区添加头部(包含校验码、指针等信息)、数据区和尾部。
- 磁盘分区:将磁盘划分为多个逻辑区域,如C盘、D盘等。分区信息记录在磁盘的主引导记录(MBR)中的分区表中。
- 逻辑格式化:在磁盘分区后,创建文件系统,包括超级块、空闲空间管理、目录结构等。
-
引导块:位于分区的开始处,包含启动操作系统的程序代码。
-
坏块:磁盘上无法正常读写的扇区。操作系统通常会维护一个坏块链表,并在格式化时将备用块分配给这些坏块。
磁盘调度算法
-
读写时间:
- 寻道时间:磁头移动到指定磁道的时间。
- 延迟时间:磁头定位到扇区的时间,与磁盘转速有关。
- 传输时间:数据在磁盘和内存之间传输的时间。
-
减少延迟时间的方法:
- 交替编号:使相邻扇区的物理位置不相邻,以减少连续读写时的延迟。
- 错位命名:相邻盘面的扇区采用错位编号,以平衡磁头的读写负载。
-
磁盘调度算法:
FCFS(先来先服务)
- 工作原理:这是最简单的磁盘调度算法。磁盘I/O请求按照它们到达的顺序进行处理。
- 优点:公平,每个请求都会按照到达的顺序得到服务。
- 缺点:可能导致磁头移动频繁,尤其是在请求分布不均匀时,这会导致较高的寻道时间,从而降低磁盘的整体性能。
SSTF(最短寻找时间优先)
- 工作原理:选择距离当前磁头位置最近的请求进行服务。
- 优点:可以显著减少磁头的移动距离,从而减少寻道时间,提高磁盘I/O效率。
- 缺点:可能导致某些请求长时间得不到服务(饥饿),尤其是当新请求不断出现且总是比当前请求更近时。
SCAN(扫描)
- 工作原理:磁头从磁盘的一端开始,向另一端移动,服务沿途的所有请求,直到达到端点。然后磁头反向移动,再次服务沿途的请求。
- 优点:减少了磁头的移动次数,提供了比FCFS和SSTF更好的性能。
- 缺点:可能会对位于磁头起始点和端点之间的请求造成不公平,因为这些请求可能需要等待较长时间。
C-SCAN(循环扫描)
- 工作原理:与SCAN类似,但是磁头在到达端点后直接跳回到起始点,而不是反向移动。
- 优点:避免了SCAN中反向移动的不必要寻道,使得磁头移动更加高效。
- 缺点:对于那些在磁头移动方向末端的请求,可能会出现饥饿现象。
LOOK与C-LOOK
- LOOK:是SCAN的变种,磁头在到达端点前会检查是否有请求。如果没有请求,磁头会立即改变方向,而不是继续移动到端点。
- C-LOOK:是C-SCAN的变种,同样在到达端点前检查是否有请求。如果没有,磁头会直接跳回到起始点。
- 优点:减少了不必要的磁头移动,提高了效率。
- 缺点:与SCAN和C-SCAN类似,可能会对某些请求造成不公平。