操作系统8-磁盘

文章目录

  • 磁盘及设备
    • 一、磁盘的结构
      • 1、如何在磁盘中读/写数据
      • 2、磁盘的分类
      • 总结
    • 二、磁盘调度算法
      • 1、一次磁盘读/写需要的时间
      • 2、先来先服务算法
      • 3、最短寻找时间优先(SSTF)
      • 4、扫描算法
      • 5、LOOK调度算法
      • 6、循环扫描算法(c-scan)
      • 7、C-Look调度算法
      • 总结
    • 三、减少磁盘延迟时间的方法
      • 总结
    • 四、磁盘管理
      • 1、磁盘初始化
      • 2、坏块的管理
      • 总结
    • 设备
      • 1、I/O设备的概念和分类
        • 什么是IO设备
        • I/O设备的分类-按使用特性
        • IO设备的分类-按传输速率分类
        • IO设备的分类-按信息交换的单位分类
        • 总结
      • IO控制器
        • IO设备的电子部件
        • IO控制器的组成
        • 总结
      • IO控制方式
        • 1、程序直接控制方式
        • 2、中断驱动方式
        • 3、DMA方式(传送单位是块)
        • 4、通道控制方式
        • 总结

磁盘及设备

一、磁盘的结构

磁盘的表面由一些磁性物质组成,可以用这些磁性物质来记录一些二进制数据。

磁盘的表面被划分为了一个个磁道,一个小圈就是一个磁道。
一个磁道又被划分成了一个个扇区,每个扇区就是一个个磁盘块,各个扇区存放的数据量相同

最内侧的磁道上的扇区面积最小,因此数据密度最大。
操作系统8-磁盘_第1张图片

1、如何在磁盘中读/写数据

需要把磁头移动到想要读/写扇区所在的磁道,磁盘会转起来,让目标扇区从磁头下面划过,才能完成对扇区的读/写操作。

一个磁盘有很多盘面,每个盘面有一个磁头,这些磁头由磁头臂 统一带动往里或者往外移动。

可以使用(柱面号,盘面号,扇区号)来定位任意一个“磁盘块”

操作系统8-磁盘_第2张图片

2、磁盘的分类

磁头是否可以移动分为:

  • 活动头磁盘
  • 固定头磁盘

操作系统8-磁盘_第3张图片
盘片是否可以更换,划分为:

  • 可更换的称为可还盘磁盘
  • 固定盘磁盘

总结

操作系统8-磁盘_第4张图片

二、磁盘调度算法

操作系统8-磁盘_第5张图片

1、一次磁盘读/写需要的时间

寻找时间(寻道时间):在读/写数据前,将磁头移动到指定磁道所花的时间,时间包括

  • 1、启动刺头臂所需的时间,假设耗时为s
  • 2、移动磁头也是需要花时间的,假设磁头是匀速移动的,每跨越一个磁道耗时为m,总共需要跨越n条磁道,

寻道时间T = s+m*n;

延迟时间TR:通过旋转磁盘,使得磁头定位到目标扇区所需要的时间,设磁盘转速为r,则平均所需的延迟时间TR = (1/2)*(1/r) = 1/2r。
1/r就是转一圈所需的时间,找到目标扇区平均需要转半圈,因此再乘以1/2.

所以买磁盘的时候要看转速,速度越快,读写越快

传输时间:从磁盘读出或者向磁盘写入数据所需的时间,假设磁盘转速为r,此次读/写的字节数为b,每个磁道上的字节数为N。则:传输时间 = (1/r)*(b/N)=b/(rN)

每个磁道可以存N字节数据,因此b字节的数据需要b/N个磁道才能存储,而读写一个磁道所需的时间刚好又是一转所需的时间1/r。

延迟时间和传输时间都与磁盘转速有关,而转速是硬件的固有熟悉,因此操作系统无法优化延迟时间和传输时间。

2、先来先服务算法

根据进程请求访问磁盘的先后顺序进行调度。

假设磁头的初始位置在100磁道,有多个进程新后陆续在请求访问55、58、39、18、90、160、150、38、184磁道

通过计算得到磁头总共移动了45+3+19+21+72+70+10+112+146=498个磁道

3、最短寻找时间优先(SSTF)

SSTF算法会优先处理的磁道是当前磁头最近的磁道,可以保证每次的寻道时间最短,但是不能保证总的寻道时间最短。(其实就是贪心,只能保证眼前最优,但未必整体最优)。

