计算机操作系统笔记第六章输入输出系统

适用计算机操作系统(OS)(第四版)
自己的学习笔记,PPT及图片来源网络及自己老师,侵删。
三硬一软一接口——3硬:设备管理
最好与组成原理相结合(还没学)

第六章输入输出系统

操作系统中最繁杂且与硬件紧密相关的部分。

  • I/O性能经常成为系统性能的瓶颈。

  • 操作系统庞大复杂的原因之一是:资源多、杂,并发,均来自I/O。

  • 理解I/O的工作过程与结构是理解操作系统的工作过程与结构的关键。

6.1 I/O系统的功能、模型和接口

6.1.1 I/O系统的基本功能

1 )隐藏物理设备的细节

I/O设备类型多,差异大。利用设备控制器(硬件)进行控制。隐藏物理设备的使用细节,仅向上层提高少量的,抽象的读写命令。

2 )与设备的无关性

用户仅提供逻辑设备名来使用设备;

3 )提高处理机和I/O设备的利用率

设备之间、设备与处理机之间均可并行操作。要求CPU快速响应I/O请求,减少对设备运行的干预时间。

4 )对I/O设备进行控制

I/O设备有四种控制方式:① 采用轮询的可编程I/O方式;② 采用中断的可编程I/O方式;③ 直接存储器访问方式;④ I/O通道方式。

5 )确保对设备的正确共享

正确的对待独占设备与共享设备。

6 )错误处理
对设备运行时出现的错误和故障进行处理。

6.1.2 I/O系统的层次结构和模型

1、I/O系统的层次结构

1 )用户层软件:实现与用户交互的接口
2 )设备独立性软件:用来实现用户程序与设备驱动器的统一接口,设备命名,设备保护,设备的保护已经设备的分配和释放等,同时为设备管理和数据传送提高必要的存储空间。
3 )设备驱动程序:实现系统对设备发出指令
4 )中断处理程序:用于保护被中断进程的CPU环境,转入相应的中断处理程序进行处理,处理完毕恢复现场。
在这里插入图片描述
2 、I/O系统中各模块之间的层次视图
在这里插入图片描述
I/O系统的分层 :

  • 中断处理程序:直接与硬件进行交互,处理中断问题。
  • 设备驱动程序:将上层发来的抽象I/O请求转换为对I/O设备的具体命令和参数。
  • 设备独立性软件:使I/O系统具有了设备无关性,即I/O设备独立与具体使用的物理设备。

6.1.3 I/O 系统接口

1 、块设备接口
块设备接口是块设备管理器和高层之间的接口。该接口反应了大部分磁盘存储器和光盘存储器的本质特征,用于控制该类设备的输入或者输出。

1 )块设备是指数据的存取和传输都是以数据块为单位的设备。

2 )隐藏了磁盘的二维结构

3 )将抽象命令映射所为低层操作

2、流设备接口
流设备接口是流设备管理程序与高层之间的接口。该接口又称为字符设备接口,用来控制字符设备的输入或者输出。

1 )字符设备
字符设备是指,数据的存取和传输是以字符为单位的设备,

2 )get和put操作
由于字符设备是不可寻址的,因此对它只能采取顺序存取的方式,通常是为其建立一个字符缓冲区(队列)。

3 )in-control指令
字符设备类型非常多,且差异较大,为了可以能够统一的处理他们,通常在流设备中提供一种通用的in-control指令,在该指令中包含许多的参数,每一个参数表示一个与设备相关的特定功能。

由于大部分流设备都是独占设备,必须采取互斥的方式实现共享,为此,流设备接口了打开和关闭操作。使用这类设备时,必须先用打开操作来打开该设备,如果设备已经被打开,则表示它正在被其他进程使用。

3.网络接口
在现代OS中,都提供了面向网络的功能。但首先还需要通过某种方式把计算机连接到网络上。同时操作系统也必须提供相应的网络软件和网络通信接口,使计算机能通过网络与网络上的其它计算机进行通信或上网浏览。

