zoukankan      html  css  js  c++  java
  • 计算机操作系统-设备管理

    磁盘结构

    • 盘面(Platter):一个磁盘有多个盘面;
    • 磁道(Track):盘面上的圆形带状区域,一个盘面可以有多个磁道;
    • 扇区(Track Sector):磁道上的一个弧段,一个磁道可以有多个扇区,它是最小的物理储存单位,目前主要有 512 bytes 与 4 K 两种大小;
    • 磁头(Head):与盘面非常接近,能够将盘面上的磁场转换为电信号(读),或者将电信号转换为盘面的磁场(写);
    • 制动手臂(Actuator arm):用于在磁道之间移动磁头;
    • 主轴(Spindle):使整个盘面转动。

    磁盘调度算法

    读写一个磁盘块的时间的影响因素有:

    • 旋转时间(主轴转动盘面,使得磁头移动到适当的扇区上)
    • 寻道时间(制动手臂移动,使得磁头移动到适当的磁道上)
    • 实际的数据传输时间

    其中,寻道时间最长,因此磁盘调度的主要目标是使磁盘的平均寻道时间最短。

    1. 先来先服务

    FCFS, First Come First Served

    按照磁盘请求的顺序进行调度。

    优点是公平和简单。缺点也很明显,因为未对寻道做任何优化,使平均寻道时间可能较长。

    2. 最短寻道时间优先

    SSTF, Shortest Seek Time First

    优先调度与当前磁头所在磁道距离最近的磁道。

    虽然平均寻道时间比较低,但是不够公平。如果新到达的磁道请求总是比一个在等待的磁道请求近,那么在等待的磁道请求会一直等待下去,也就是出现饥饿现象。具体来说,两端的磁道请求更容易出现饥饿现象。

    img

    3. 电梯算法

    SCAN

    电梯总是保持一个方向运行,直到该方向没有请求为止,然后改变运行方向。

    电梯算法(扫描算法)和电梯的运行过程类似,总是按一个方向来进行磁盘调度,直到该方向上没有未完成的磁盘请求,然后改变方向。

    因为考虑了移动方向,因此所有的磁盘请求都会被满足,解决了 SSTF 的饥饿问题。

    原文链接

  • 相关阅读:
    最近玩Bootstrap , 一些小工具 记录在案。
    测试word发表博客
    Linux at 定时任务
    Linux查看磁盘目录内存空间使用情况
    R生存分析AFT
    Accelerated Failure Time Models加速失效时间模型AFT
    Shell sleep指定延迟时间
    Shell脚本导入外部脚本内容
    Shell输入输出重定向
    Shell while
  • 原文地址:https://www.cnblogs.com/we9999/p/11763790.html
Copyright © 2011-2022 走看看