第五章 设备管理 5.1 I/O系统 5.2 I/O控制方式 5.3 缓冲管理 5.4 设备分配 5.5 设备处理 5.6 磁盘存储器管理.

Slides:



Advertisements
Similar presentations
高校教师、高级项目经理 任铄 QQ : 第一章 操作系统引论 1.1 操作系统的目标和作用 1.2 操作系统的发展过程 1.3 操作系统的基本特性 1.4 操作系统的主要功能 1.5 OS 结构设计.
Advertisements

Linux 系统. 操作系统发展需求 1 没有操作系统 2 简单批处理操作系统 3 多道程序设计的批处理 4 多道程序设计的分时操作系统 5 多处理机并行系统 6 网络操作系统 7 分布式操作系统.
NAT与ICMP交互.
计算机网络课程总结 一、计算机网络基础 计算机网络定义和功能、基本组成 OSI/RM参考模型(各层的功能,相关概念, 模型中数据传输 等)
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
第五章 设备管理 5.1 I/O系统 5.2 I/O控制方式 5.3 缓冲管理 5.4 设备分配 5.5 设备处理 5.6 磁盘存储管理.
第三节    缓冲管理 缓冲技术实现基本思想 当一个进程执行写操作输出数据时,先向系统申请一个主存区域──缓冲区,然后,将数据高速送到缓冲区。若为顺序写请求,则不断把数据填到缓冲区,直到它被装满为止。此后,进程可以继续它的计算,同时,系统将缓冲区内容写到I/O设备上。 当一个进程执行操作输入数据时,先向系统申请一个主存区域──缓冲区,系统将一个物理记录的内容读到缓冲区域中,然后根据进程要求,把当前需要的逻辑记录从缓冲区中选出并传送给进程。
实用操作系统概念 张惠娟 副教授 1.
第五章 设备管理 5.1 I/O系统 5.2 I/O控制方式 5.3 缓冲管理 5.4 设备分配 5.5 设备处理 5.6 磁盘存储器管理.
第五章 设 备 管 理 5.1 I/O系统 5.2 I/O控制方式 5.3 缓冲管理 5.4 I/O软件 5.5 设备分配
设备管理.
Chapter 13 輸入/輸出系統 (I/O Systems)
在PHP和MYSQL中实现完美的中文显示
计算机基础知识 丁家营镇九年制学校 徐中先.
第5节 磁盘 磁盘的结构 磁盘的地址 磁盘访问的优化 磁盘使用过程 举例.
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
存储系统.
中国科学技术大学计算机系 陈香兰 Fall2013 第九讲 设备管理 中国科学技术大学计算机系 陈香兰 Fall2013.
大学计算机基础 典型案例之一 构建FPT服务器.
走进编程 程序的顺序结构(二).
李元金 计算机与信息工程学院 第 22 讲 磁盘存储器的管理(1) 李元金 计算机与信息工程学院 1/
Windows网络操作系统管理 ——Windows Server 2008 R2.
Windows网络操作系统管理 ——Windows Server 2008 R2.
PURSUING EXCELLENCE / TOWARD SUCCESS WUCHANG UNIVERSITY OF TECHNOLOGY
第17章 网站发布.
Online job scheduling in Distributed Machine Learning Clusters
逆向工程-汇编语言
数据挖掘工具性能比较.
第五章 设备管理.
CPU结构和功能.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
7.1.1 设备管理的功能(P95) 分配设备:按设备的不同类型和操作系统选用的算法分配。包括分配相应的通道、设备控制器以及对未分配到的任务或怍业进行排队等; 控制和实现真正的输入输出操作。包括通道程序控制、启动设备、及时响应及处理中断讯号等; 对输入输出缓冲区进行管理。例如逻辑名的管理,多个缓冲区的分时以及串并行操作,同类多个外部设备的均衡工作,避免“忙的忙”和“闲的闲”;
设备管理 第7章 设备管理.
第六章 设备管理 Devices Management
SOA – Experiment 2: Query Classification Web Service
操作系统原理与设计 Operating Systems: Design and Implementation
内容摘要 ■ 课程概述 ■ 教学安排 ■ 什么是操作系统? ■ 为什么学习操作系统? ■ 如何学习操作系统? ■ 操作系统实例
C语言程序设计 主讲教师:陆幼利.
微机系统的组成.
第11章 设备管理 (Chapter 11 Device Management)
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
本节内容 随机读取 视频提供:昆山爱达人信息技术有限公司.
VisComposer 2019/4/17.
Cassandra应用及高性能客户端 董亚军 来自Newegg-NESC.
第五章 设备管理 5.1 I/O系统 5.2 I/O控制方式 5.3 缓冲管理 5.4 设备分配 5.5 设备处理 5.6 磁盘存储器管理.
实验七 安全FTP服务器实验 2019/4/28.
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
本节内容 Win32 API中的宽字符 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
iSIGHT 基本培训 使用 Excel的栅栏问题
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
本节内容 文件系统 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
HSC高速输出例程 HORNER APG.
第六章设备管理 本章重点: 1.掌握设备管理的功能和任务; 2.掌握设备的分类方法; 3.掌握I/O控制的实现;
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
Google的云计算 分布式锁服务Chubby.
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 进程 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第十七讲 密码执行(1).
李元金 计算机与信息工程学院 第 17 讲 设备管理(1) 李元金 计算机与信息工程学院 1/
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
李元金 计算机与信息工程学院 第 18 讲 设备管理(2) 李元金 计算机与信息工程学院 1/
5.1 I/O系统 5.2 I/O控制方式 5.3 缓冲管理 5.4 设备分配 5.5 设备处理 5.6 磁盘存储器管理
入侵检测技术 大连理工大学软件学院 毕玲.
第七章设备管理 概述 I/O软件的组成 I/O硬件特点 有关技术 设备处理 典型外部设备.
实验六、COM类型病毒分析实验 实验开发教师: 刘乃琦 谌黔燕.
DSP技术与应用 电子与信息技术系.
Presentation transcript:

第五章 设备管理 5.1 I/O系统 5.2 I/O控制方式 5.3 缓冲管理 5.4 设备分配 5.5 设备处理 5.6 磁盘存储器管理

5.1 I/O 系 统 5.1.1 I/O设备 1. I/O设备的类型 1) 按传输速率分类

2) 按信息交换的单位分类 可将I/O设备分成两类。第一类是块设备(Block Device),这类设备用于存储信息。 由于信息的存取总是以数据块为单位, 故而得名。 它属于有结构设备。典型的块设备是磁盘,每个盘块的大小为512 B~4 KB。磁盘设备的基本特征是其传输速率较高,通常每秒钟为几兆位;另一特征是可寻址,即对它可随机地读/写任一块;此外,磁盘设备的I/O常采用DMA方式。 第二类是字符设备(Character Device),用于数据的输入和输出。 其基本单位是字符, 故称为字符设备。

3) 按设备的共享属性分类 这种分类方式可将I/O设备分为如下三类: 独占设备。 (2) 共享设备。 (3) 虚拟设备。

2. 设备与控制器之间的接口 图 5-1 设备与控制器间的接口

5.1.2 设备控制器 1. 设备控制器的基本功能 接收和识别命令 2) 数据交换 3) 标识和报告设备的状态 4) 地址识别 5) 数据缓冲 6) 差错控制

2. 设备控制器的组成 图 5-2 设备控制器的组成

5.1.3 I/O通道 1. I/O通道(I/O Channel)设备的引入 实际上,I/O通道是一种特殊的处理机。它具有执行I/O指令的能力,并通过执行通道(I/O)程序来控制I/O操作。但I/O通道又与一般的处理机不同,主要表现在以下两个方面: 一是其指令类型单一,这是由于通道硬件比较简单, 其所能执行的命令,主要局限于与I/O操作有关的指令; 再就是通道没有自己的内存,通道所执行的通道程序是放在主机的内存中的, 换言之,是通道与CPU共享内存。

2. 通道类型 1) 字节多路通道(Byte Multiplexor Channel) 图 5-3 字节多路通道的工作原理

