zoukankan      html  css  js  c++  java
  • 磁盘调度-01

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 相关阅读:
    Oracle函数应用与查询聚合统计
    Oracle子查询与分页查询
    DB2端口(转自百度文库http://wenku.baidu.com/view/47809b26aaea998fcc220e65.html)
    职场生涯
    git 管理多个私钥
    ubuntu 解压 windows 生成的 zip 文件乱码问题
    js实现类似于add(1)(2)(3)调用方式的方法
    webkit内核浏览器的CSS写法
    python 单例模式
    Javascript模块化编程:AMD规范及require.js用法【转】
  • 原文地址:https://www.cnblogs.com/skimoon/p/3700772.html
Copyright © 2011-2022 走看看