- 1、本文档共52页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 设备管理 着重于管理的软件部分-设备驱动程序和中断处理程序 种类繁多的I/O设备 以信息交换的单位分类 块设备 字符设备 按设备的共享属性分类 独占设备 共享设备 虚拟设备 I/O系统中的基本概念 总线(ISA、PCI、SCSI、USB) 端口 设备控制器 PC机的I/O指令与I/O空间 IN指令将外部I/O设备的数据传入到AL、AX或EAX。 OUT指令传送AL 、AX或EAX的数据到外部的I/O设备。 IBM PC用16位端口地址访问它的I/O空间。PC的I/O空间放在I/O端口为0000H-03FFH的地方,但也有些适配卡使用的I/O地址可能超过03FFH。 IBM PC机提供了外部设备的抽象接口,并将其固化在BIOS(基本输入/输出系统)中。 设备控制器 在对设备的操作中,需要持续地注意设备地状态。如果软件想要直接控制设备,需要在操作中不间断地监控设备的详细操作状态。这种监控大多是简单地观察状态、提供详细命令、修正小的错误等。这就是设备控制器要做的第二件事(将设备连接到总线是第一件事) 接口设计的目标就是使软件能操作设备(经由控制器),并能使其行为与设备同步。 I/O控制方式 在CPU和设备之间完成数据交换,主要有三种方式 轮询 中断 DMA 应用程序内I/O与CPU的交迭执行 应用程序员希望单个的进程(线程)具有串行执行语义: …… read ( dev_ID, “%d”, x ); y= f(x); 读指令必须在下一条指令执行前完成。从进程的角度看,虚拟机要等候设备完成I/O操作后才能执行赋值语句。 多个线程间I/O与CPU的交迭执行 无论何时一个单线程执行I/O操作,它会将CPU让给另一个线程执行。 使用轮询的直接I/O 由CPU负责确定I/O操作何时完成,并在机器主存与设备控制器数据寄存器间进行数据传送。 CPU在向控制器发出一条I/O命令后,同时置busy位为1,然后CPU不断地循环检测busy位,直至busy位为0 空闲:软件可以放置一个命令到命令寄存器,激活设备。 新的I/O命令的出现会引起控制器将busy设为1(工作),并开始工作。利用数据寄存器完成数据的输入和输出,进程通过检查状态寄存器来检测操作状态。 当I/O操作完成后(成功或失败),设备控制器清除busy标志位,而置done标志位(完成) 。当完成读操作后,设备会将数据拷贝到数据寄存器;当完成写操作后,数据会从控制器的数据寄存器拷贝到设备中。 如果在写操作后,设备的标志位均为0,那么就可以写新数据到控制器的数据寄存器;如果是从设备读数据,软件从控制器读取数据后,控制器清done位,表明设备空闲。 中断I/O 中断请求(由设备与CPU的中断连线) 中断向量定位中断请求到对应的中断处理程序 中断优先级 可屏蔽中断与不可屏蔽中断 中断处理程序负责处理中断请求 中断机制可以用于实现 异常 系统调用 中断处理程序可以分为两个部分 Top half Bottom half DMA I/O 中断驱动I/O是以字节为单位进程I/O,DMA允许以较大的数据块为单位传输。 DMA控制器 数据交换是在设备与内存间直接完成,无需CPU中转。 I/O系统 一方面,I/O设备种类繁多,另一方面,I/O系统必须为用户提供简单、一致的I/O接口 解决问题的方法是,操作系统隐藏或抽象大多数设备操作的细节,为用户提供几种的设备类型的访问 块设备 字符设备 时钟 I/O设备管理器抽象 设备管理器被分为两部分 设备无关部分(设备管理的基础设施) 设备管理中的数据结构 缓冲区管理(buffering、caching) spooling(独占设备的共享技术) 错误处理 访问控制 设备相关部分 设备驱动程序 设备管理器的基础设施 基础设施使得OS可以提供一组公共的设备接口系统调用,并将对公共接口的调用转换到特定的设备驱动函数。是设备管理器的设备无关部分 缓冲 缓冲区可以缓和CPU和I/O设备间的速度不匹配的矛盾;减少CPU的中断频率,提高CPU和I/O设备间的并行能力。 单缓冲 双缓冲 循环缓冲 缓冲池 设备分配 当进程通过系统调用使用I/O设备时,设备分配程序按照一定的策略,将设备分配给请求用户。 设备分配的数据结构 分配策略(相关属性、算法、安全性分配) 设备分配是设备无关的。 设备独立性 应用程序独立于具体使用的物理设备。 逻辑设备和物理设备 增强设备分配的灵活性 易于实现I/O重定向 设备独立性软件 设备独立性软件 执行所有设备的公有操作: 设备的分配回收 逻辑设备到物理设备映射 设备保护 缓冲管理 差错控制 …… 向用户层软件提供统一的接口 I/O 接口 可重配置的设备驱动程序 Spooling 技术 设备处理方式 为每一类设备设置一个进程,专门用于执行这类设备
文档评论(0)