2) 数组选择通道(Block Selector Channel) 字节多路通道不适于连接高速设备,这推动了按数组方式进行数据传送的数组选择通道的形成。这种通道虽然可以连接多台高速设备,但由于它只含有一个分配型子通道,在一段时间内只能执行一道通道程序, 控制一台设备进行数据传送, 致使当某台设备占用了该通道后,便一直由它独占, 即使是它无数据传送,通道被闲置, 也不允许其它设备使用该通道, 直至该设备传送完毕释放该通道。可见,这种通道的利用率很低。

3) 数组多路通道(Block Multiplexor Channel) 数组选择通道虽有很高的传输速率,但它却每次只允许一个设备传输数据。数组多路通道是将数组选择通道传输速率高和字节多路通道能使各子通道(设备)分时并行操作的优点相结合而形成的一种新通道。它含有多个非分配型子通道, 因而这种通道既具有很高的数据传输速率,又能获得令人满意的通道利用率。也正因此,才使该通道能被广泛地用于连接多台高、中速的外围设备,其数据传送是按数组方式进行的。

3. “瓶颈”问题 图 5-4 单通路I/O系统

图 5-5 多通路I/O系统

5.1.4 总线系统 图 5-6 总线型I/O系统结构

1. ISA和EISA总线 1) ISA(Industry Standard Architecture)总线 这是为了1984年推出的80286型微机而设计的总线结构。 其总线的带宽为8位,最高传输速率为2 Mb/s。之后不久又推出了16位的(EISA)总线,其最高传输速率为8 Mb/s,后又升至16 Mb/s, 能连接12台设备。 2) EISA(Extended ISA)总线 到80年代末期,ISA总线已难于满足带宽和传输速率的要求, 于是人们又开发出扩展ISA(EISA)总线,其带宽为32位,总线的传输速率高达32 Mb/s,同样可以连接12台外部设备。

2. 局部总线(Local Bus) VESA(Video Electronic Standard Association)总线 2) PCI(Peripheral Component Interface)总线

5.2 I/O控制方式 5.2.1 程序I/O方式 在程序I/O方式中,由于CPU的高速性和I/O设备的低速性, 致使CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中, 造成对CPU的极大浪费。在该方式中,CPU之所以要不断地测试I/O设备的状态,就是因为在CPU中无中断机构, 使I/O设备无法向CPU报告它已完成了一个字符的输入操作。

图 5-7 程序I/O和中断驱动方式的流程

5.2.2 中断驱动I/O控制方式 在I/O设备输入每个数据的过程中,由于无须CPU干预,因而可使CPU与I/O设备并行工作。仅当输完一个数据时,才需CPU花费极短的时间去做些中断处理。可见,这样可使CPU和I/O设备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量。例如,从终端输入一个字符的时间约为100 ms, 而将字符送入终端缓冲区的时间小于 0.1 ms。 若采用程序I/O方式,CPU约有 99.9 ms的时间处于忙—等待中。 采用中断驱动方式后,CPU可利用这 99.9 ms的时间去做其它事情,而仅用 0.1 ms的时间来处理由控制器发来的中断请求。 可见,中断驱动方式可以成百倍地提高CPU的利用率。

5.2.3 直接存储器访问DMA I/O控制方式 1. DMA(Direct Memory Access)控制方式的引入 该方式的特点是:① 数据传输的基本单位是数据块,即在CPU与I/O设备之间,每次传送至少一个数据块;② 所传送的数据是从设备直接送入内存的,或者相反; ③ 仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。可见,DMA方式较之中断驱动方式,又是成百倍地减少了CPU对I/O的干预,进一步提高了CPU与I/O设备的并行操作程度。

2. DMA控制器的组成 图 5-8 DMA控制器的组成

为了实现在主机与控制器之间成块数据的直接交换, 必须在DMA控制器中设置如下四类寄存器: (1) 命令/状态寄存器CR。用于接收从CPU发来的I/O命令或有关控制信息, 或设备的状态。 (2) 内存地址寄存器MAR。在输入时,它存放把数据从设备传送到内存的起始目标地址;在输出时,它存放由内存到设备的内存源地址。 (3) 数据寄存器DR。用于暂存从设备到内存,或从内存到设备的数据。 (4) 数据计数器DC。 存放本次CPU要读或写的字(节)数。

