第1页:第五章 设备管理封面
第五章 设备管理:本页为《计算机操作系统》课件封面,标注课程名称与英文名称 Operating Systems,并列出 WINDOWS、UNIX、LINUX 等常见操作系统类型。
第2页:设备管理概述
设备管理概述
- 设备管理
- I/O系统是计算机系统的重要组成部分
- I/O系统包括用于实现信息输入、输出和存储功能的设备和相应的控制器
- 设备管理的基本任务是
- 完成用户提出的I/O请求
- 提高I/O速率以及改善I/O设备的利用率
- 设备管理的主要功能
- 缓冲区管理、设备分配、设备处理、虚拟设备及实现设备独立性
第3页:5.1I/O系统
5.1I/O系统
- 5.1 I/O系统5.1.1 I/O设备1.I/O设备的类型1)设备使用特性
- 存储设备;输入/输出设备;2)传输速率
- 低速设备;中速设备;高速设备;3)信息交换单位4)共享属性
第4页:按信息交换的单位分类
按信息交换的单位分类
- 信息的存取总是以数据块为单位
- 可寻址:对它可随机地读/写任一块
- 磁盘,每个盘块的大小为512 B~4 KB
- 基本单位是字符
- 不可寻址
- 交互式终端、打印机
第5页:按设备的共享属性分类
按设备的共享属性分类
- 独占设备(临界资源)
- 指在一段时间内只允许一个用户(进程)访问的设备
- 互斥访问、可能引起进程死锁
- 共享设备
- 可供多个进程同时访问,如磁盘
- 对于每一时刻而言,该类设备仍然只允许一个进程访问
- 必须是可寻址访问的设备
- 虚拟设备
- 通过虚拟技术将一台独占设备变换为若干个逻辑设备
第6页:设备与控制器之间的接口
设备与控制器之间的接口
- 2.设备与控制器之间的接口
- 设备并不是直接与CPU进行通信,而是与设备控制器通信
- 设备控制器是CPU与I/O设备之间的接口
- 三类信号线
- 数据线、地址线、控制线
第7页:设备控制器的数据信号
设备控制器的数据信号:I/O设备从设备控制器经过数据信号线传送来的数据先暂存在缓冲器,经转换器经过适当转换后,逐个字符输出由外界输入的信号经转换器转换后送入缓冲器,数据达到一定的字符数后,再从缓冲器通过一组数据信号线送到控制器。
第8页:设备控制器的状态信号
设备控制器的状态信号:I/O设备信号规定设备要执行的操作指示设备当前状态,正在读、写或完成。
第9页:5.1.2设备控制器
5.1.2设备控制器
- 设备控制器是CPU与I/O设备之间的接口
- 设备控制器是一个可编址的设备
- 设备控制器分类
- 控制字符设备
- 控制块设备
第10页:5.1.3I/O通道
5.1.3I/O通道
- I/O通道设备的引入
- 当主机所配置外设很多时,CPU的负担仍然很重
- 使一些原来由CPU处理的I/O任务转由通道来承担
- I/O通道是一种特殊的处理机
- 其指令类型单一
- 主要局限于与I/O操作有关的指令
- 通道没有自己的内存
- 通道所执行的通道程序是放在主机的内存中的
- 通道与CPU共享内存
第11页:通道类型:字节多路通道
通道类型:字节多路通道:2.通道类型1)字节多路通道(Byte Multiplexor Channel)2)数组选择通道(Block Selector Channel)3)数组多路通道(Block Multiplexor Channel)。
第12页:瓶颈问题:单通路I/O系统
瓶颈问题:单通路I/O系统
第13页:解决瓶颈:多通路I/O系统
解决瓶颈:多通路I/O系统
- 解决“瓶颈”问题的最有效的方法
- 多通路I/O系统
- 解决了“瓶颈”问题
- 提高了系统的可靠性
- 个别通道或控制器的故障不会使设备和存储器之间没有通路
第14页:5.2I/O控制方式
5.2I/O控制方式
- 5.2 I/O控制方式1.程序I/O方式2.中断驱动I/O控制方式3.直接存储访问(DMA)I/O控制方式4.I/O通道控制方式
- 主要差别在于
- 中央处理器和外围设备并行工作的方式不同
- 并行工作的程度不同
第15页:5.2.4I/O通道控制方式
5.2.4I/O通道控制方式
- 5.2.4 I/O通道控制方式1.引入
- I/O通道方式是DMA方式的发展
- 它把对一个数据块的读(写)为单位的干预减少为对一组数据块的读(写)及有关的控制和管理为单位的干预
- 实现CPU、通道和I/O设备三者的并行操作
- 更有效地提高整个系统的资源利用率
- 例,当CPU要完成一组相关操作及控制时,只需向I/O通道发送一条I/O指令
第16页:通道程序
通道程序
- 2.通道程序
- 通道程序由一系列通道指令构成
- 通道指令中都包含下列诸信息
- (1)操作码--规定指令所执行的操作
- (2)内存地址--标明字符从内存读/写时的首址
- (3)计数--表示本指令所要读(写)数据的字节数
- (4)通道程序结束位。P=1表示结束
- (5)记录结束标志
- R=0,表示本指令与下一指令处理同一个记录
- R=1,表示处理某记录的最后一条指令
第17页:通道程序示例
通道程序示例
- 通道程序
- 例:一个由六条通道指令所构成的简单的通道程序。该程序实现将内存中不同地址的数据写成多个记录
第18页:5.3缓冲管理
5.3缓冲管理
第19页:缓冲的引入:缓和速度矛盾
缓冲的引入:缓和速度矛盾
- 缓冲的引入
- 缓和CPU与I/O设备间速度不匹配的矛盾
- 凡在数据到达速率与其离去速率不同的地方,都可设置缓冲区
- 减少对CPU的中断频率,放宽对CPU中断响应时间的限制
第20页:每收到一位数据中断一次CPU
每收到一位数据中断一次CPU
- 必须在每收到一位数据时,便中断一次CPU
- 并在下位到来之前要求CPU进行中断处理,以取走输入的数据。01001位缓冲9.6 Kb(bit)/s(a)中断CPU的频率为9.6Kb/s,每100s中断一次CPUCPU必须在100s内响应,否则数据会被冲掉1/(9.6*1024)≈0.1ms
第21页:每收8位数据中断一次CPU
每收8位数据中断一次CPU
- 可以每收8位数据中断一次CPU
- 但在第9位数据到来之间必须完成中断处理。8位缓冲寄存器送内存9.6 Kb/s(b)CPU每隔800s中断一次要求CPU必须在100s时间内予以响应0900800
第22页:设置缓冲后的中断频率
设置缓冲后的中断频率
- 缓冲的引入
- 可每收8位数据中断一次,允许CPU在下一个8位数据到来期间完成前8位数据的中断处理
- 提高CPU和I/O设备之间的并行性
- 提高系统的吞吐量和设备的利用率8位缓冲寄存器9.6 Kb/s送内存(c)发出中断,响应时间可为800s
第23页:单缓冲的数据处理时间
单缓冲的数据处理时间
- 5.3缓冲管理
- 单缓冲数据处理时间约为max[C,T]+M
第24页:双缓冲的数据处理时间
双缓冲的数据处理时间:双缓冲---缓冲对换数据处理时间约为max[M+C,T]。
第25页:保证块设备连续工作
保证块设备连续工作
- 一块数据的传输和处理时间为T=max(C,T)
- 如果C<T,在将磁盘上的一块数据传送到缓冲区其间,计算机已完成将另一个缓冲区中的数据传送到用户区并对这块数据进行计算的工作
- 这种情况下可保证块设备连续工作;CMT
第26页:双缓冲下进程不必等待I/O
双缓冲下进程不必等待I/O
- 进程不必要等待I/O
- 一块数据的传输和处理时间为max(C,T)+M =C+M
- 这种情况下进程不必要等待I/O。CMT
第27页:双机通信时缓冲区的设置
双机通信时缓冲区的设置:双机通信时缓冲区的设置只能实现单向的数据传输。
第28页:5.3.3循环缓冲用于装输入数据的空缓冲
5.3.3循环缓冲用于装输入数据的空缓冲:5.3.3循环缓冲用于装输入数据的空缓冲区已装满数据的缓冲区计算进程正在使用的现行工作缓冲区指示计算进程下一个可用缓冲区输入进程下次可用的空缓冲区R的指针计算进程正在使用的缓冲区C的指针。
第29页:循环缓冲区的使用
循环缓冲区的使用
- 2.循环缓冲区的使用
- 计算进程和输入进程利用下述过程来使用循环缓冲区
- 当计算进程要使用缓冲区中数据时,调用Getbuf过程
- 当输入进程要使用空缓冲区来装入数据时,调用Getbuf
- 当计算进程把缓冲区中的数据提取完毕时
- 当输入进程把缓冲区装满时
第30页:计算进程调用Getbuf过程
计算进程调用Getbuf过程:当计算进程要使用缓冲区中数据时,可调用Getbuf过程计算进程。
第31页:计算进程调用Releasebuf过程
计算进程调用Releasebuf过程:当计算进程把C缓冲区中的数据提取完毕时,便调用Releasebuf过程,将缓冲区C释放。计算进程。
第32页:输入进程调用Getbuf过程
输入进程调用Getbuf过程:当输入进程要使用空缓冲区来装入数据时,调用Getbuf输入进程。
第33页:输入进程调用Releasebuf过程
输入进程调用Releasebuf过程:当输入进程把缓冲区装满时,也应调用Releasebuf过程。输入进程。
第34页:进程同步:Nexti追上Nextg
进程同步:Nexti追上Nextg
- 3.进程同步
- 输入进程和计算进程并行执行
- Nexti指针追上Nextg指针
- 可用空缓冲区已满
- 输入进程应阻塞
- 计算进程
第35页:进程同步:Nextg追上Nexti
进程同步:Nextg追上Nexti
- 3.进程同步
- Nextg指针追上Nexti指针
- 装有输入数据的缓冲区都被抽空
- 计算进程应阻塞
- 输入进程
第36页:作业
作业:作业。