暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

你所忽略的磁盘与IO

阿斌Java之路 2022-06-19
772

磁盘

磁盘的构成

盘面
:一般磁盘有多个盘片,一个盘片的正反两面有两个盘面

img

柱面
:一个盘面上相同的一个圈,被称为磁道。多个盘面上的相同位置的磁道称为柱面

img

扇区
:一个磁道被划分为多个扇区,一个扇区也被称为盘快

我们可以根据(柱面号,盘面号,扇区号)来确定一个磁盘块的具体位置。

磁盘调度算法

引入磁盘调度的目的:降低磁盘访问时间,提高文件系统的效率

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

①启动磁头臂是需要时间的。假设耗时为s;

②移动磁头也是需要时间的。假设磁头匀速移动,每跨越一个磁道耗时为m,总共需要跨越n条磁道。则:

寻道时间Ts =s + m*n

  1. 延迟时间
    TR:通过旋转磁盘,使磁头定位到目标扇区所需要的时间。设磁盘转速为r(单位:转/秒,或转/分),则

平均所需的延迟时间TR= (1/2)*(1/r) = 1/2r

  1. 传输时间
    Tt:从磁盘读出或向磁盘写入数据所经历的时间,假设磁盘转速为r,此次读/写的字节数为b,每个磁道上的字节数为N。则:

传输时间T=(1/r)*(b/N)= b/(rN)

img

可以看出,我们的时间主要会花费在寻道时间上,由于磁头是机械的运动,如何避免来回的寻道,也是我们磁盘调度算法的核心目标。

先来先服务算法

FCFS算法根据进程请求访问磁盘的先后顺序进行调度,这是一种最简单的调度算法。

img

优点:公平;如果请求访问的磁道比较集中的话,算法性能还算过的去

缺点:如果有大量进程竞争使用磁盘,请求访问的磁道很分散,则FCFS在性能上很差,寻道时间长。

最短寻道时间优先

SSTF算法选择调度处理的磁道是与当前所在磁道距离最近的磁道,以便使每次的寻找时间最短。

img

优点:算法性能好,平均寻道时间短

缺点:会产生饥饿现象

扫描算法

SCAN算法在磁头当前移动方向上选择与当前磁头所在磁道距离最近的请求作为下一次服务的对象,实际上就是在最短寻找时间优先算法的基础上规定了磁头运动的方向。又称电梯算法。

img

优点:性能较好,寻道时间短,不会产生饥饿现象

缺点:只有达到最边上的磁道时才能改变磁头移动方向;对于各个位置的磁道响应频率不平均

循环扫描算法

在扫描算法的基础上规定磁头单向移动来提供服务,回返时直接快速移动至起始端而不服务任何请求。

img

优点:比起SCAN来,对于各个位置磁道的响应频率很平均。

缺点:只有到达最边上的磁道时才能改变磁头移动方向;另外,比起SCAN算法来,平均寻道时间更长。

总结如下:

img
img

IO

I/O设备

I/O设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备,属于计算机中的硬件部分。

I/O设备按使用特性可以分为以下类型:

  1. 人机交互类设备。用于与计算机用户之间交互的设备,如打印机、显示器、鼠标和键盘等。
  2. 存储设备。用于存储程序和数据的设备,如磁盘、磁带和光盘等。
  3. 网络通信设备。用于与远程设备通信的设备,如各种网络接口、调制解调器等。

按传输速率分类:

  1. 低俗设备。传输速率仅为每秒几字节到数百字节的一类设备,如键盘、鼠标等。
  2. 中速设备。传输速率为每秒数千字节至数万字节的一类设备,如打印机等。
  3. 高速设备。传输速率在数百千字节至千兆字节的一类设备,如磁带机、磁盘机等。

按信息交换的单位分类:

  1. 块设备。由于信息的存取总是以数据块为单位的,所以存储信息的设备称为块设备。传输速率高、可寻址。
  2. 字符设备。用于数据输入、输出的设备为字符设备,因为其传输的基本单位是字符。传输速率低、不可寻址。

I/O控制方式

设备管理的主要任务之一是控制设备和内存或处理机之间的数据传送。外围设备和内存之间的输入/输出控制方式有如下4种。

程序直接控制方式

计算机从外部设备读取数据到存储器,每次读一个字的数据。对读入的每个字,CPU需要对外设状态进行循环检查,直到确定该字已经在I/O控制器的数据寄存器中。

CPU的绝大部分时间处于等待I/O设备完成数据I/O的循环测试中,造成了CPU资源的极大浪费。

数据传送的单位:每次读写一个字

数据的流向:

读操作(数据输入):I/O设备->CPU->内存

写操作(数据输出):内存->CPU->I/O设备

优点:简单且易于实现

缺点:CPU利用率极低

img

中断驱动方式

允许I/O设备主动打断CPU的运行并请求服务,从而“解放”CPU,使得其向I/O控制器发送读命令后可以继续做其他工作。

数据传送的单位:每次读写一个字

数据的流向:

读操作(数据输入):I/O设备->CPU->内存

写操作(数据输出):内存->CPU->I/O设备

优点:CPU不再需要不停地查询,CPU和I/O设备可并行工作,CPU利用率明显提高。

缺点:数据中的每个字在存储器与I/O控制器之间的传输都必须经过CPU,这就导致了中断驱动方式仍然后消耗较多的CPU时间。

img

DMA方式

DMA(直接存储器存取)方式的基本思想是在I/O设备和内存之间开辟直接的数据交换通路,彻底解放CPU。

DMA方式的特点如下:

  1. 数据的传送单位是“块”。不再是一个字、一个字的传送。
  2. 数据的流向是从设备直接放入内存,或者从内存直接到设备。不再经过CPU。
  3. 仅在传送一个或多个数据块的开始和结束时,才需要CPU干预。整块数据的传送是在DMA控制器的控制下完成的。

DMA控制器的组成如下图所示:

img

DMA方式的流程如下图所示:

img
  • 数据传送的单位:每次读或写一个或多个块
  • 数据的流向:

读操作(数据输入):I/O设备->内存

写操作(数据输出):内存->I/O设备

  • 优点:数据传输以“块”为单位,CPU介入频率进一步降低。数据的传输不再需要先经过CPU再写入内存,数据传输效率进一步增加。CPU和I/O设备的并行性得到提升。
  • 缺点:CPU每发出一条I/O指令,只能读/写一个或多个连续的数据块。

通道控制方式

通道:一种硬件,可以识别并执行一系列通道指令。

img

与CPU相比,通道的指令类型单一,没有自己的内存,通道所执行的通道程序是放在主机的内存中的,也就是说通道与CPU共享内存。

四种控制方式总结如下:

img




END



后台回复关键词 操作系统 获取今日推荐资料

微信8.0新增了一万的好友数,之前没加上好友的可以加一下我的个人微信,再晚又满了,一起抱团取暖结伴内卷。



扫码拉群,学习打卡,交流经验


每周一读




文章转载自阿斌Java之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论