6.2 I/O设备和设备控制器

6.2.1 I/O设备

1、I/O设备的类型

按传输速率分类:

①低速设备:传输速率为每秒几个字节~几百字节;如键盘、鼠标、语音输入输出设备。

②中速设备:传输速率为每秒几KB到几十KB;如行式或激光打印机。

③高速设备:传输速率为每秒几百KB到几MB;如磁带机、磁盘机、光盘机等。

按信息交换的单位分类:

① 块设备:常用于存储信息-存储设备;信息的存取是以数据块为单位;属于有结构设备。典型的块设备是磁盘。盘块大小常为512B~4KB。

磁盘设备的基本特征有:传输速率高(每秒几兆位);可寻址(即可随机读写任一块)。

② 字符设备(Character Device):常用于数据的输入、输出-输入/输出设备;以字符为基本单位;属于无结构设备。如交互式终端、打印机等。

按设备的共享属性分类:

①独占设备:即临界资源。

②共享设备:在一段时间内允许多个进程同时访问;对某一时刻,仍是只允许一个进程访问。如磁盘。常是可寻址的、可随机访问的。

③虚拟设备:经虚拟技术将一台独占设备变换为若干台逻辑设备,共若干个用户(进程)同时使用,把这种经过虚拟技术处理过的设备称为虚拟设备。

按数据传输的单位分类:

①串行设备:数据的传输是数据按二进制位一位一位的顺序传送;相应的接口叫串口。典型的设备是磁键盘、鼠标、USB设备等。

②并行设备:8位数据同时并行进行传送的设备;相应的接口叫并口;如扫描仪、打印机、磁盘驱动器、光驱等。

设备的从属特性分:系统设备和用户设备

2、设备与控制器之间的接口

设备并不是直接与CPU通信的,而是与设备控制器通信。因此在I/O设备中有应含有与设备控制器间的接口,该接口中有三种类型的信号。
在这里插入图片描述
1)数据信号:可由设备到控制器,称为输入;由控制器到设备称为输出。

2 )控制信号:由设备控制器发送给设备,用于规定设备执行读、写或某种操作的信号。

3 )状态信号:由设备到控制器,用于指示设备的当前状态。

6.2.2 设备控制器

设备控制器是CPU和I/O设备之间的接口;接收CPU发来的命令,控制I/O设备工作,以实现I/O设备和计算机之间的数据交换。

设备控制器的基本功能 :

1 )接收和识别命令
2 )数据交换
3 )设备状态的了解和报告
4 )地址识别
5 )数据缓冲
6 )差错控制

6.2.4 I/O通道

弱化版的CPU

尽管在增加了设备控制器之后,减轻了CPU的负担,但是CPU的负担依旧很重,增加I/O通道的目的是使一些原来由CPU处理的I/O任务转由通道来承担,从而把CPU从复杂的I/O任务解脱出来。
在这里插入图片描述
与处理机的不同:
1)指令类型单一,仅限于和I/O操作相关的指令;
2) 没有自己的内存,通道程序存放在主机的内存中,即与 CPU共享主存。

通道的类型 :
1 )字节多路通道
2 )数组选择通道
3 )数组多路通道

”瓶颈“问题 :
通道的价格昂贵,致使机器中所设置的通道数量势必较少,这又使得它称为了I/O的瓶颈,进而造成整个系统吞吐量下降。

解决 :把一个设备连接到多个控制器上,而一个控制器又连接到多个通道上,不增加通道数的情况下增加通路。

6.3 中断机构和中断处理程序

6.3.1 中断简介

1 、中断和陷入

中断:是指CPU对I/O设备发来的中断信号的一种响应。CPU保护暂停当前进程,转而去处理引发中断的进程。执行完后,再返回到原进程,继续执行,由于中断是外部造成的,所以又叫外中断。

陷入:显然,陷入是由CPU进程内部事件引发的中断,因此叫陷入或内中断。其产生的原因往往是由于进程本身出现运行时异常。

