您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 南邮操作系统教程CH 05 设备管理
ch5.1第五章设备管理5.1I/O硬件原理5.2I/O软件原理5.4缓冲技术5.5驱动调度技术5.6设备分配5.7虚拟设备ch5.2学习目标各种IO硬件IO的操作方式(主机和设备的交互方式)同步异步用户如何向设备发起操作?OS充当什么角色?设备如何分配?什么是虚拟设备?如何实现?磁盘调度ch5.3SCSI总线计算机中的IO系统串口并口磁盘磁盘IDE磁盘控制器扩展总线接口键盘SCSI适配器桥/存储器控制器缓存显示器图形适配器磁盘扩展总线磁盘总线ch5.4IO硬件端口设备与计算机的连接点,如串行端口、并行端口总线一组线和一组定义在线上传输数据的协议控制器用于控制/操作端口、总线或设备的一组电子器件。有些控制器较为简单,可以集成在主板上,如串口控制器。有些控制器实现功能复杂,需要做成一块独立的集成电路板并与计算机相连,通常称为适配器。如图形适配器、SCSI适配器。有的设备内置了适配器,如硬盘控制器板就在硬盘的一侧。ch5.5设备控制器控制器有一个或多个用于数据和控制信号的寄存器。CPU通过读写这些寄存器来控制通信。控制寄存器:可以被主机发布命令或改变设备状态状态寄存器:包含一些主机可读的位信息数据寄存器:记录主机可读或写入的数据CPU外部设备控制逻辑电路控制寄存器状态寄存器数据寄存器ch5.6CPU如何访问设备控制器寄存器?IO地址:给控制器寄存器的编址一个设备控制器全部寄存器的地址范围也就组成了IO地址空间(范围)编址方式IO独立编址:使用I/O专用指令访问,如IN、OUT内存映像编址:将寄存器值映射到内存空间里,可以使用一般的内存访问指令即可访问IO地址范围设备000~00FDMA控制器3D0~3DF图形控制器……ch5.7设备分类存储设备(块设备):如磁盘、磁带、DVD-ROM等访问一整块数据相关调用有open(),read(),write(),seek()输入输出设备(字符设备):如显示器、键盘、鼠标等每次传送一个字或字符相关调用有get(),put()ch5.8IO控制方式CPU一般不与设备直接打交道,而是将命令发送给控制器,根据操作方式可分成以下四类询问方式(Polling)中断方式(Interrupt)DMA方式(DirectMemoryAccess)通道方式(Channel)主要差别在于:CPU和设备并行工作的方式和程度不同,和CPU与何种设备通信也有关系。ch5.9询问方式询问方式又称程序直接控制方式,CPU和设备控制器之间有点类似于生产和消费者,需要两个寄存器位来协调二者的关系。状态寄存器中的“忙”位控制寄存器中的“命令就绪”位协调过程如下:CPU不断测试“忙”位,直至该位被清除(置0)CPU置控制寄存器的“写”位,并向数据寄存器写入一个字节CPU置“命令就绪”位为1控制器发现“命令就绪”,且是“写”命令,于是先置“忙”位为1,再从数据寄存器中读取一个字节并向设备执行“写”的IO操作控制器最后清除“命令就绪”位以及“忙”位ch5.10忙式等待询问方式只要三种CPU指令就足够了:读写设备寄存器、逻辑与、根据是否为0进行跳转。所以基于询问方式的操作效率还是很高的,但这是基于设备总是很快就绪的情况下作出的结论。CPU在第1步处于忙等状态,CPU不断读取状态寄存器直到“忙”位被清除。如果设备长时间不能就绪,那这段CPU时间就白白浪费了,如何利用起来?可以让CPU在这段时间为其它进程服务,那设备准备好了如何通知CPU呢?中断!ch5.11中断方式CPU启动IO设备后,不必查询IO设备是否就绪,继续执行现行程序设备一旦就绪则发出中断通知CPU中断处理程序中,CPU全程参与数据传输操作启动IO(读)继续执行第K条指令第K+1条指令现行程序启动命令返回源程序IO控制器工作IO设备就绪发IO中断IO中断处理程序CPU读IO状态有错处理无CPU从IO接口读一个字CPU等一个字到主存完成未响应中断返回断点ch5.12中断向量中断向量包含了特殊的中断处理程序的入口地址,通常这个和中断号、IO地址范围保存在一张表内。中断号(IRQ)用于识别中断种类,每一个中断号(IRQ)都映像到一个中断向量上。中断方式实现了一定程序上的并行操作,但是CPU还是全程参与数据传输操作,是否能直接让主存与设备交换数据而不占用CPU呢?DMA方式设备IO地址范围中断号中断向量时钟040~04308键盘060~06319硬盘1F0~1F714118…………ch5.13DMA工作流程CPU缓存CPU/内存总线DMA/总线/中断控制器目标区内存xIDE磁盘控制器磁盘磁盘PCI总线1.CPU向磁盘控制器发出命令传递C个字节的磁盘数据到地址为X的内存区2.磁盘控制器初始化DMA传输,向DMA控制器发送每个字节3.DMA控制向X地址内存传输字节,增加内存地址并减少C的值4.C=0时,DMA发出中断,通知CPU传输完毕ch5.14DMA方式的讨论DMA可以在主存和设备(一般为块设备)之间一次传送多个字节,传输过程无需CPU的参与,提高了CPU的使用率。DMA需要哪些部件主存地址寄存器字计数器数据缓冲区设备地址寄存器中断机制周期窃取DMA在主存和设备之间交换数据时需要占用内存总线,如果此时CPU也要使用总线则总是将占有权让给DMA,我们称这种占有为“周期窃取”。DMA方式一次只能传送一个连续数据块,那离散的数据块怎么办?通道方式ch5.15通道方式DMA方式下,要完成n个离散数据块的传输,CPU不得不发出n次IO指令。如何才能实现发出一次指令就能完成任务?装一个新的CPU来专门处理这些IO请求IO处理器通道通道可以执行一段由通道命令编写而成的通道程序。可以与CPU并行工作。内存x1内存内存x2xnstartIO1startIO2startIOn用户进程IO请求……ch5.16通道工作原理请求I/O进程i1.生成通道程序并装入内存2.进程i进入阻塞状态3.发送IO请求至通道4.调度一个新进程进入CPU执行5.从内存中取出通道程序6.执行通道命令,在内存和设备传输数据7.执行结束后发出中断8.进程i进入就绪状态,等候低级调度内存通道设备控制器设备CPU周期窃取ch5.17总线单总线IO硬件系统复习:计算机IO硬件系统端口设备控制器/适配器CPU控制寄存器状态寄存器数据寄存器IO地址空间内存块设备字符设备ch5.18复习:IO控制方式询问方式(Polling)CPU全程参与数据传输,为了等待设备就绪,要反复测试“忙”位,出现忙等。中断方式(Interrupt)CPU不需等待设备就绪,设备就绪时会发出中断通知CPU,在中断处理过程中完成传输过程。DMA方式(DirectMemoryAccess)需要新增硬件―DMA控制器,DMA控制器可以完成内存和IO设备之间的数据传输,做到与CPU并行工作。通道方式(Channel)也称IO处理机,它可以解释执行通道命令(IO指令),通常是执行一道包含若干通道命令的通道程序。CPU的干预更少,利用率更高。ch5.19通道的连接方式内存通道1设备控制器1设备1通道2设备控制器2设备控制器3设备控制器4设备2设备3设备4设备5设备6设备7单通道的IO系统内存通道1设备控制器1设备1通道2设备控制器2设备2设备3设备4多通道的IO系统ch5.20通道分类字节多路通道以字节为单位传输信息,它可以分时地执行多个通道程序。当一个通道程序控制某台设备传送一个字节后,通道硬件就控制转去执行另一个通道程序,控制另一台设备传送信息。选择通道以成组方式工作的,即每次传送一批数据,选择通道在一段时间内只能执行一个通道程序。当这台设备数据传输完成后,再选择与通道连接的另一台设备,执行它的相应的通道程序。数组多路通道上述二者的结合体ch5.21IO系统=硬件+软件IO软件的设计目标高效率(efficiency):与主存和处理器相比,IO设备显得非常的慢,解决这个问题的最好办法是:多道程序设计通用性(generality):为了让用户更方便、更简单地使用设备,应该尽量屏蔽硬件细节,对各种硬件提供一个统一使用接口。设备控制器CPUIO软件ch5.22IO应用接口我们的应用程序打开一个磁盘文件时不必知道是什么磁盘,也不必知道这个磁盘如何被增加到计算机当中的。对不同种类的磁盘,我们只需点击相同的按钮。IO软件是操作系统的一个部分,它的设计方式是层次式的,每层向上提供服务,向下隐藏实现。如果IO软件仅有一层可否实现设计目标?如果需要增加新设备怎么办?重新编译操作系统吗?面向用户的应该是最顶层,一层是绝对不够的,它已退化成整体式结构了!用户接口IO软件控制硬件ch5.23设备驱动层(把IO操作转换成硬件操作)该层包含了与设备密切相关的代码,每种设备类型都应该有对应的设备驱动程序。设备驱动负责解释用户的IO请求,并向设备发出命令,并监督它们正确执行;它向上层提供统一的使用接口。ch5.24设备无关层用户进程所使用的库函数可以针对多种设备,如write(fd,buffer,bytes)该函数可以写文件,还可以写管道,fd就是一种文件设备的描述符。stdin;stdout这两种描述分别代表了键盘和显示器。除了这些,设备驱动程序还看得懂另外诸如“dev/hdc”的设备描述符吗?在用户接口和设备驱动层之间还需要一层来解释这些人看得懂、机器看不懂的文字,该层不考虑设备的硬件细节,所以称为“设备无关层”,也叫内核IO子系统。ch5.25IO系统的层次结构用户进程设备无关软件键盘鼠标硬盘软驱…键盘控制器鼠标控制器硬盘控制器软驱控制器…键盘驱动鼠标驱动硬盘驱动软驱驱动…用户进程…用户进程用户进程中断处理程序ch5.26内核IO子系统(操作系统IO软件)功能设备命名与保护负责将设备名映射到相应的设备驱动程序检查用户是否有请求设备的权限文件的逻辑记录到物理记录的转换向用户软件提供统一大小的逻辑块,并将其转换成适合存储设备的物理块缓冲技术块设备和字符设备都需要缓冲,常用技术有:单缓冲、双缓冲和多缓冲设备跟踪、挂起与释放负责监控设备的使用情况,并据情况接受或拒绝设备的请求错误处理一般由驱动程序完成,一旦发现错误会向上层报告,之后由设备无关软件进行处理。ch5.27单缓冲磁盘缓冲区程序TMC每批数据处理时间为max(C,T)+MCT:M+TCT:M+C输入输出只能单向工作(半双工)ch5.28双缓冲磁盘缓冲区2程序TMC每批数据处理时间为:CT:TCT:M+C如果输入/输出设备速度相差过大,会导至缓冲区很快填满或抽空。缓冲区1ch5.29多缓冲操作系统从自由主存区域中分配一组缓冲区组成循环缓冲,称为缓冲池。多缓冲的缓冲区是系统的公共资源,可供各个进程共享,并由系统统一分配和管理。ch5.30用户进程设备无关软件设备驱动程序中断处理程序硬件设备IO请求的生命周期请求IO是否命中缓冲?处理请求,向控制器发送命令监视设备,当IO完成时中断接受中断,对各种情况进行相应处理,同时要解除被阻塞的进程判断是哪一个IO请求完毕,向IO子系统指示执行结果IO完成IO完成,产生中断设备控制器传输数据(如果合适),向进程返回完成结果Y向设备驱动程序发送请求,如果合适则阻塞进程Nch5.31硬磁盘结构图磁头磁盘片主轴数据接口跳线电源接口传动臂及驱动装置ch5.32微硬盘结构图Hitachi微硬盘ch5.33磁盘(直接存取存储设备)参数盘片:磁性数据载体,分单面和双面磁道:能被磁头访问的一组同心圆扇区:数据存放的基本单位CAV(恒角速度)所有磁道的扇区数相等内外磁道的数据密度不等,但转速恒定CLV(恒线速度)外磁道扇区比内磁道的多可存放更多数据,但转速要不断变化盘片每条磁道上的数据密度相等扇区磁道每条磁道上的扇区数相等ch5.34磁盘性能指标柱面:磁头位置下
本文标题:南邮操作系统教程CH 05 设备管理
链接地址:https://www.777doc.com/doc-3496195 .html