假设磁头的初始位置在100磁道,有多个进程新后陆续在请求访问55、58、39、18、90、160、150、38、184磁道
总共移动了248个磁道

4、扫描算法

只有磁头移动到最外侧磁道才能往内移动,移动到最内侧磁道才能往外侧移动。

假设磁头的初始位置在100磁道,有多个进程新后陆续在请求访问55、58、39、18、90、160、150、38、184磁道

操作系统8-磁盘_第6张图片总共移动了282个磁道

5、LOOK调度算法

如果在磁头移动方向上没有其他请求,可以立即改变磁头移动方向。

假设磁头的初始位置在100磁道,有多个进程新后陆续在请求访问55、58、39、18、90、160、150、38、184磁道

操作系统8-磁盘_第7张图片

6、循环扫描算法(c-scan)

规定磁头朝某个特定方向移动的时候才处理磁道上面的请求,而返回的时候直接快速到起始端而不处理任何请求。

假设磁头的初始位置在100磁道,有多个进程新后陆续在请求访问55、58、39、18、90、160、150、38、184磁道
操作系统8-磁盘_第8张图片
总共移动(200-100+200+90-0)=390个磁道

7、C-Look调度算法

如果磁头移动方向上已经没有磁到访问请求了,就可以立即让磁头返回,并且只需返回到有磁道访问请求的位置即可

操作系统8-磁盘_第9张图片

总结

操作系统8-磁盘_第10张图片

三、减少磁盘延迟时间的方法

操作系统8-磁盘_第11张图片
磁盘读入一个扇区数据之后需要一小段时间进行处理,如果逻辑上相邻的扇区在物理上也相邻,则读入几个连续的逻辑扇区,可能需要很长的“延迟时间”

可以使用==交替编号(使逻辑上相邻的在物理上有一定的间隔)==的策略,即让逻辑上相邻的扇区在物理上有一定的间隔,可以使读取连续的逻辑扇区所需的时间延迟更小。

操作系统8-磁盘_第12张图片操作系统8-磁盘_第13张图片

为什么柱面号要在盘面号之前?

  • 因为读取地址连续的磁盘块的时候,使用(柱面号,盘面号,扇区号)的地址结构可以减少磁头移动消耗的时间,因为如果柱面号相同,扇区号相同,那么只需要激活不同盘面的磁头即可。

操作系统8-磁盘_第14张图片

总结

操作系统8-磁盘_第15张图片

四、磁盘管理

1、磁盘初始化

  • 1、低级格式化(物理格式化),将磁盘的各个磁道划分为扇区,一个扇区可以分为头、数据区域、尾三个部分组成,管理扇区所需要的各种数据结构一般存放在头、尾两个部分,包括扇区校验码等,校验码用于校验扇区中的数据是否发生了错误。
  • 2、将磁盘进行分区,每个分区由若干柱面组成(即分为我们熟悉的C、D、E盘)
  • 3、进行逻辑格式化,创建文件系统,包括创建文件系统根目录、初始化存储空间管理所用的数据结构(如位示图、空闲分区表)
    -4、 引导块,计算机开机的时候需要进行一系列初始化的工作,这些初始化工作是通过执行初始化程序(自举程序)完成的。
    初始化程序可以放在ROM(只读存储器)中,ROM中的数据在出厂的时候就写入了,并且以后不能再修改。
    操作系统8-磁盘_第16张图片

2、坏块的管理

所谓坏块就是坏了、无法正常使用的扇区就是“坏块”,这属于硬件故障,操作系统是无法修复的,应该将坏块标记出来,以免错误使用到它。

对于简单的磁盘,可以在逻辑格式化的时候(建立文件系统的时候)对整个磁盘进行坏块检查,标明哪些扇区是坏扇区。比如:在FAT表上标明。

对于复杂的磁盘,磁盘控制器会维护一个坏块链表。
在磁盘出厂前进行低级格式化时就将坏块链进行初始化。
会保留一些“备用“扇区”,用于替换坏块,这种方案称为扇区备用。

总结

操作系统8-磁盘_第17张图片

设备

1、I/O设备的概念和分类

什么是IO设备

”IO“设备就是“输入/输出”
IO设备就是可以将数据输入(如鼠标、键盘就是典型的输入型设备)到计算机或者接收计算机输出数据的外部设备(显示器-输出型设备),属于计算机的硬件部件。