两者的区别仅仅是信号的来源,即是来自CPU外部,还是CPU内部。

2 、中断向量表和中断优先级

1 )中断向量表

用于记录相应中断处理程序入口地址的映射表。表中有为中断类型分配的中断号和相对应的中断处理程序的入口地址。当中断来临时,由中断控制器确定中断号,再到表中寻找程序。

2 )中断优先级

对于并发的中断请求,必须要给出合理的中断顺序,比如键盘中断和磁盘中断谁更重要等,要给出解决中断的优先级。

3 、多中断的处理方式
当处理机正在处理一个中断,此时又收到了一个中断。

1 )屏蔽(禁止)中断

对于新来的中断,在当前中断未完成之前,对于其他中断不予理睬,直到当前处理完。采用先来先服务的方式。

2 )嵌套中断

中断的中断,中断处理程序也是进程,当更高优先级的中断处理程序到来时,可以剥夺当前中断处理进程的处理机,及中断的中断。此种情况下,CPU总是优先响应更高优先级的中断请求。

6.3.2 中断处理程序

1 )测定是否有未响应的中断信号。当设备完成I/O后,设备控制器会向处理机发送中断信号,告诉I/O完成。之后要测试在中断请求队列中是否有未响应的请求。

2 )保护被中断进程的CPU环境。保存现场,将进程的CPU信息全部载入进程PCB中(堆栈区),然后切换进程。

3 )转入相应的设备处理程序。根据中断号找到相应程序的入口,交给设备驱动程序。

4 )中断处理。检测设备控制器中相应设备的状态(正常、异常),并给予相应的解决。

5 )恢复CPU现场并退出中断。如果是屏蔽中断,返回被中断进程;嵌套中断,检查优先级队列,根据是否有更高优先级中断请求,选择返回原中断还是处理更高优先级中断;

6 )检测中断是否处理正确,向上层软件确定结果,报告等后续操作。
在这里插入图片描述

6.4 设备驱动程序

6.4.1 设备驱动程序概述

1 )驱动程序的功能

  • 接收由与上层设备无关的软件发来的命令和参数,并将命令中的抽象要求,转换为与设备相关的低层操作序列;
  • 检查用户I/O请求的合法性,了解I/O设备的工作状态,传递与I/O设备操作有关的参数,设置设备的工作方式;
  • 发出I/O命令,如果设备空闲,便立即启动I/O设备,完成指定的I/O操作;如果设备忙碌,则将请求者挂在设备队列上等待;
  • 及时响应由设备控制器发来的中断请求,并根据其中断类型,调用相应的中断处理程序进行处理。

2 )设备驱动程序的特点

  • 驱动程序是与设备无关的软件和设备控制器之间通信和转换的程序。(位置)
  • 驱动程序与设备控制器和I/O设备的硬件特性,紧密相关。 (硬件特性)
  • 驱动程序与I/O设备所采用的I/O控制方式紧密相关。 (硬件特性)
  • 由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言编写。
  • 驱动程序应允许可重入,一个正在运行的驱动程序常会在一次调用完成前被再次调用。

3 )设备处理方式,具体分为三类:

  • 为每一类设备设置一个进程,专门用于执行这类设备的I/O操作。这种方式比较适合于较大的系统;
  • 在整个系统中设置一个I/O管理进程专门用于执行系统中所有各类设备的I/O操作。也可以设置一个输入进程和一个输出进程,分别处理系统中的输入或输出操作;
  • 不设置专门的设备处理进程,而只为各类设备设置相应的设备驱动程序,供用户或系统进程调用。这种方式目前用得较多。

6.4.2设备驱动程序处理过程

1 )将抽象要求转换为具体要求
2 )检查I/O请求的合法性
3 )读出和检查设备的状态
4 )传送必要的参数
5 )方式的设置
6 )启动I/O设备

6.4.3 对I/O设备的控制方式

