2026/2/9 18:36:13
网站建设
项目流程
城乡与建设厅网站首页,丽江建网站,网站建设主要工作流程,优秀网站作品截图目录5.2 I/O软件原理5.2.1 I/O软件的目标5.2.2 程序控制I/O5.2.3 中断驱动I/O5.2.4 使用DMA的I/O5.3 ⭐I/O软件层次5.3.1 中断处理程序5.3.2 ⭐设备驱动程序#xff08;Device Driver#xff09;5.3.3 ⭐Device-Independent的OS软件5.3.4 功能5.3.5 总结5.4 Disks5.4.1 盘硬件…目录5.2 I/O软件原理5.2.1 I/O软件的目标5.2.2 程序控制I/O5.2.3 中断驱动I/O5.2.4 使用DMA的I/O5.3 ⭐I/O软件层次5.3.1 中断处理程序5.3.2 ⭐设备驱动程序Device Driver5.3.3 ⭐Device-Independent的OS软件5.3.4 功能5.3.5 总结5.4 Disks5.4.1 盘硬件5.4.2 磁盘格式化5.4.3 ⭐磁盘臂调度算法5.2 I/O软件原理5.2.1 I/O软件的目标统一命名文件或设备名称是字符串或证书不依赖具体机器设备独立性程序可以访问任何I/O设备无序提前指定同步和异步传输同步传输即阻塞程序等待I/O操作完成异步传输即中断驱动程序继续执行I/O完成后通过中断通知Buffering设备产生的数据无法直接存放到目标内存需要暂存到缓冲区错误处理尽可能在接近硬件的层面处理共享设备和独占设备共享设备磁盘能同时让多个用户使用独占设备磁带机必须由单个用户独占使用5.2.2 程序控制I/OCPU直接控制I/O直到I/O完成适用于单进程系统MS-DOS、嵌入式系统Embedded systems不适用于多道程序设计和分时系统轮询/忙等CPU不断检查设备状态寄存器来检测设备是否准备就绪三种状态ReadyBusyError缺点CPU浪费CPU需处于忙等来等待I/O5.2.3 中断驱动I/OCPU在发送第一个字符后不再轮询等待而是打印机READY时会发送硬件中断再让CPU处理缺点每次字符输入都会发生中断5.2.4 使用DMA的I/ODMA控制器会把内核缓冲区的字符串输给打印机控制器CPU不参与这个过程传输完整个缓冲区字符串CPU才会被再次中断5.3 ⭐I/O软件层次5.3.1 中断处理程序最好隐藏中断处理程序把启动一个I/O操作的驱动程序阻塞直至I/O操作完成并产生一个中断如何阻塞驱动程序在一个信号量上执行down在一个条件变量上执行wait在一个消息上执行receive中断处理程序的位置由中断向量确定中断处理流程硬件发出中断处理器执行完当前指令处理器发出中断确认信号处理器将PSW和PC推入控制栈处理器根据中断加载新PC值软件保存剩余进程状态信息进程中断恢复进程状态信息恢复旧的PSW和PC软件中的具体步骤保存没被中断硬件保存的所有寄存器为中断服务过程设置上下文如TLB、MMU和页表为中断服务过程设置堆栈确认中断控制器重启中断将寄存器从它们被保存的地方复制到进程表运行中断服务进程选择下一次运行哪个进程为下一次要运行的进程设置MMU上下文装入新进程的寄存器开始运行新进程5.3.2 ⭐设备驱动程序Device Driver用来控制I/O设备的特定代码Device driver的逻辑定位用户程序 - 操作系统的其余部分 - Device driver - 总线 - Device controller - Device功能接收OS抽象的读/写请求初始化设备发送硬件命令请求队列管理错误处理分类块设备驱动程序磁盘字符设备驱动程序键盘和打印机5.3.3 ⭐Device-Independent的OS软件功能Device driver的统一接口好处驱动开发者知道驱动程序接口是什么样操作系统开发者能基于接口编写device-independent的I/O功能解决给I/O设备命名以Unix为例设备被抽象为特殊文件需要通过系统调用如read()等访问文件名与每个设备关联并确定一个包含主设备号和次设备号的i节点主设备号定位驱动程序次设备号作为参数传递给驱动程序以指定读/写的单元区分同一驱动的不同设备通常的文件保护规则也适用于I/O设备缓冲错误报告处理层级Device-controller如校验错误Device driver如无法读取磁盘Device-independent的OS软件层编程错误写入只读设备实际的I/O错误摄像头关机分配与释放专用设备不允许并发访问提供device-independent块大小不同磁盘扇区大小可能不同应由device-independent软件隐藏并向高层提供统一块大小5.3.4 功能封装系统调用格式化I/O处理如printf()假脱机管理5.3.5 总结流程双向I/O请求用户进程Device-independent软件Device driver中断处理硬件响应5.4 Disks5.4.1 盘硬件柱面(cylinder)-磁道(track)-扇区(sector)扇区通常512B磁盘可能有多个环带因为本来每个磁道扇区数相同越外圈每个扇区越大会造成浪费。所以在外面的磁道有更多扇区5.4.2 磁盘格式化磁盘使用前要先进行低格式化和高格式化低格式化将磁盘分为磁盘控制器可读写的扇区由供应商完成磁道格式化方式分为由inter-sector-gap间隔的扇区扇区格式前导码数据校验码⭐柱面斜进cylinder skew当磁盘读取完一个磁道磁头需要移动到下一个磁道。在移动过程中盘面一直在旋转为保证磁头能从本磁道的末尾恰好移动至下一磁道开头就需要柱面斜进目的改进性能让磁盘在一次连续的操作中读取多个磁道而不丢失数据例How much cylinder skew is needed for a 7200-RPM disk with a track-to-track seek time of 1 msec? The disk has 200 sectors of 512 bytes each on each track.7200转/分钟0.12转/毫秒磁道间寻道的这1毫秒期间盘面会转过200*0.1224个扇区。所以答案是24扇区交错interleaving若磁盘控制器只有一个扇区buffer当一个扇区数据从硬盘传输至buffer后需要把buffer数据拷贝至内存。此期间磁头将越过下一个扇区起始位置因此下一个逻辑扇区不应是相邻的物理扇区所以山区要交错排列复制快可用单交错复制慢可用双交错5.4.3 ⭐磁盘臂调度算法决定读写磁盘块时间的因素寻道时间磁盘臂移动至适当柱面的时间旋转延迟等待适当扇区旋转到磁头下所需时间实际数据传输时间⭐FCFS⭐Shortest Seek FirstSSF⭐Elevator Algorithm