操作系统8-磁盘_第18张图片
UNIX系统将外部设备抽象成一种特殊的文件,用户可以使用与文件操作相同的方式对外部设备进行操作。

  • write操作:向外部设备写出数据
  • read操作:从外部设备读入数据

I/O设备的分类-按使用特性

  • 1、人机交互类外部设备
  • 2、存储设备
  • 3、网络通信设备

操作系统8-磁盘_第19张图片

IO设备的分类-按传输速率分类

  • 1、低速设备
  • 2、中速设备
  • 3、高速设备

操作系统8-磁盘_第20张图片

IO设备的分类-按信息交换的单位分类

  • 块设备(传输速率较高,可寻址,即对它可随机的读/写任一块。)
  • 字符设备
    操作系统8-磁盘_第21张图片

总结

操作系统8-磁盘_第22张图片

IO控制器

IO设备的组成:

  • 机械部件
  • 电子部件(IO控制器、设备控制器)

IO设备的机械部件主要用来执行具体的IO操作
比如我们看得见摸得着的鼠标/键盘的按钮,显示屏的LED,移动硬盘的磁臂、磁盘盘面。

IO设备的电子部件通常是一块插入主板扩充槽的印刷电路板。

IO设备的电子部件

CPU无法直接控制IO设备的机械部件,因此IO设备还需要一个电子部件作为CPU和IO设备机械部件之间的中介,用于实现CPU队设备的控制。

这个电子部件就是IO控制器,又称为设备控制器,CPU可以控制IO控制器,又由IO控制器来控制设备的机械部件。

IO控制器的功能:

  • 接受和识别CPU发出的命令
    如CPU发来的read/write命令,IO控制器中会有相应的控制寄存器来存放命令和参数。

  • 向CPU报告设备的状态

  • 数据交换

  • 地址识别

操作系统8-磁盘_第23张图片

IO控制器的组成

  • CPU与控制器之间的接口
  • IO逻辑
  • 控制器与设备的借口

操作系统8-磁盘_第24张图片
操作系统8-磁盘_第25张图片

总结

操作系统8-磁盘_第26张图片

IO控制方式

  • 1、程序直接控制方式
  • 2、中断驱动方式
  • 3、DMA方式
  • 4、通道控制方式

学习的时候需要考虑的问题有:

  • 1、完成一次读/写操作的流程
  • 2、CPU干预的频率
  • 3、数据传送的单位
  • 4、数据的流向
  • 5、主要缺点和主要优点

1、程序直接控制方式

  • 完成一次读/写操作的流程
  • CPU干预很频繁,IO操作开始之前,完成之后需要CPU介入,并且在等待IO完成的过程中CPU需要不断的轮询检查。
  • 数据传送的单位,每次读/写是一个字
  • 数据流向
    读操作(数据输入):IO设备-》CPU寄存器-〉内存
    写操作(数据输出):内存-》CPU寄存器-〉IO设备
  • 优点:实现简单,
  • 缺点:CPU和IO设备只能串行工作,CPU需要一直轮询检查,长期处于忙等状态,CPU利用率低。
    操作系统8-磁盘_第27张图片完成一次读/写操作的流程

操作系统8-磁盘_第28张图片
操作系统8-磁盘_第29张图片

2、中断驱动方式

引入中断机制,由于IO设备速度很慢,因此在CPU发出读/写命令之后,可将等待IO的进程阻塞,先切换到别的进行运行,当IO结束之后,控制器会向CPU发出一个中断信号,CPU检测到中断信号后,会保存当前进程的运行环境信息,转去执行中断处理程序处理该中断。

操作系统8-磁盘_第30张图片

3、DMA方式(传送单位是块)

操作系统8-磁盘_第31张图片

之前的读/写操作都必须经过CPU,DMA不再经过CPU

  • 1、数据的传送单位是“块”,不再是一个字、一个字传送
  • 2、数据的流向是从设备直接放入内存,或者从内存直接到设备,不需要CPU作为”快递小哥“

操作系统8-磁盘_第32张图片

操作系统8-磁盘_第33张图片

4、通道控制方式

通道:一种硬件,可以理解为弱鸡版的CPU,通道可以识别并执行一系列通道指令

操作系统8-磁盘_第34张图片

操作系统8-磁盘_第35张图片

总结

操作系统8-磁盘_第36张图片

你可能感兴趣的:(操作系统)