目的 :减少主机对I/O控制的干预,将CPU从繁杂的I/O控制事物中解脱出来。

1、使用轮询的程序I/O方式

cpu对I/O设备的控制采取程序I/O方式,或称忙——等方式

1 )向控制器发送一条I/O指令;启动输入设备输入数据;把状态寄存器busy=1。
2 )然后不断测试标志。为1:表示输入机尚未输完一个字,CPU继续对该标志测试;直到为0:数据已输入控制器数据寄存器中。
3 )CPU取控制器中的数据送入内存单元,完成一个字的I/O 。

缺点:高速CPU空闲等待低速I/O设备,致使CPU极大浪费。

2 、使用中断的程序驱动I/O方式

1 )CPU向相应的设备控制器发出一条I/O命令
2 )然后立即返回继续执行任务。
3 )设备控制器按照命令的要求去控制指定I/O设备。
4 )这时CPU与I/O设备并行操作。

I/O设备输入数据中,无需CPU干预,因而可使CPU与I/O设备并行工作。从而提高了整个系统的资源利用率及吞吐量。

3 、直接存储器访问

特点:
1 )数据传输的基本单位是数据块;
2 )所传送的数据是从设备直接送入内存的,或者直接从内存进设备;不需要CPU操作。
3 )CPU干预进一步减少:仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。

可见DMA方式又是成百倍的减少了CPU对I/O的干预,进一步提高了CPU与I/O设备的并行操作程度。

DMA控制器由三部分组成:

  • 主机与DMA控制器的接口;

  • DMA控制器与块设备的接口;

  • I/O控制逻辑。

4 、I/O通道控制方式

映入 :
DMA适用于读一个连续的数据块;
如一次读多个数据块到内存不同区域,须由CPU分别发送多条I/O指令、进行多次DMA中断处理。再进一步减少CPU的干预(减少中断), 引入通道。

即把对一个数据块的干预转变为实现对一组数据块的读(写)及有关的控制和管理为单位的干预。
当CPU要完成一组相关的读/写操作及有关的控制时只需发一条I/O指令,给出通道程序的首地址及要访问设备即可。

CPU、通道和I/O设备三者的并行操作,提高整系统资源利用率。

6.5 与设备无关的I/O软件

6.5.1 与设备无关软件的基本概念

  • 应用程序中用户使用逻辑设备名请求设备,系统实际执行时用的为物理设备。

  • 系统必须具有将逻辑设备名转换为物理设备名的功能

6.5.2 与设备无关的软件

与设备无关的软件中,包括了执行所有设备的公有操作的软件,具体包括如下几项:

  • 设备驱动的统一接口:可以很方便的添加设备的驱动程序。

  • 缓冲管理:缓和CPU与I/O设备之间运行速度的矛盾

  • 差错控制:包括两类错误,暂时性错误,永久性错误。

  • 对独立设备的分配与回收:对独占设备有系统进行统一的分配和回收处理。

  • 独立于设备的逻辑数据块:隐藏不同设备的物理数据块大小的差异,向高层软件提供大小统一的逻辑数据块。

6.5.3 设备分配

设备分配中的数据结构

1)设备控制表DCT(一个设备配置一张)
用于反映设备的特性、设备和控制器的连接情况。
在这里插入图片描述
2)控制器控制表COCT(一个控制器一个)
反映I/O控制器的使用状态及和通道的连接情况。
在这里插入图片描述

3)通道控制表CHCT(一个通道一个)
用于记录本通道情况。
在这里插入图片描述

4)系统设备表SDT(整个系统设置一张)
记录已经连接到系统中全部物理设备的情况,并为每个设备设一个表目。
在这里插入图片描述
设备分配时应考虑的因素 :

1)设备的固有属性

独占设备:采用独享分配策略。这种分配方式不仅是设备利用率低,而且会引起死锁。

共享设备:可分配给多个进程,但这些进程对设备的访问需进行合理调度。

