0
点赞
收藏
分享

微信扫一扫

操作系统 磁盘存储器和磁盘调度算法介绍

卿卿如梦 2022-01-13 阅读 128
看教材枯燥,码字记录提神,根据计算机操作系统(第四版,汤小凤)个人整理,仅作学习和复习记录 :)

1. 磁盘简述

1.1 数据的组织和格式

磁盘设备包括一个或多个物理盘片,每个磁盘片分一个或两个存储面(Surface),每个盘面上有若干个磁道(Track),磁道之间留有必要的间隙(Gap)。

为处理简单起见,每条磁道上可存储相同数目的二进制位,故显然,内层磁道的密度比外层磁道的密度要高。

每条磁道又被从逻辑上划分为若干个扇区(Sectors),一个扇区称为一个盘块(或数据块),各扇区之间也保留一定的间隙(Gap)

柱面是硬盘同层磁道共存的面。

一个物理记录存储在一个扇区上,磁盘上能存储的物理记录块数目是由扇区数磁道数以及磁盘面数所决定的。

在这里插入图片描述

为了在磁盘上存储数据,必须先将磁盘低级格式化,这里以温盘为例。

温盘(温切斯特盘):

每条磁道含有30个固定大小的扇区,每个扇区容量为600个字节,其中512个字节存放数据,其余的用于存放控制信息。

每个扇区包括两个字段:

  • 标识符字段(ID Field),其中一个字节的SYNCH具有特定的位图像,作为该字段的定界符,利用磁道号、磁头号及扇区号三者来标识一个扇区;CRC字段用于段校验。
  • 数据字段(Data Field),存放512个字节的数据

在这里插入图片描述

在磁盘格式化完成后,一般要对磁盘进行分区。在逻辑上,每个分区就是一个独立的逻辑磁盘。每个分区的起始扇区和大小都记录在磁盘0扇区的主引导记录分区表所包含的分区表中。在这个分区表中必须有一个分区被标记成活动的(即引导块),以保证能够从硬盘引导系统。

但在真正可以使用磁盘前,还需要对磁盘进行一个高级格式化,即设置一个引导块空闲存储管理根目录和一个空文件系统,同时在分区表中标记该分区所使用的文件系统。

1.2 磁盘的类型

最常见的有:将磁盘分为硬盘软盘单片盘多片盘固定头磁盘活动头(移动头)磁盘等。

仅对固定头磁盘和移动头磁盘简要介绍:

  • 固定头磁盘:

    每条磁道上都有一读写磁头,所有的磁头都被装在一刚性磁臂中。通过这些磁头可访问所有各磁道,并进行并行读写。I/O速度快。

  • 移动头磁盘:

    每个盘面仅配有一个磁头,也被装入磁臂中。为能访问该盘面上的所有磁道,该磁头必须能移动以进行寻道。移动磁头仅以串行方式读写。I/O速度慢。

1.3 磁盘访问时间

磁盘设备在工作时以恒定速率旋转。为了读写,磁头必须能移动到所指定的磁道上,并等待所指定的扇区的开始位置旋转到磁头下,然后再开始读或写数据。故可把对磁盘的访问时间分成以下三个部分

  1. 寻道时间

    指把磁臂(磁头)移动到指定磁道上所经历的时间

  2. 旋转延迟时间

    这是指定扇区移动道磁头下面所经历的时间

  3. 传输时间

    这是指把数据从磁盘读出或者向磁盘写入数据所经历的时间。


2. 磁盘调度算法

为了减少对文件的访问时间,应采用一种最佳的磁盘调度算法,以使各进程对磁盘的平均访问时间最小。由于在访问磁盘的时间中主要是寻道时间。因此,磁盘调度的目标是使磁盘的平均寻道时间最少

2.1 先来先服务(FCFS)

最简单的磁盘调度算法。根据进程请求访问磁盘的先后次序进行调度。

优点:

公平、简单,且对每个进程的请求都能依次地得到处理,不会出现某一进程地请求长期得不到满足的情况。

缺点:

该算法未对寻道进行优化,致使平均寻道时间可能较长,仅适用于请求磁盘I/O的进程数目较少的场合

2.2 最短寻道时间优先(SSTF)

要求访问的磁道与当前磁道所在的磁道距离最近,以使每次的寻道时间最短

缺点:

不能保证平均寻道时间最短

实质是基于优先级的调度算法,因此可能导致优先级低的进程发生“饥饿”现象

在这里插入图片描述

2.3 扫描算法(SCAN)

不仅考虑到欲访问的磁道与当前磁道间的距离,更优先考虑的是磁头当前的移动方向

SCAN算法所考虑的下一个访问对象应是其欲访问的磁道既在当前磁道之外,又是距离最近的。这样自里向外地访问,直至再无更外的磁道需要访问时,才将磁臂换向为自外向里移动。

这种算法中磁头移动的规律颇似电梯的运行,又称之为电梯梯度算法

2.4 循环扫描算法(CSCAN)

上面的扫描算法存在这样的问题:当磁头刚从里向外移动而越过了某一磁道时,恰好又有一进程请求访问此磁道,这时,该进程必须等待,待磁头继续从里向外,然后再从外向里扫描完处于外面的所有要访问的磁道后,才能处理该进程的请求,致使该进程的请求被大大地推迟。

