Download presentation
Presentation is loading. Please wait.
Published byLogan Sutton Modified 6年之前
1
PURSUING EXCELLENCE / TOWARD SUCCESS WUCHANG UNIVERSITY OF TECHNOLOGY
武昌理工学院 操作系统原理 第八章 设备管理 我们毕业啦 其实是答辩的标题地方 主讲人 温 静 院系 信息工程学院
2
主要内容 1 I/O系统概述 2 I/O控制方式 3 缓冲技术 4 设备分配 CONTANTS 5 I/O软件 6 磁盘存储器管理
3
I/O系统概述 计算机系统的两个主要任务: 计算处理 输入/输出(I/O)处理 I/O系统是用于实现数据输入、输出及数据存储的系统。
4
I/O设备 在计算机系统中,设备的概念具有广义性。 设备: 进行实际I/O操作的物理设备;
控制这些物理设备并进行I/O操作的控制部件和支持部件,如设备控制器、DMA控制器等; 为提高设备利用率,采用某种I/O技术形成的逻辑设备和虚拟设备。
5
设备的类型 按使用特性分: 按传输速率分: 按信息交换单位分: 按资源属性分: 按从属关系分: 存储设备、输入/输出设备
低速设备、中速设备、高速设备 按信息交换单位分: 字符设备、块设备 按资源属性分: 独占设备、共享设备、虚拟设备 按从属关系分: 系统设备、用户设备
6
设备控制器 I/O设备: 设备控制器: 由电子部件和机械部件两部分组成; 设备的电子部分通常称为设备控制器; 机械部件则是设备本身。
可编址设备; 仅控制一个设备时,它只有一个唯一的设备地址; 若连接多个设备时,则应含有多个设备地址,并使每一个设备 地址对应一个设备。
7
设备控制器的功能 接收和识别CPU或通道发来的命令; 实现CPU与设备控制器、设备控制器与设备之间的数 据交换;
识别控制的每个设备的地址; 数据缓冲; 兼管对由I/O设备传送来的数据进行差错检测。
8
设备控制器的组成 设备控制器与CPU的接口 设备控制器与设备的接口 I/O逻辑
9
I/O通道 通道的目的: 使原来由CPU处理的I/O任务转由通道来承担, 从而把CPU从繁杂的I/O任务中解脱出来。
10
通道程序 通道指令: 通道命令字(Channel Command Word,CCW); 一条通道命令字往往只能实现一种功能。 通道程序:
用通道指令编写的程序称为通道程序; 通道程序由多条通道命令组成。 每次执行时,通道从内存中依次取出并执行CCW,从而 控制I/O设备完成复杂的I/O操作。
11
通道系统 通道系统: 存储器、通道、设备控制器和设备之间采用四级连接, 实施三级控制。
一个存储器可以连接若干个通道,一个通道又可以连接 若干个设备控制器,一个设备控制器再连接若干个设备。 CPU通过I/O指令控制通道,通道通过执行通道指令来控 制设备控制器,设备控制器发出动作序列控制相关设备 执行相应的I/O操作。
12
通道系统的I/O处理过程 CPU在执行主程序时若遇到用户进程的I/O请求,则执 行I/O指令启动相关通道;
通道控制结束后向CPU发出中断信号,CPU停止当前工 作,转去处理I/O操作结束事件。
13
通道类型 (1)字节多路通道(Byte Multiplexer Channel)
(2)数组选择通道(Block Selector Channel) (3)数组多路通道(Block Multiplexer Channel)
14
“瓶颈”问题 “瓶颈”问题: 由于通道价格昂贵,致使机器中所设置的通道数量 势必较少,这往往又使它成了I/O的“瓶颈”,进而造 成整个系统吞吐量的下降。 解决方法: 增加设备到主机间的通路而不是增加通道。
15
I/O控制方式 随着计算机技术的发展,I/O控制方式也在不断 地发展。 程序I/O方式 中断驱动方式 DMA控制方式 通道方式
16
程序I/O控制方式 出现: 早期的计算机系统中,由于无中断机构,处理机对 I/O设备的控制采取程序I/O方式,或称为忙-等待方式。 缺点:
CPU的绝大部分时间都处于等待I/O设备完成数据I/O 的循环测试中,造成对CPU的极大浪费。
17
程序I/O控制方式 向I/O控制器发读命令 CPU→I/O 读I/O控制器的状态 I/O→ CPU 未就绪 检查状态? 出错
向存储器中写字 CPU→内存 未完 传送完成? 完成 下一条指令
18
中断驱动I/O控制方式 出现: 计算机系统中引入了中断机构后,当某进程要启动 某个I/O设备工作时,便由CPU向相应的设备控制器发出 一条I/O命令,然后立即返回继续执行原来的任务。设 备控制器于是按照该命令的要求去控制指定I/O设备。 此时,CPU与I/O设备并行操作。
19
中断驱动I/O控制方式 CPU→I/O 向I/O控制器发读命令 读I/O控制器的状态 I/O→ CPU 检查状态? 出错
向存储器中写字 CPU→内存 未完 传送完成? 完成
20
DMA控制方式 特点: 数据传输的基本单位是数据块,即在CPU与I/O设备之 间,每次传送至少一个数据块;
所传送的数据是从设备直接送入内存的,输出时则相 反; 仅在传送一个或多个数据块的开始和结束时,才需要 CPU的干预,整块数据的传送是在控制器的控制下完 成的。
21
DMA控制方式 向I/O控制器发布读块命令 CPU→DMA CPU做其它事 读DMA控制器的状态 中断 DMA→CPU 下一条指令
22
DMA控制方式 为了实现直接存储器存取操作,DMA控制器至少需要以 下一些逻辑部件。 命令/状态寄存器(CR) 内存地址寄存器(MAR)
字计数器(DC) 数据缓冲寄存器或数据缓冲区(DR) 设备地址寄存器 中断机制和控制逻辑
23
DMA工作过程 设置MAR和DC初值 启动DMA传送命令 挪用存储器周期传送数据字 在继续执行用户程序的同时,准备又一次传送 存储器地址增1
字计数寄存器减1 否 DC=0? 是 请求中断
24
I/O通道控制方式 DMA方式的缺点: 每发出一次I/O指令,只能读写一个数据块,用户希 望一次能够读写多个离散的数据块,并把它们传送到不 同的内存区域或相反,则需要由CPU发出多条启动I/O的 指令及进行多次I/O中断处理才能完成。 通道方式的出现: 是DMA方式的发展,能够再次减少CPU对I/O操作的干 预。
25
I/O通道控制方式 通道通过执行通道程序,与设备控制器共同实现对I/O 设备的控制。通道程序由一系列通道指令构成。
通道指令:操作码、内存地址、计数、通道程序结束位 及记录结束标志。 通道指令的一般格式为: 操作码 P R 计数 内存地址
26
I/O通道控制方式 下面是一个包含3条指令的简单的通道程序: WRITE 0 0 250 1000
前两条指令的功能:将内存地址为1000开始的250个单 元中的字符与内存地址为4500开始的80个单元中的字符 写成一条记录; 第三条指令:把内存地址为600开始的100个单元中的字 符单独写成一条记录。
27
通道方式的处理过程 当进行数据输入时,CPU发出启动指令; 通道接收到指令后,取出通道程序,并开始执行通道指令;
执行一条通道指令,设置设备控制器的控制/状态寄存器; 设备控制器控制设备将数据送往内存指定区域。若本指令 不是通道程序中的最后一条指令,则取出下一条指令,转 步骤(3)处理;否则转步骤(5)执行; 通道处理结束,向CPU发出中断信号,等待CPU响应; CPU接收到中断信号后进行中断处理,然后返回继续执行。
28
缓冲技术 在设备管理中,引入缓冲的原因主要可归纳为以下几点: 缓和CPU与I/O设备间速度不匹配的矛盾。
协调逻辑记录大小与物理记录大小不一致的问题,以 及设备间不同大小数据的传输问题。
29
单缓冲 用户进程 处理(C) (a) (b) 传送(M) 输入(T) 缓冲区 I/O设备 工作区 T4 T1 T2 T3 M3 M2 M1
30
双缓冲 用户进程 缓冲区1 (a) (b) 工作区 I/O设备 缓冲区2 T4 (缓冲4) T1(缓冲1) T2 (缓冲2)
M3 M3 M4 M2 M1 C2 C3 C4 C1
31
循环缓冲 采用双缓冲技术虽然能提高设备的并行工作程 度,但在设备和处理进程速度不匹配的情况下 仍不十分理想。
为了改善这种情况,获得较高的并行度,常常 采用多缓冲所组成的循环缓冲技术。
32
循环缓冲的组成 循环缓冲中的缓冲区按用途可分为: (1)空缓冲区E (2)满缓冲区F (3)当前工作 缓冲区W 三个链接指针指向不同缓冲区:
NextE Working NextF 循环缓冲中的缓冲区按用途可分为: (1)空缓冲区E (2)满缓冲区F (3)当前工作 缓冲区W 三个链接指针指向不同缓冲区: (1)NextE:第一个空缓冲区; (2)NextF:第一个满缓冲区; (3)Working:当前工作缓冲区。
33
循环缓冲的使用 调用两个过程: getbuf过程:计算进程要使用缓冲区中的数据时;输 入进程要使用空缓冲区来装入数据时。
releasebuf过程:计算进程把C缓冲区中的数据提取 完毕时; 输入进程把缓冲区装满时。 使用过程中的进程同步: NextE指针追赶上NextF指针:系统受计算限制 。 NextF指针追赶上NextE指针:系统受I/O限制。
34
设备分配 每当进程提出I/O请求时,OS将按一定的策略 把设备分配给它,在有的系统中,为了确保 CPU和设备之间能进行通信,还必须为进程分 配相应的控制器和通道。
35
设备分配的数据结构 1.设备控制表DCT 2.控制器控制表COCT,通道控制表CHCT,系统设备表SDT 设备类型type 设备控制表集合
设备标识符:deviceid 设备状态:等待/不等待 忙/闲 DCT2 指向控制器表的指针 重复执行次数或时间 DCTn 设备队列的队首指针 2.控制器控制表COCT,通道控制表CHCT,系统设备表SDT
36
设备分配策略 为了使系统有条不紊地工作,系统在分配设备 时,应考虑这样几个因素: 设备的固有属性 设备分配算法 设备分配中的安全性
设备独立性
37
设备独立性 用户在应用程序中使用逻辑设备名来请求设备, 而系统在实际分配时使用的是物理设备名,从 而实现了应用程序和物理设备之间的独立。
系统再采用某种方法建立逻辑设备和物理设备 之间的关系,把逻辑设备名转换成物理设备名, 这就是“设备独立性”,或称设备无关性。
38
设备独立性 在实现了设备独立性的功能后,可带来以下两 个方面的好处。 设备分配时的灵活性 2. 易于实现I/O重定向
39
设备独立性 设备独立性的实现主要体现在逻辑设备与物理 设备之间的转换上。
为了实现这种转换,系统必须设置一张逻辑设 备表(Logical Unit Table,LUT)。在该表的 每个表目中包含了三项内容:逻辑设备名、物 理设备名和设备驱动程序的入口地址。
40
SPOOLing技术 为了缓和CPU的高速性与I/O设备的低速性之间 的矛盾而引入了脱机输入输出技术。
为了减少硬件成本,用软件来模拟输入输出时 外围机的功能,由此产生的这种在联机情况下 实现的同时外围操作称为SPOOLing (Simultaneaus Periphernal Operating On Line),或称为假脱机操作。
41
SPOOLing技术 SPOOLing系统主要由三部分组成: 输入井和输出井 输入缓冲区和输出缓冲区 输入进程SPi和输出进程SPo
42
SPOOLing技术 引入SPOOLing技术,把一个共享的硬盘改造成若干 台输入设备(对作业调度程序而言)和若干台输出 设备(对各作业而言)。 这样的设备称为虚拟设备,它们的物理实体是输入 (出)井。 这样改造后,保持了物理输入(出)设备繁忙地与 主机并行工作,提高了整个系统的效率。
43
SPOOLing技术 当用户进程请求输出打印时,SPOOLing系统同意为它 打印输出,但并不真正把打印机分配给该用户进程, 而只是做两件事。 由输出进程在输出井中为之申请一个空闲磁盘块区, 并将要打印的数据送入其中; 输出进程再为用户进程申请一张空白的用户打印请 求表,并将用户的打印要求填入表中,再将该表挂 到请求打印队列中。
44
SPOOLing技术 SPOOLing系统具有如下主要特点:
提高了I/O的速度。对数据进行的I/O操作,已从 对低速I/O设备进行的I/O操作演变成为对输入井 或输出井中数据的存取。 将独占设备改造为共享设备。 实现了虚拟设备功能。
45
I/O软件 I/O软件应达到以下几个方面的目标: 设备无关性 出错处理 同步/异步传输 缓冲技术
46
I/O软件 I/O软件层次结构: 中断处理程序 设备驱动程序 设备独立性软件 用户层软件
47
中断处理程序 中断处理程序在设备管理软件中是一个相当重 要的部分。 1. 中断的基本概念 2. 中断类型 3. 中断处理过程
48
中断的基本概念 所谓中断是指某个事件(例如电源掉电、定点加法溢出 或I/O传输结束等)发生时,系统中止现行程序的运行、 引出处理该事件程序进行处理,处理完毕后返回断点, 继续执行。 用户程序 中断进入 中断处 理程序 中断信号 中断 返回
49
中断类型 (1)按中断功能分类 ① 输入/输出(I/O)中断 ② 外部中断 ③ 机器故障中断 ④ 程序性中断 ⑤ 访管中断
50
中断类型 (2)按中断方式分类 ① 强迫性中断 ② 自愿性中断
按中断功能所划分的五大类中断中,I/O中断、外部中 断、机器故障中断及程序性中断都属于强迫性中断,而 访管中断则属于自愿性中断。
51
中断类型 (3)按中断来源分类 ① 中断 由处理机外部事件引起的中断称为外中断,又称 为中断。包括I/O中断、外中断。 ② 俘获
由处理机内部事件引起的中断称为俘获。包括访管 中断、程序性中断及机器故障中断。 若系统中同时发生中断和俘获请求时,俘获总是优 先得到响应和处理,所以它也称为高优先级中断。
52
中断处理过程 对于为每一类设备设置一个I/O进程的设备处理方式,其 中断处理程序的处理过程可分成以下几个步骤。
(1)唤醒被阻塞的驱动(程序)进程 (2)保护被中断进程的CPU环境 (3)转入相应的设备处理程序 (4)中断处理 (5)恢复被中断进程的现场
53
设备驱动程序 所有与设备相关的代码放在设备驱动程序中,设备驱 动程序通常又称之为设备处理程序,它是I/O进程与 设备控制器之间的通信程序,又由于它经常以进程的 形式存在,所以也可以简称之为设备驱动进程。
54
设备驱动程序 设备驱动程序的处理过程: (1)将抽象命令转换为具体命令。 (2)检查I/O请求的合法性 (3)读出和检查设备的状态
(4)传送必要的参数 (5)工作方式的设置 (6)启动I/O设备
55
用户层的I/O软件 一般来说,大部分I/O软件都包含在操作系统中,但是 用户程序仍有一小部分是与库函数连接在一起的,甚至 还有在内核之外运行的程序。通常的系统调用,包括 I/O系统调用,是由库函数实现的。
56
磁盘存储器的管理 在现代计算机系统中都配置了磁盘,并以它为主来存放 文件,因此,对文件的操作,都将涉及到对磁盘的访问。 磁盘不仅存储容量大,而且可以实现随机存取,也是实 现虚拟存储器的必备硬件之一。磁盘I/O速度的快慢, 将直接影响系统的性能,因此,如何提高磁盘I/O的性 能,已成为现代操作系统的重要任务之一。
57
磁盘性能概述 磁盘是由表面涂有磁性物质的金属或塑料构成 的圆形盘片,是典型的直接存取设备,这种设 备允许文件系统直接存取磁盘上的任意物理块。
58
磁盘结构 每个磁盘划分若干个柱面。 对应每一个柱面,将磁盘表面划分为若干个磁道。信息线性地记录在每条磁道上。
按照由内到外的顺序,依次标记为磁道0、磁道1等等。每条磁道的大小约为若干KB。 将磁道进一步划分为若干个扇区。扇区可以是定长的,也可以是变长的,主要由硬件决定。
59
磁盘类型 (1)固定头磁盘 每条磁道上都有一个读/写磁头,所有磁头都被装在一刚 性磁臂中,磁臂可以伸展,通过这些磁头可访问所有的 磁道,并进行并行读/写,有效地提高了磁盘的I/O速度。 这种结构主要用于大容量磁盘上。 (2)移动头磁盘 每一个盘面上仅配有一个磁头,也被装入磁臂中。由于 磁头必须能够定位在任何一个磁道上,磁臂为这个目的 可以伸展或缩回。
60
磁盘访问时间 对于采用移动磁头的磁盘要访问某特定的磁盘块时, 所用时间通常包括以下三部分时间: (1)寻道时间Ts (2)旋转延迟时间Tr
(3)传输时间Tt 传输时间 寻道时间 旋转延迟时间 磁臂
61
磁盘调度 系统采用一定的调度策略来决定各等待访问者的执行次 序,把决定等待访问者执行次序的工作称为驱动调度, 采用的调度策略称为驱动调度算法。 对磁盘来说,驱动调度包括“移臂调度”和“旋转调度” 两部分。 先进行移臂调度,再进行旋转调度。 移臂调度目标:尽可能地减少寻找磁道的时间。 旋转调度目标:尽可能地减少延迟时间。
62
移臂调度 移臂调度:根据等待访问者指定的柱面位置来决定次序。 目的:尽可能地减少输入/输出操作中的寻找磁道的时间。 常用的移臂调度算法:
先来先服务调度算法 最短寻道时间优先调度算法 扫描算法 循环扫描算法
63
先来先服务调度算法(FCFS) 优点: 公平、简单; 不会出现饥饿; 缺点:
(从100号磁道开始) 被访问的下一个磁道号 移动距离(磁道数) 56 44 60 4 40 20 19 21 95 76 165 70 150 15 38 112 185 147 平均寻道长度:56.6 优点: 公平、简单; 不会出现饥饿; 缺点: 平均寻道时间较长;与后面要讲的几种高速算法相比,其平均寻道长度最大。
64
最短寻道时间优先调度算法(SSTF) 优点: 能获得较好的寻道性能; 缺点: 可能导致饥饿;
只要不断有新进程的请求到达,且其所要访问的磁道与磁头当前所在磁道的距离较近,这种新进程的I/O请求必被优先满足。 (从100号磁道开始) 被访问的下一个磁道号 移动距离(磁道数) 95 5 60 35 56 4 40 16 38 2 19 150 131 165 15 185 20 平均寻道长度:27.4
65
扫描算法(SCAN) 该算法与电梯的运行规律相似,也称为电梯调度。 优点: 较好的寻道性能; 防止进程饥饿; 缺点:
(从100号磁道开始,向磁道号增加方向访问) 被访问的下一个磁道号 移动距离(磁道数) 150 50 165 15 185 20 95 90 60 35 56 4 40 16 38 2 19 平均寻道长度:27.9 该算法与电梯的运行规律相似,也称为电梯调度。 优点: 较好的寻道性能; 防止进程饥饿; 缺点: 某些进程的请求可能会被严重地推迟。
66
循环扫描算法(CSCAN) 优点: 为了减少这种延迟,CSCAN算法规定磁头单向移动,即将最小磁道号紧接着最大磁道号构成循环,进行循环扫描。
(从100号磁道开始,向磁道号增加方向访问) 被访问的下一个磁道号 移动距离(磁道数) 150 50 165 15 185 20 19 166 38 40 2 56 16 60 4 95 35 平均寻道长度:36.3 优点: 为了减少这种延迟,CSCAN算法规定磁头单向移动,即将最小磁道号紧接着最大磁道号构成循环,进行循环扫描。
67
旋转调度 当移动臂定位后,可能会有多个访问者访问该 柱面。
怎样来决定这些等待访问者的执行次序呢?从 效率上考虑,显然应优先选择延迟时间最短的 访问者去执行。 这种根据延迟时间来决定执行次序的调度称为 旋转调度。
68
旋转调度 在进行旋转调度时应区分如下几种情况: 对于1和2: 旋转调度总是对先到达读写磁头位置下的扇区进行信息 传送。 对于3:
若干请求者要访问同一磁头下的不同扇区; 若干请求者要访问不同磁头下的不同编号的扇区; 若干请求者要访问不同磁头下具有相同编号的扇区。 对于1和2: 旋转调度总是对先到达读写磁头位置下的扇区进行信息 传送。 对于3: 这些请求指定的扇区会同时到达磁头位置下,根据磁头 号从中任意选择一个磁头进行读/写操作,其余请求者必 须等磁盘再次把扇区旋转到磁头位置时才有可能被选中。
69
旋转调度 例如,有四个访问5号柱面的访问者,它们的访问要求如 下所示: 执行次序: (1)(2)(4)(3);或(1)(3)(4)(2);
请求次序 柱面号 磁头号 扇区号 (1) 5 4 1 (2) (3) (4) 2 8 执行次序: (1)(2)(4)(3);或(1)(3)(4)(2); 其中第(2)(3)两个请求都是访问第5个扇区,当第5个扇区旋转到磁头位置下时,只有其中一个请求可执行传送操作,而另一个请求必须等磁盘再一次把第5个扇区旋转到磁头位置下时才能执行。
70
信息的优化分布 信息在磁道上的排列方式也会影响旋转调度的 时间。
71
信息的优化分布 例:某系统对磁盘初始化时把每个盘面分成8个扇区,现有8个逻辑记录被存放在同一个磁道上供处理程序使用,处理程序要求顺序处理这8个记录,每次请求从磁盘上读一个记录,然后对读出的记录花5毫秒的时间进行处理,以后再读下一个记录进行处理,直至8个记录都处理结束。假定磁盘转速为20毫秒/周。 L3 L2 L4 L1 始点 L5 L8 L6 L7 旋转方向 (a)顺序存放 处理8条记录所要花费的时间:8×(2.5+5)+7×15=165毫秒
72
信息的优化分布 优化: 处理8条记录所要花费的时间:8×(2.5+5)=60毫秒 L7 L4 L2 L1 始点 L5 L6 L8 L3
旋转方向 (b)优化存放 处理8条记录所要花费的时间:8×(2.5+5)=60毫秒
73
提高磁盘I/O速度的方法 1. 磁盘高速缓存 2. 提高磁盘I/O速度的其它方法 (1)提前读(Read-ahead) (2)延迟写
(3)优化物理块的分布 (4)虚拟盘
74
本章小结 I/O控制方式 缓冲技术 设备分配 磁盘存储器 I/O系统概述 I/O设备的分类、I/O通道、“瓶颈”问题 四种I/O控制方式
单缓冲、双缓冲、循环缓冲 设备分配 设备独立性 磁盘存储器 磁盘调度算法
75
PURSUING EXCELLENCE / TOWARD SUCCESS WUCHANG UNIVERSITY OF TECHNOLOGY
武昌理工学院 Thank you!
Similar presentations