- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
输入/输出 第5章 I/O设备分类 与人进行交互 用于和用户进行通信 打印机 视频显示设备 显示器 键盘 鼠标 与设备进行交互 用于和电子设备进行通信 磁盘和磁带 传感器 控制器 传动器 I/O设备分类 网络通信类 用于和远程设备进行通信 数据线 调制解调器 所有设备在操作系统中被粗略地分为两类 块设备 字符设备 I/O设备的不同 数据传输率 不同设备在数据传输率上有可能相差几个数量级 应用 如当磁盘用于存储文件时需要文件管理软件的配合 当磁盘用于存储虚页时需要特殊的硬件和软件的支持 被系统管理员使用的终端必须具有高级的优先权 控制的复杂度 I/O设备的不同 传输单位 对于终端,数据的传输是以字符流为单位,而磁盘则是以块为单位 数据的表示方式 不同设备编码方式不一样 出错表示方式 I/O硬件原理 某些典型设备、网络和总线的数据率 设备控制器 I/O设备的组成: 机械部分 电子部分 组成设备的电子部分就是设备控制器 一个设备控制器可以处理一类设备 控制器的任务 将串行的位流转换成字节块 尽可能进行纠错 可以与主存进行读写操作 内存映射I/O(1) 单独的I/O和内存空间 内存映射I/O 混合方案 内存映射I/O (2) (a) 单总线体系结构 (b) 双总线内存体系结构 I/O数据传输方式 程序控制I/O 在进行输入/输出时,CPU处于一种忙等待 中断驱动I/O CPU发出I/O命令,由控制器具体执行 CPU转去执行其他指令 控制器完成I/O后,向CPU发中断信号 I/O数据传输方式 直接存储器存取 (DMA) 由专门的DMA控制器控制数据在内存与外部设备间的传输 CPU仅仅在所有数据传输结束后进行中断干预 通道控制方式 几种数据传输方式的关系 中断回顾 中断是怎样发生的,设备与中断控制器之间的连线实际上使用的是总线上的中断线而不是专用 连线。 直接存储器存取 (DMA) 直接存储器存取(DMA) DMA传送操作 直接存储器存取(DMA) 基本原理: 处理器将相应的传输命令发给DMA控制器 DMA控制器直接将数据与内存间进行交换 当数据传输结束,DMA控制器向处理器发中断信号 DMA 配置 DMA 配置 I/O软件原理I/O软件的目标 (1) 设备独立性 程序能够访问任意的设备 不需要事先指定 (如读取硬盘, 软盘, 或光区) 统一命名 一个文件或设备的名字应该是一个简单的字符串或一个整数 不应依赖于任何设备 错误处理 错误应该尽可能在接近硬件层面得到处理 I/O软件目标 (2) 同步(Synchronous)和异步( asynchronous)传输 阻塞式传输和中断驱动传输 缓冲 数据离开一个设备后通常并不能直接存放到目的地 共享设备和独占设备 磁盘是共享设备 磁带是独占性设备 程序控制I/O (1) 打印一个字符串的步骤 程序控制I/O (2) 使用程序控制 I/O将一个字符串写到打印机 中断驱动 I/O 使用中断驱动 I/O将一个字符串写到打印机 当打印系统被调用时执行的代码 打印机的中断服务过程 使用 DMA的I/O 使用 DMA打印一个字符串 当打印系统被调用时执行的代码 中断服务过程 I/O 软件层次 I/O软件系统的层次 中断处理程序 (1) 中断向量程序应该隐藏在操作系统内部 将启动I/O操作的驱动程序阻塞起来,直到I/O操作完成且产生一个中断 中断处理程序将完成它所要做的全部工作 然后将启动中断的驱动程序解除阻塞 硬件中断完成之后软件中断的执行步骤 保存没有被中断硬件保存的所有寄存器 为中断服务过程设置上下文,可能包括设置TLB,MMU和页表 中断处理程序 (2) 为中断服务过程设置堆栈 应答中断控制器,如果不存在集中的中断控制器,则再次开放中断 将寄存器从它们被保存的地方复制到进程表中 运行中断服务过程,从发出中断的设备控制器的寄存器中提取信息 选择下一次运行哪一个进程 为下一次要运行的进程设置MMU上下文 装入新进程的寄存器 开始运行新进程 设备驱动程序 设备驱动程序的逻辑定位 驱动程序和设备控制器之间的所有通信都通过总线 与设备无关的 I/O软件 (1) 与设备无关的I/O软件功能 与设备无关的 I/O 软件 (2) (a) 没有标准的驱动程序接口 (b) 具有标准的驱动程序接口 与设备无关的 I/O 软件 (3) (a) 无缓冲的输入 (b) 用户空间中的缓冲 (c) 内核空间中的缓冲接着复制到用户空间 (d) 内核空间中的双缓冲 双缓冲 使用两个系统内核空间中的缓冲 当第一个缓冲区被填满之后,在它被清空之前可以使用第二个缓冲区 循环缓冲 可以使用的缓冲区有两个以上 Each individual buffer is one unit in a circular buffer
文档评论(0)