3. DMA工作过程 图 5-9 DMA方式的工作流程

5.2.4 I/O通道控制方式 1. I/O通道控制方式的引入 I/O通道方式是DMA方式的发展,它可进一步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。 同时,又可实现CPU、通道和I/O设备三者的并行操作,从而更有效地提高整个系统的资源利用率。例如,当CPU要完成一组相关的读(或写)操作及有关控制时,只需向I/O通道发送一条I/O指令,以给出其所要执行的通道程序的首址和要访问的I/O设备,通道接到该指令后,通过执行通道程序便可完成CPU指定的I/O任务。

2. 通道程序 操作码。 (2) 内存地址。 (3) 计数。 (4) 通道程序结束位P。 (5) 记录结束标志R。

操作 P R 计数 内存地址 WRITE 80 813 140 1034 1 60 5830 300 2000 250 1850 720

5.3 缓 冲 管 理 5.3.1 缓冲的引入 缓和CPU与I/O设备间速度不匹配的矛盾。 5.3 缓 冲 管 理 5.3.1 缓冲的引入 缓和CPU与I/O设备间速度不匹配的矛盾。 (2) 减少对CPU的中断频率, 放宽对CPU中断响应时间的限制。 (3) 提高CPU和I/O设备之间的并行性。

图 5-10 利用缓冲寄存器实现缓冲

5.3.2 单缓冲和双缓冲 1. 单缓冲(Single Buffer) 图 5-11 单缓冲工作示意图

2. 双缓冲(Double Buffer) 图 5-12 双缓冲工作示意图

图 5-13 双机通信时缓冲区的设置

5.3.3 循环缓冲 1. 循环缓冲的组成 图 5-14 循环缓冲

2. 循环缓冲区的使用 Getbuf过程。 (2) Releasebuf过程。

3. 进程同步 Nexti指针追赶上Nextg指针。 (2) Nextg指针追赶上Nexti指针。

5.3.4 缓冲池(Buffer Pool) 1. 缓冲池的组成 1. 缓冲池的组成 对于既可用于输入又可用于输出的公用缓冲池, 其中至少应含有以下三种类型的缓冲区:① 空(闲)缓冲区; ② 装满输入数据的缓冲区; ③ 装满输出数据的缓冲区。 为了管理上的方便,可将相同类型的缓冲区链成一个队列,于是可形成以下三个队列: (1)空缓冲队列emq。 (2) 输入队列inq。 (3) 输出队列outq。

2. Getbuf过程和Putbuf过程 Procedure Getbuf(type) begin Wait(RS(type)); Wait(MS(type)); B(number)∶[KG-*3]=Takebuf(type); Signal(MS(type)); end Procedure Putbuf(type, number) Addbuf(type, number); Signal(RS(type)); end

3. 缓冲区的工作方式 图 5-15 缓冲区的工作方式

5.4 设 备 分 配 5.4.1 设备分配中的数据结构 1. 设备控制表DCT 图 5-16 设备控制表

2. 控制器控制表、 通道控制表和系统设备表 图 5-17 COCT、 CHCT和SDT表

5.4.2 设备分配时应考虑的因素 1. 设备的固有属性 独享设备。 (2) 共享设备。 (3) 虚拟设备。

2. 设备分配算法 先来先服务。 (2) 优先级高者优先。

3. 设备分配中的安全性 安全分配方式 2) 不安全分配方式

5.4.3 设备独立性 1. 设备独立性(Device Independence)的概念 为了提高OS的可适应性和可扩展性,在现代OS中都毫无例外地实现了设备独立性,也称为设备无关性。 其基本含义是: 应用程序独立于具体使用的物理设备。为了实现设备独立性而引入了逻辑设备和物理设备这两个概念。在应用程序中, 使用逻辑设备名称来请求使用某类设备;而系统在实际执行时, 还必须使用物理设备名称。因此,系统须具有将逻辑设备名称转换为某物理设备名称的功能,这非常类似于存储器管理中所介绍的逻辑地址和物理地址的概念。