虚拟设备:属可共享设备,可分配给多个进程使用,并可对这些进程访问该设备的先后次序控制。

2)设备分配算法

先来先服务:进程按申请时间排成设备请求队列。

优先级高者优先:进程按优先级排成设备请求队列,优先级高的在前,相同的按先来先服务原则。

3)设备分配中的安全性

  • 安全分配方式:一个进程只提出一个I/O请求,即发出I/O请求后就阻塞,直至I/O操作完成才被唤醒。摒弃了“请求和保持”条件。
    缺点:进程进展缓慢,CPU与I/O串行。
  • 不安全分配方式:I/O请求后仍继续执行,只有I/O设备不能满足时才阻塞(应有安全性的检测)。
    优点:一个进程可同时操作多个设备,速度快。
    缺点:分配不安全,可能死锁。

设备独立性

即不能因为设备的忙碌、故障或更换而影响程序的运行, 向用户屏蔽物理设备, 呈现给用户的一个操作简单的逻辑设备。

优点:
设备分配灵活:若用户使用物理设备名,只能对应一台设备;但逻辑设备名可对应多台同类设备。

易于实现I/O重定向:指用于I/O操作的设备可简单的进行更换,不必改变应用程序。

独占设备的分配程序 :

1)设备分配技术类型 :

独占分配
把独占设备固定地分配给一个进程,直至该进程完成I/O操作并且释放它为止。

共享分配
由若干进程共用同一设备。

虚拟分配
利用共享设备去实现独占设备的功能,从而使独占设备“感觉上”成为可共享的、快速的I/O设备。

2 )独占设备分配程序

  • 分配设备:物理设备名→SDT →DCT(读设备状态,若忙,则申请进程阻塞,挂在该设备队列;空闲则计算设备分配安全性,安全则分配;否则阻塞)。
  • 分配控制器:在DCT中找到与该设备相连的COCT,读状态,若忙,则阻塞;空闲分配。
  • 分配通道:在COCT中找到CHCT,读状态,若忙,则阻塞;空闲分配。

在设备、控制器、通道三者都分配成功时,此时设备分配成功,可启动进行数据传送。

3)改进

缺点
1 )以物理设备名提出I/O。
2 )单通路,易产生“瓶颈”现象。

改进方法有:

1 )增加设备独立性
以逻辑设备名提出I/O,则从SDT中找第一个该类设备,忙,再找第二个等。

2 )多通路
对通道和控制器的分配,可有几次反复。如和某设备相连的控制器忙,则可返回DCT,查找和它相连的第二个等。

6.5.4 逻辑设备名到物理设备名的的映射

1 )逻辑设备表LUT。
实现逻辑设备名到物理设备名的映射,LUT中要包括:逻辑设备名、物理设备名、设备驱动程序的入口地址。
在这里插入图片描述

2 )LUT的设置:
单用户系统中,整个系统一张LUT(不允许有相同的逻辑设备名)。
多用户系统中,为每个用户设置一张LUT(放在PCB中),可使用下表:
在这里插入图片描述

6.6 用户层的I/O软件

6.6.2 假脱机(SPOOLing)技术

为了解决人机矛盾及CPU和I/O设备速度不匹配的矛盾—脱机输入输出方式,即在主机的控制下模拟实现脱机输入、输出功能。

  • 利用外围计算机专门负责I/O工作
  • 解决了慢速外设与快速主机的匹配问题

存在如下缺点:

  • 需要人工干预,产生人工错误的机会多,且效率低

  • 周转时间慢;

  • 无法实现优先级调度。

SPOOLing系统的组成

(1) 输入井和输出井:磁盘上开辟的两大存储空间
(模拟脱机技术中的磁带)

(2) 输入缓冲区和输出缓冲区:内存中开辟的两缓冲区
(解决CPU与磁盘之间速度不匹配的矛盾)

(3) 输入进程SPi和输出进程SPo
(模拟脱机技术中的外围控制机)

在这里插入图片描述
在这里插入图片描述

