- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 - 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
 - 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
 - 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
 - 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
                        查看更多
                        
                    
                错误处理 操作系统可以从磁盘读、设备无效、暂时写失败等错误中恢复 当出现I/O请求失败时,多数情况返回一个错误号 系统出错日志记录了错误报告 内核数据结构 内核保存了I/O组件的状态信息,包括文件打开表、网络连接、字符设备状态等 许多复杂的数据结构用于记录缓冲、内存分配和“脏”块 有些操作系统使用面向对象的方法和消息机制来实现I/O  I/O内核子系统 UNIX的I/O内核结构 5、I/O操作 考虑一个进程从磁盘读取一个文件: 确定保存文件的设备 将文件名转换成设备使用的表示法 把数据从磁盘读入缓冲 通知请求进程数据可用 将控制权返回给进程 把I/O操作转换成硬件操作 I/O请求的生命周期 * 6.* 内容 I/O硬件 I/O 控制方式 I/O应用接口 I/O内核子系统 I/O操作 1、I/O硬件 概述 计算机2个主要任务: I/O操作-更加频繁 计算 I/O设备特点 种类繁多,不断有新设备出现 接口标准化:如USB 如何适应I/O设备的特点是操作系统的一个挑战  概念 端口 总线(链环或共享总线) 控制器(主机适配器) I/O指令控制设备 I/O硬件 个人计算机中的设备I/O端口位置(部分) I/O硬件控制 控制设备方法(通过设备地址): 直接I/O指令 IN AL,60H OUT 61H,AL  内存映射I/O 显存和内存统一编址 I/O寄存器 状态寄存器 控制寄存器 数据输入寄存器 数据输出寄存器   2、I/O控制方法 轮询 Polling 又称“程控输出入”(Programmed I/O) 流程: 由CPU定时发出询问,询问设备是否忙 不忙即进行I/O,否则转1 设备的状态 就绪 忙 出错 轮询法实作容易,但效率偏低 CPU会长期处于忙等待 中断Interrupts  I/O设备触发CPU的中断请求线触发中断 中断向量为中断分配正确的中断处理程序 基于优先级 某些中断不可屏蔽 中断处理程序处理中断 中断机制也用来处理异常 中断驱动的I/O循环周期 Intel Pentium处理器的事件向量表 为了避免用程序控制I/O来传输大量数据,需要DMA控制器 绕过CPU,直接在I/O设备和内存之间传输数据 直接内存访问DMA DMA传输中的步骤 3、I/O应用接口 设备独立性 为了提高操作系统的可适应性和可扩展性 现代操作系统中实现了设备独立性,也称为设备无关性 应用程序独立于具体使用的物理设备 实现方法 引入逻辑设备和物理设备 在应用程序中 使用逻辑设备名称来请求使用某类设备 而系统在实际执行时使用物理设备名称 系统须具有将逻辑设备名称转换为物理设备名称的功能 类似于存储管理中的逻辑地址和物理地址的概念 内核I/O结构 I/O驱动接口 I/O应用接口 I/O系统的核心是I/O管理和控制 I/O系统调用将设备的行为封装成一些通用类型 设备驱动层对内核隐藏了I/O控制器的不同细节 设备在许多方面有很大差异 字符流或块 顺序或随机访问 共享或独占 操作速度 读写、只读、只写 I/O应用接口 I/O设备的特点 块设备包括磁盘 命令包括读、写、寻找 原始I/O或文件系统存取 内存映射文件访问  字符设备包括键盘、鼠标、串口设备 命令包括get,put 在接口之上,可以构造库以提供按行访问的能力 块与字符设备 与块设备和字符设备有很大差别,具有自己的接口  UNIX和Windows NT/9i/2000具有套接字接口(Socket) 分离网络协议和网络操作 包括select()函数  方式广泛:管道、FIFOs、流、队列、邮箱 网络设备 获取当前时间,已逝去时间、计时器  可编程间隔定时器可被用于等待一段时间,然后周期性的触发中断  ioctl(在UNIX中)掩盖了时钟和定时器这些I/O设备的区别 时钟与定时器 阻塞和非阻塞I/O 3、I/O内核子系统 提供了与I/O有关的服务,建立在硬件和设备驱动程序结构之上,还负责保护自己免受错误进程和恶意用户的危害  I/O调度 某些I/O请求需要按设备队列排序 某些操作系统试图维持公平 先来先服务算法  缓冲(Buffering) - 设备之间传输的数据暂时存放在内存中 解决设备之间的速度差异 协调传输数据大小不一致 维持“拷贝语义” I/O内核子系统 设备状态表 Sun Enterprise 6000的设备传输率 高速缓存(Cache) - 保留数据拷贝的高速内存 仅仅是一个拷贝 关键是性能  假脱机(Spooling) - 保存设备输出的缓冲 如果设备在一个时刻只能相应一个请求 如,打印机  I/O保护- 防止非法I/O指令的执行 定义I/O指令为特权指令 应用程序I/O操作必须通过系统调用实现 I/O内核子系统 Spooling 输入进程Spi 输出进程Spo 输入井 输出井 输入缓冲区B
                
原创力文档
                        

文档评论(0)