磁盘的结构?如何设计磁盘调度?

磁盘是计算机主要的存储介质,在这里我来跟大伙谈谈磁盘的相关知识,尤其是磁盘调度算法相关内容。

磁盘的内部结构

磁盘内部结构包括磁头、盘面、磁道、柱面和扇区

磁头

磁头是硬盘技术中最重要和最关键的一环,用以读写磁盘。

盘面

即一片片磁盘的表面。

磁道

盘面上存放着信息的一个个同心圆。

柱面

每一个磁盘上在相同位置上的磁道形成的圆柱面。

扇区

磁盘上的每个磁道被等分为若干个弧段,这些弧段便是磁盘的扇区。(每个扇区的大小一般为512个字节)

读取磁盘的顺序:寻道->寻找扇区。
寻道时间:寻找磁道所花的时间。
旋转延迟:找扇区所花的时间(计算时一般为磁盘转一圈的时间的一半,即取平均)。
  • 顺序访问时,除了第一圈需要旋转延迟外,其他圈都不需要旋转延迟(但都需要寻道时间)。

磁盘调度算法

磁盘调度算法优化的是寻道时间
磁盘调度算法主要有六种:FCFS调度(先来先服务)、SSTF调度(最短寻道时间优先)、SCAN调度(扫描算法,也称电梯算法)、C-SCAN调度(循环扫描)、LOOK调度、C-LOOK调度。

1. FCFS调度

按照请求的顺序进行服务。

优点:最简单;具有公平性

缺点:性能很差


2. SSTF调度

优先处理距离磁头当前位置最近的请求。

优点:性能好(但并非最优)

缺点:不公平,容易导致请求饿死


3. SCAN调度

磁臂从磁盘的一端开始向另一端移动;到达磁盘另一端时,再返回。(在移动过程中,如果遇到请求,则服务该请求)

优点:性能较好

缺点:具有公平性问题(分别在磁头两侧距离磁头的距离相近处有一个请求,这两个请求得到服务的时间可能相差很大。比如磁头在53柱面,磁头向右扫描,而这时52和54柱面同时发出请求;那么54柱面的请求很快得到服务,52柱面的请求需要等磁头再次折返才能被服务)


4. C-SCAN调度

从磁盘的一端向另一边移动,过程中遇到请求则进行服务;当到达另一端时,开始返回,途中不进行任何服务。(即只在一个方向的移动过程中才进行服务,而SCAN调度在向两个方向移动过程中都进行服务)

优点:一定程度上缓解了SCAN调度的公平性问题

缺点:需要花费更多的时间(因为每一个循环都只在一个方向移动上才进行服务)


5. LOOK调度

SCAN算法的优化,每一次移动不走到磁盘的尽头,而是走到最远的请求就开始折返。

优点:节省了时间

6. C-LOOK调度

C-SCAN算法的优化,原理与LOOK调度相同。

优点:节省了时间


总体来说,C-LOOK调度具有一定的公平性,且平均寻道时间较为理想,是一种比较受欢迎的磁盘调度算法。但至于要选取哪种磁盘调度算法,还得根据各自的需求做出选择。如果比较重视公平性问题而不太考虑读取磁盘时间长短的问题,那么FCFS调度算法是首选算法;如果重视读取磁盘时间长短而不太考虑公平性问题,那么SSTF调度算法和LOOK调度算法是比较好的选择。

好了,以上便是本文的全部内容,希望对大家有所帮助。大家有什么疑问,或者要指正、补充内容的话,欢迎在评论区留言~

#操作系统#
全部评论
楼主好专业!
点赞
送花
回复
分享
发布于 2022-08-22 09:51 江苏

相关推荐

4 3 评论
分享
牛客网
牛客企业服务