为解决,CSCAN算法规定磁头单向移动。当磁头移到最外地磁道并访问后,磁头立即返回到最里的欲访问磁道,亦即将最小号磁道紧接着最大号磁道号构成循环,进行循环扫描。

在这里插入图片描述

2.5 NStepSCAN调度算法

前几种调度算法中,都可能出现磁臂停留在某处不动的情况。我们将某进程反复请求对某一磁道的I/O操作进而垄断整个磁盘设备的现象称为“磁臂粘着”。

N步SCAN算法是将磁盘请求队列分成若干个长度为N的子队列,磁盘调度将按FCFS算法依次处理这些子队列。而每处理一个队列时又是按SCAN算法,对一个队列处理完后,再处理其他队列。当正在处理某子队列时,如果又出现新的磁盘I/O请求,便将新请求进程放入其他队列中,这样就可避免出现粘着现象。

2.6 FSCAN算法

FSCAN算法实质上是N步SCAN算法的简化,即FSCAN只将磁盘请求队列分成两个子队列。一个是由当前所有请求磁盘I/O的进程形成的队列,由磁盘调度按SCAN算法进行处理。另一个是在扫描期间,将新出现的所有请求磁盘I/O的进程放入等待处理的请求队列。这样,所有的新请求都将被推迟到下一次扫描时处理。


3. 磁盘存储器的管理

3.1 外存的组织方式

我们知道,文件的物理结构直接与外存的组织方式有关,对于不同的外存组织方式,将形成不同的文件物理结构。目前常用的外存组织方式有:

  1. 连续组织方式

    为每个文件分配一片连续的磁盘空间

  2. 链接组织方式

    为每个文件分配不连续的磁盘空间,通过链接指针将一个文件的所有盘块链接在一起。

  3. 索引组织方式

3.1.1 连续组织方式

连续组织方式又称连续分配方式,要求为每一个文件分配一组相邻接的盘块。在采用连续组织方式时,可把逻辑文件中的记录顺序地存储到邻接的各物理盘块中,这样所形成的文件结构称为顺序文件

优点:

  • 顺序访问容易
  • 顺序访问速度快

缺点:

  • 要求为一个文件分配连续的存储空间,由内存的连续分配得知,这样会产生出许多外部碎片,严重降低外存空间的利用率。
  • 必须事先知道文件的长度,要将一个文件装入一个连续的存储区中,必须事先知道文件的大小。
  • 不能灵活地删除和插入记录。
  • 对于那些动态增长的文件,由于事先很难知道文件的最终大小,因此很难为其分配空间。

在这里插入图片描述

3.1.2 链接组织方式

为文件分配多个不连续的盘块,再通过每个盘块上的链接指针,将同属于一个文件的多个离散的盘块链接成一个链表,由此所形成的物理文件称为链接文件

优点:

  • 消除了磁盘的外部碎片,提高了外存的利用率
  • 对插入、删除和修改记录都非常容易
  • 能适应文件的动态增长,无需事先知道文件的大小

连接方式又可分为隐式链接和显式链接两种形式

隐式链接:

在文件目录的每个目录项中,都须含有指向链接文件第一个盘块和最后一个盘块的指针

缺点:

  • 只适合于顺序访问,它对随机访问是极其低效的。
  • 随机访问的速度很低,可靠性较差

在这里插入图片描述

显式连接:

把用于链接文件各物理块的指针显示地存放在内存地一张链接表中。该表在整个磁盘中仅设置一张。在每个表项中存放链接指针,即下一个盘块号。在该表中,凡是属于某一文件地第一个盘块号,或者说是每一条链地链首指针所对应的盘块号,均作为文件地址被填入相应文件的FCB的“物理地址”中。

由于分配给文件的所有盘块号都放在该表中,故把该表称为文件分配表FAT(File Allocation Table)

在这里插入图片描述

3.2 FAT技术

在FAT中引入了“”的概念,支持将一个物理磁盘分成四个逻辑磁盘,每个逻辑磁盘就是一个卷(也称为分区),也就是说每个卷都是一个能够被单独格式化和使用的逻辑单元,供文件系统分配空间时使用。

一个卷中包含了文件系统信息、一组文件以及空闲空间。每个卷都专门划出一个单独区域来存放自己的目录和FAT表,以及自己的逻辑驱动器字母。

  1. FAT12

    早期的FAT12系统是以盘块为基本分配单位的。在FAT的每个表项中存放下一个盘块号,它实际上是用于盘块之间的链接的指针。通过它可以将一个文件的所有的盘块链接起来,而将文件的第一个盘块号放在自己的PCB中。

    后来引入一个新的分配单位—,簇的大小一般是2n(n为整数)个盘块。

    在这里插入图片描述

  2. FAT16

    将FAT表项位数增至16位,最大表项数将增至65536个。我们把具有16位表宽的FAT表称为FAT16.

  3. FAT32

    由于FAT16表的长度只有65535项,随着磁盘容量的增加,簇的大小也必然会随之增加,为了减少簇内零头,也就应当增加FAT表的长度,为此需要再增加FAT表的宽度,这样也就由FAT16演变为FAT32。

举报

相关推荐

0 条评论