在实现了设备独立性的功能后, 可带来以下两方面的好处。 1) 设备分配时的灵活性 2) 易于实现I/O重定向

2. 设备独立性软件 1) 执行所有设备的公有操作 这些公有操作包括:① 对独立设备的分配与回收; ② 将逻辑设备名映射为物理设备名,进一步可以找到相应物理设备的驱动程序; ③ 对设备进行保护,禁止用户直接访问设备; ④ 缓冲管理,即对字符设备和块设备的缓冲区进行有效的管理, 以提高I/O的效率;⑤ 差错控制。由于在I/O操作中的绝大多数错误都与设备无关,故主要由设备驱动程序处理,而设备独立性软件只处理那些设备驱动程序无法处理的错误。

2) 向用户层(或文件层)软件提供统一接口 无论何种设备, 它们向用户所提供的接口应该是相同的。 例如, 对各种设备的读操作,在应用程序中都使用read; 而对各种设备的写操作,也都使用write。

3. 逻辑设备名到物理设备名映射的实现 逻辑设备表 2) LUT的设置问题 图 5-18 逻辑设备表

5.4.4 独占设备的分配程序 1. 基本的设备分配程序 分配设备 2) 分配控制器 3) 分配通道

2. 设备分配程序的改进 增加设备的独立性 2) 考虑多通路情况

5.4.5 SPOOLing技术 1. 什么是SPOOLing 为了缓和CPU的高速性与I/O设备低速性间的矛盾而引入了脱机输入、 脱机输出技术。 该技术是利用专门的外围控制机, 将低速I/O设备上的数据传送到高速磁盘上;或者相反。事实上, 当系统中引入了多道程序技术后,完全可以利用其中的一道程序,来模拟脱机输入时的外围控制机功能,把低速I/O设备上的数据传送到高速磁盘上;再用另一道程序来模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备上。这样,便可在主机的直接控制下,实现脱机输入、 输出功能。 此时的外围操作与CPU对数据的处理同时进行, 我们把这种在联机情况下实现的同时外围操作称为SPOOLing(Simultaneaus Periphernal Operating On-Line),或称为假脱机操作。

2. SPOOLing系统的组成 图 5-19 SPOOLing系统的组成

3. 共享打印机 共享打印机技术已被广泛地用于多用户系统和局域网络中。 当用户进程请求打印输出时, SPOOLing系统同意为它打印输出, 但并不真正立即把打印机分配给该用户进程, 而只为它做两件事: ① 由输出进程在输出井中为之申请一个空闲磁盘块区, 并将要打印的数据送入其中; ② 输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中, 再将该表挂到请求打印队列上。

4. SPOOLing系统的特点 提高了I/O的速度。 (2) 将独占设备改造为共享设备。 (3) 实现了虚拟设备功能。

5.5 设 备 处 理 5.5.1 设备驱动程序的功能和特点 1. 设备驱动程序的功能 5.5 设 备 处 理 5.5.1 设备驱动程序的功能和特点 1. 设备驱动程序的功能 (1) 接收由I/O进程发来的命令和参数, 并将命令中的抽象要求转换为具体要求,例如,将磁盘块号转换为磁盘的盘面、 磁道号及扇区号。 (2) 检查用户I/O请求的合法性,了解I/O设备的状态,传递有关参数,设置设备的工作方式。

(3) 发出I/O命令,如果设备空闲,便立即启动I/O设备去完成指定的I/O操作;如果设备处于忙碌状态,则将请求者的请求块挂在设备队列上等待。 (4) 及时响应由控制器或通道发来的中断请求,并根据其中断类型调用相应的中断处理程序进行处理。 (5) 对于设置有通道的计算机系统,驱动程序还应能够根据用户的I/O请求,自动地构成通道程序。

2. 设备处理方式 (1) 为每一类设备设置一个进程,专门用于执行这类设备的I/O操作 . (2) 在整个系统中设置一个I/O进程,专门用于执行系统中所有各类设备的I/O操作。 (3) 不设置专门的设备处理进程,而只为各类设备设置相应的设备处理程序(模块), 供用户进程或系统进程调用。