spooling技术案例 :共享打印机
在这里插入图片描述

1)先在输出井中申请一个空闲盘块区,并将要打印的数据送入其中;
2)然后为用户申请并填写请求打印表,将该表挂到请求打印队列上。
3)若打印机空闲,输出程序从请求打印队首取表
4)将要打印的数据从输出井传送到内存缓冲区,再进行打印,直到打印队列为空。

6.7 缓冲区管理

6.7.1 缓冲的引入

1 )缓和CPU与I/O设备间速度不匹配的矛盾。
2 )减少对CPU的中断频率, 放宽对CPU中断响应时间的限制。
3 )提高CPU和I/O设备之间的并行性。
4 )解决数据粒度不匹配的问题

I/O缓冲区设置 :

  • 缓冲区实现
    • 硬缓冲:
      在设备中(硬件寄存器)设置缓冲区,由硬件实现。
    • 软缓冲:
      在内存中开辟一个空间,用作缓冲区。
  • 缓冲区管理
    • 简单缓冲:单缓冲和双缓冲
    • 多缓冲:循环缓冲和缓冲池

6.7.2 单缓冲与双缓冲区

缓冲区 :缓冲区非空,不能输入数据,只有当缓冲区中的数据全部传送至工作区,才能接受下一次的数据。缓冲区为空时,可以输入数据,但只有当缓冲区为满之后,才可以向工作区传输数据。

单缓冲区 :

平均工作时间 : Max(T,C)+M
初始状态 :工作区满,缓冲区空。

1)T > C
平均时间 T+M

在这里插入图片描述

2)T < C
平均时间 C+M
在这里插入图片描述

双缓冲区 :

初始状态 :工作区为空,一个缓冲区满,另一个缓冲区为空
平均工作时间 : Max(T,M+C)

1 )T > M + C
平均时间 :T
在这里插入图片描述
2 )T < M + C
平均时间 :M + C

找不到一个和初始状态相同的时间,但是会发现每经过M+C段时间会完成对一个数据块的处理
在这里插入图片描述

双机通信时缓冲区的设置 :

单缓冲区 :只能进行单方面的通信,即不允许双方同时向对方发送数据。

双缓冲区 :可以实现同时通信,一个作为发送缓冲区,一个作为接受缓冲区。

6.7.3 循环缓冲

指针:

  • Nextg:指示计算进程下一个可用的满缓冲

  • Nexti:指示输入进程下一个可用的空缓冲

  • Current:指示计算进程正在使用的缓冲区

在这里插入图片描述
进程同步 :

Nexti和Nextg同向移动

  • Nexti指针追上Nextg:则输入速度>计算速度,全部缓冲区已满。则输入进程阻塞,等待有空缓冲区出现。此时称为系统受计算限制。

  • Nextg指针追上Nexti:则输入速度<计算速度,全部缓冲区已空。则计算进程阻塞,等待有满缓冲区出现。此时称为系统受I/O限制。

这种循环缓冲只适用于特定的I/O进程和计算进程,属于专用缓冲,系统较大时,会有许多这样的循环缓冲,占用大量内存,利用率低

6.7.4 缓冲池

包含了三种队列 :

空缓冲队列
输入队列
输出队列

四种工作缓冲区:

收容输入缓冲区(hin):用于收容设备输入的数据。
提取输入缓冲区(sin):用于提取设备输入的数据。
收容输出缓冲区(hout):用于收容CPU输出的数据。
提取输出缓冲区(sout):用于提取CPU输出的数据。
在这里插入图片描述
四种情况 :
1)输入进程请求输入数据

从空缓冲队列队头取下一块缓冲区,作为收容输入缓冲区,当其充满之后,就会挂到输入队列队尾上。

2)计算进程请求一块输入数据
从输入队列队头取下一块缓冲区,作为提取输入缓冲区,当其为空之后,就会挂到空缓冲队列尾上。

3)计算进程请求将准备好的数据冲入缓冲区

