• 磁盘调度-01


    磁盘调度,简单的讲就是让磁盘工作,并且符合我们的要求的工作!

    很多初学者可能多磁盘调度和文件系统弄混,其实他们是两个完全不相同的概念。

    磁盘调度可以说是一个磁盘的驱动系统,由磁盘厂商设计和开发。而文件系统属于操作系统的一部分,它比磁盘调度系统更高一级,他直接面向上层用户。

    那就说说磁盘的调度过程吧,上图。

    如图,我们知道,文件系统的存取是按簇的读取的,簇的大小一般和内存块的大小一样,或者整数倍。windows簇的概念等价于linux的块的概念。而磁盘的最小读写单位是扇区(当然不是位),显然我们可以推理得到簇(块)一定是扇区大小的整数倍。扇区大小一般是512字节,簇(块)大小一般是4096字节。

    我们可以认为图中两块有色区域为两个扇区(因为画图的原因,不可能画出512个小块,所以用4个暂且表示一个扇区)。

    我们知道,磁盘数据的读取靠的是磁头(上图中未画出),如下图

    读取过程就是摇臂先摇到指定磁道上,当磁盘旋转到指定扇区时,磁头依次读取扇区中的位,并缓存到磁盘缓冲区中。显然,磁盘转的越快,磁头读取的速度就越快。、

    写数据的过程类似,磁盘先将内存的数据缓存到自己的缓冲区中,然后依据上述过程,磁头将缓冲区的数据修改到指定扇区中。

    初学者可能会好奇,系统怎么确定磁头摇到哪儿读写的?

    其实跟内存寻址一样,磁盘也是靠寻址来确定扇区的。(文件系统就不必关系这些问题了,它提供了更高一层的抽象)

    对于普通单片单磁头磁盘,一般有两个参数来确定寻址:磁道和扇区(注意,扇区是一块扇形区域,他上边的每一条道都是512字节)。跟内存寻址略微不同。

    当然,现在磁盘技术已经飞速发展了,现代主流磁盘一般都是如下结构:

    这样的磁盘一般有多个盘片,每个盘片都有正反两个磁头,磁头和盘片都被序号标记。这里用柱面代替磁道这个概念。

    显然,现在要确定某个512字节扇区就需要  磁片号,磁头号(上或者下),柱面号,扇区号。注意顺序不可颠倒。

    我们熟知的操作系统的主引导记录MBR就在 0磁片0磁头0柱面1扇区的512字节中。

    对于扇面中的靠近圆心的扇区和边远的扇区,他们的存取速度其实是一样的,因为角速度一样。

  • 相关阅读:
    shell脚本中生成延时
    linux小技巧
    自定义微信圈分享带的图片和内容
    OOM killer
    svn报错
    Fatal error: Call-time pass-by-reference has been removed
    ThinkPHP3.1.3源码分析---php文件压缩zlib.output_compression 和 ob_gzhandler
    确保 PHP 应用程序的安全
    判断来自电脑还是手机
    以About Us为范例在Zen cart中增加页面
  • 原文地址:https://www.cnblogs.com/skimoon/p/3700772.html
Copyright © 2020-2023  润新知