嵌入式系统设计师学习笔记十八:存储管理③——磁盘

磁盘结构:

磁盘分为磁道、扇区、扇面、柱面、盘面等。

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

磁道由外向里从0依次递增。

在这里插入图片描述

磁盘调度算法:

先来先服务(FCFS):根据进程请求访问磁盘的先后次序进行调度。
优点:公平、简单,且每个进程的请求都能依次地得到处理,不会出现某一进程的请求长期得不到满足的情况。
缺点:此算法由于未对寻道进行优化,致使平均寻道时间可能较长。

最短寻道时间优先(SSTF):要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,但这种算法并不能保证平均寻道时间最短。
优点:大多数情况下寻道时间相对较短。
缺点:该算法的实质是基于优先级的调度算法,因此就可能导致低优先级的进程发生“饥饿”现象。

扫描算法(SCAN):又称为电梯调度算法,不仅考虑到欲访问的磁道与当前磁道间的距离,更优先考虑的是磁头当前的移动方向。
优点:能够避免SSTF算法的饥饿现象。
缺点:当磁头刚从里向外移动而越过了某一磁道时,恰好又有以进程请求访问磁道,这时,该进程必须等待,待磁头继续从里到外,然后折返的时候扫描完外面所有要访问的磁道后,才能处理该进程的请求,使得该进程的请求被大大推迟。

循环扫描法(CSCAN):当前磁头只沿一个方向扫描,当扫描到最内侧(最外侧)时,立即返回最大(最小)磁道,再次沿着同一个方向扫描。
优点:请求进程的请求延迟从原来的2T减少为T+Smax(T为由外向内或由内向外单向扫描完要访问的磁道所需要的寻道时间,Smax是将磁头从最里面被访问的磁道直接移到最外面欲访问的磁道的寻道时间)。

磁盘的性能参数:

非格式化容量:

容量 = 面数 x (磁道数/面) x 内圆周长 x 最大位密度

格式化容量:

容量 = 面数 x (磁道数/面) x (扇区数/道) x (字节数/扇区)

读取磁盘数据的时间应包括以下三个部分:
①找磁道的时间
②找块(扇区)的时间,即旋转延迟时间
③传输时间