从空缓冲队列队头取下一块缓冲区,作为收容输出缓冲区,当其充满之后,就会挂到输出队列队尾上。

4)输出进程请求输出数据到用户进程

从输出队列队头取下一块缓冲区,作为提取输出缓冲区,当其为空之后,就会挂到空缓冲队列尾上。

6.8 磁盘存储器的性能和调度

6.8.1 磁盘性能简述

从存储角度,与内存比较起来,磁盘有三个主要优点:
1 )可用的存储容量大、存取速度快,可以随机存取;
2 )每位的价格非常低;
3 )电源关掉后信息不会丢失。

提高磁盘I/O速度的主要途径有:

选择性能好的硬盘;
采用好的磁盘调度算法;
设置磁盘高速缓冲区。

磁盘的类型 :

(1) 固定头磁盘

每条磁道上都有一读/写磁头,通过这些磁头可访问所有各磁道,能进行并行读/写,有效地提高了磁盘的I/O速度。主要用于大容量磁盘上。

(2) 移动头磁盘

每一个盘面仅配有一个磁头,磁头必须能移动以进行寻道。移动磁头仅能以串行方式读/写,致使其I/O速度较慢; 但由于其结构简单, 故仍广泛应用于中小型磁盘设备中。

磁盘访问时间 :

(1) 寻道时间Ts : 指磁头从当前位置移动到指定磁道上所经历的时间) :该时间是启动磁头的时间s与磁头移动n条磁道的时间之和, 即 Ts=m×n+s。

(其中,m是一常数,与磁盘驱动器的速度有关。一般 m=0.2;磁头的启动时间约为2 ms。 一般磁盘的寻道时间大体上是5~30 ms。)

(2) 旋转延迟时间Tr (将指定扇区移动到磁头下面所经历的时间),如果磁盘的旋转速度为r转/ms,则每转需时1/r (ms),因此平均旋转延迟时间为1/2r。

(3) 传输时间Tt (把数据从磁盘读出或向磁盘写入数据所经历的时间) Tt的大小与每次所读/写的字节数b和旋转速度有关:
(N为一条磁道上的字节数)
在这里插入图片描述

访问时间Ta表示为:
在这里插入图片描述

6.8.2 早期的磁盘算法

1 )先来先服务(FCFS)

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

优点:公平、简单,且每个进程的请求都能依次地得到处理,不会出现某一进程的请求长期得不到满足的情况。
缺点:由于未对寻道进行优化,致使平均寻道时间可能较长。

请求序列:130,42,180,15,108,68,97
在这里插入图片描述
移动量: (130-53)+(130-42)+(180-42)+(180-15)+(108-15)+(108-68)+(97-68)=630

2 )最短寻道时间优先(SSTF)

选择要求访问的磁道与当前磁头所在的磁道距离最近的进程。

优点:较好的寻道性能。
缺点:可能出现某进程“饥饿”现象。

请求序列:130,42,180,15,108,68,97

在这里插入图片描述
移动量: (53-42)+(180-42)+(180-15)=314

6.8.3 基于扫描的磁盘调度算法

1 )扫描算法(SCAN)——电梯算法

选择其要求的磁道与当前磁头移动方向一致,且最近的进程。直到原方向上无进程需求时,才改变方向。

优点:既能获得较好的寻道性能,又能避免“饥饿”现象。
缺点:当磁头刚从里向外移动而越过了某一磁道时,恰好又有一进程请求访问此磁道,这时,该进程必须等待,磁头走一个来回,才处理该进程的请求,致使该进程的请求被大大地推迟。

请求序列:130,42,180,15,108,68,97
在这里插入图片描述
移动量:(53-15)+(180-15)=203

2 )循环扫描算法(CSCAN)

定磁头单向移动。到边缘后直接返回,从头开始。即将最小磁道号和最大磁道号构成循环。

请求序列:130,42,180,15,108,68,97

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从今天起请叫我小张

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值