3. 设备驱动程序的特点 (1) 驱动程序主要是指在请求I/O的进程与设备控制器之间的一个通信和转换程序。 (2) 驱动程序与设备控制器和I/O设备的硬件特性紧密相关, 因而对不同类型的设备应配置不同的驱动程序。 (3) 驱动程序与I/O设备所采用的I/O控制方式紧密相关。 (4) 由于驱动程序与硬件紧密相关, 因而其中的一部分必须用汇编语言书写。

5.5.2 设备驱动程序的处理过程 将抽象要求转换为具体要求 2. 检查I/O请求的合法性 3. 读出和检查设备的状态 3. 读出和检查设备的状态 4. 传送必要的参数 5. 工作方式的设置 6. 启动I/O设备

图 5-20 中断现场保护示意图

图 5-21 中断处理流程

5.6 磁盘存储器管理 5.6.1 磁盘性能简述 1. 数据的组织和格式 图 5-22 磁盘的格式化

2. 磁盘的类型 1) 固定头磁盘 这种磁盘在每条磁道上都有一读/写磁头,所有的磁头都被装在一刚性磁臂中。通过这些磁头可访问所有各磁道,并进行并行读/写,有效地提高了磁盘的I/O速度。 这种结构的磁盘主要用于大容量磁盘上。 2) 移动头磁盘 每一个盘面仅配有一个磁头,也被装入磁臂中。为能访问该盘面上的所有磁道,该磁头必须能移动以进行寻道。可见,移动磁头仅能以串行方式读/写,致使其I/O速度较慢;但由于其结构简单, 故仍广泛应用于中小型磁盘设备中。

3. 磁盘访问时间 1) 寻道时间Ts 这是指把磁臂(磁头)移动到指定磁道上所经历的时间。该时间是启动磁臂的时间s与磁头移动n条磁道所花费的时间之和, 即 Ts=m×n+s 其中,m是一常数,与磁盘驱动器的速度有关,对一般磁盘, m=0.2;对高速磁盘,m≤0.1,磁臂的启动时间约为2 ms。 这样,对一般的温盘, 其寻道时间将随寻道距离的增加而增大, 大体上是5~30 ms。

2) 旋转延迟时间Tτ 这是指定扇区移动到磁头下面所经历的时间。对于硬盘,典型的旋转速度大多为5400 r/min,每转需时11.1 ms,平均旋转延迟时间Tτ为5.55 ms;对于软盘,其旋转速度为300 r/min或600 r/min,这样,平均Tτ为50~100 ms。

3) 传输时间Tt 这是指把数据从磁盘读出或向磁盘写入数据所经历的时间。 Tt的大小与每次所读/写的字节数b和旋转速度有关: 其中,r为磁盘每秒钟的转数;N为一条磁道上的字节数, 当一次读/写的字节数相当于半条磁道上的字节数时,Tt与Tτ相同, 因此, 可将访问时间Ta表示为:

5.6.2 磁盘调度 1. 先来先服务FCFS(First-Come, First Served) 图 5-23 FCFS调度算法

2. 最短寻道时间优先SSTF(Shortest Seek Time First)

3. 扫描(SCAN)算法 1) 进程“饥饿”现象 SSTF算法虽然能获得较好的寻道性能, 但却可能导致某个进程发生“饥饿”(Starvation)现象。因为只要不断有新进程的请求到达, 且其所要访问的磁道与磁头当前所在磁道的距离较近,这种新进程的I/O请求必须优先满足。对SSTF算法略加修改后所形成的SCAN算法, 即可防止老进程出现“饥饿”现象。

2) SCAN算法 图 5-25 SCAN调度算法示例

4. 循环扫描(CSCAN)算法 图 5-26 CSCAN调度算法示例

5. N-Step-SCAN和FSCAN调度算法 在SSTF、 SCAN及CSCAN几种调度算法中, 都可能出现磁臂停留在某处不动的情况, 例如,有一个或几个进程对某一磁道有较高的访问频率, 即这个(些)进程反复请求对某一磁道的I/O操作,从而垄断了整个磁盘设备。 我们把这一现象称为“磁臂粘着”(Armstickiness)。在高密度磁盘上容易出现此情况。 N步SCAN算法是将磁盘请求队列分成若干个长度为N的子队列,磁盘调度将按FCFS算法依次处理这些子队列。 而每处理一个队列时又是按SCAN算法,对一个队列处理完后,再处理其他队列。 当正在处理某子队列时,如果又出现新的磁盘I/O请求,便将新请求进程放入其他队列,这样就可避免出现粘着现象。 当N值取得很大时,会使N步扫描法的性能接近于SCAN算法的性能; 当N=1时, N步SCAN算法便蜕化为FCFS算法。

2) FSCAN算法 FSCAN算法实质上是N步SCAN算法的简化, 即FSCAN只将磁盘请求队列分成两个子队列。一个是由当前所有请求磁盘I/O的进程形成的队列,由磁盘调度按SCAN算法进行处理。在扫描期间,将新出现的所有请求磁盘I/O的进程, 放入另一个等待处理的请求队列。这样,所有的新请求都将被推迟到下一次扫描时处理。

5.6.3 磁盘高速缓存(Disk Cache) 1. 磁盘高速缓存的形式 是指利用内存中的存储空间,来暂存从磁盘中读出的一系列盘块中的信息。因此,这里的高速缓存是一组在逻辑上属于磁盘, 而物理上是驻留在内存中的盘块。高速缓存在内存中可分成两种形式。第一种是在内存中开辟一个单独的存储空间来作为磁盘高速缓存,其大小是固定的,不会受应用程序多少的影响;第二种是把所有未利用的内存空间变为一个缓冲池,供请求分页系统和磁盘I/O时(作为磁盘高速缓存)共享。此时高速缓存的大小,显然不再是固定的。当磁盘I/O的频繁程度较高时,该缓冲池可能包含更多的内存空间;而在应用程序运行得较多时,该缓冲池可能只剩下较少的内存空间。

2. 数据交付方式 系统可以采取两种方式, 将数据交付给请求进程: (1) 数据交付。这是直接将高速缓存中的数据, 传送到请求者进程的内存工作区中。 (2) 指针交付。只将指向高速缓存中某区域的指针, 交付给请求者进程。 后一种方式由于所传送的数据量少,因而节省了数据从磁盘高速缓存存储空间到进程的内存工作区的时

3. 置换算法 由于请求调页中的联想存储器与高速缓存(磁盘I/O中)的工作情况不同,因而使得在置换算法中所应考虑的问题也有所差异。因此,现在不少系统在设计其高速缓存的置换算法时,除了考虑到最近最久未使用这一原则外, 还考虑了以下几点: (1) 访问频率。 (2) 可预见性。 (3) 数据的一致性。

4. 周期性地写回磁盘 在UNIX系统中专门增设了一个修改(update)程序, 使之在后台运行,该程序周期性地调用一个系统调用SYNC。该调用的主要功能是强制性地将所有在高速缓存中已修改的盘块数据写回磁盘。一般是把两次调用SYNC的时间间隔定为30 s。这样,因系统故障所造成的工作损失不会超过30 s的劳动量。而在MS-DOS中所采用的方法是:只要高速缓存中的某盘块数据被修改,便立即将它写回磁盘,并将这种高速缓存称为“写穿透、高速缓存”(write-through cache)。 MS-DOS所采用的写回方式,几乎不会造成数据的丢失, 但须频繁地启动磁盘。

5.6.4 提高磁盘I/O速度的其它方法 提前读(Read-Ahead) 2. 延迟写 3. 优化物理块的分布 4. 虚拟盘

5.6.5 廉价磁盘冗余阵列 1. 并行交叉存取 图 5-27 磁盘并行交叉存取方式

2. RAID的分级 RAID 0级。 (2) RAID 1级。 (3) RAID 3级。 (4) RAID 5级。 (5) RAID 6级和RAID 7级。

3. RAID的优点 可靠性高。 (2) 磁盘I/O速度高。 (3) 性能/价格比高。