第十一章I/O管理和磁盘调度厦门大学软件学院吴清强操作系统11.1I/O设备•I/O设备的三种类别–人可读:适用于同计算机用户之间的交互•打印机、显示器、键盘、鼠标–机器可读:适用于与电子设备通信•磁盘、磁带、传感器、控制器–通信:适用于与远程设备通信•数字线路驱动器、调制解调器•I/O设备的差异主要包括:–数据传送速率(见下页图)–支持的应用程序–设备控制的复杂性–数据传送单位(字节流、字符流、块)–数据表示(编码方式)–错误条件11.1I/O设备典型的I/O设备数据率11.2I/O功能的组织•三种I/O通信技术(P26图1.19)–可编程I/O–中断驱动I/O–直接存储器访问(DMA)5•I/O模块执行请求的动作,而非处理器。•I/O处理模块设置I/O状态寄存器中相应的位。•I/O处理模块不通知处理器,也不中断处理器。•处理器定期检测I/O模块状态,直到操作结束。处理器不断询问I/O模块的状态,严重降低了系统的性能。11.2I/O功能的组织611.2I/O功能的组织•当I/O模块准备好要交换的数据时,中断处理器。•处理器保存正在执行程序的上下文,然后开始进行中断处理。•没有不必要的等待。由于每个字的读写都需要通过处理器进行,消耗了大量的处理器时间。711.2I/O功能的组织•传送的为块数据。•传送完成时,产生中断。•处理器委托DMA模块,由该模块负责处理数据传送。•处理器不干预传送,而继续其它工作。可编程和中断驱动I/O缺点:•I/O传送速度受限于处理器测试设备和提供服务的速度。•处理器忙于管理I/O的传送工作。•处理器必须执行很多指令以完成I/O传送。11.2I/O功能的组织DMA配置:单总线,集成的DMA-I/O11.2I/O功能的组织DMA配置:单总线,分离的DMADMA配置:I/O总线11.2I/O功能的组织11.3操作系统设计问题设计目标•效率–和主存相比,大多数I/O设备非常慢–使用多道程序设计技术,可使一些进程在等待I/O设备,而其它进程在执行–I/O也无法跟上处理器的速度–交换技术用于将就绪进程加载到内存•是一个I/O操作•通用性–用一种统一的方式处理所有设备–屏蔽底层细节–高层可通过读、写、打开、关闭、锁定、解锁等一些通用的功能来操作I/O11.3.2I/O功能的逻辑结构11.4I/O缓冲•采用缓冲的原因–进程必须等待I/O操作完成后才能继续执行–如果使用分页机制,那么至少需要将包括目标地址单元的页锁定在主存中–可能出现单进程死锁•进程发送I/O命令并被挂起•在I/O操作开始之前被换出•进程阻塞,等待I/O事件•I/O阻塞,等待进程被换入在进程发出I/O请求之前,锁定I/O操作所涉及的存储空间在输入请求发出前就开始执行输入传递在输出请求发出一段时间之后才开始执行输出传送缓冲技术(面向块的I/O设备和面向流的I/O设备)11.4I/O缓冲•面向块的I/O设备–信息存储在固定大小的块中–一次传送一块–磁盘、磁带•面向流的I/O设备–以字节流的形式传送信息–打印机、鼠标11.4.1单缓冲区•OS给一个I/O请求分配一个位于主存中系统部分的缓冲区•面向块–输入传送的数据被放到系统缓冲区中–传送完成时,进程把块移动到用户空间–进程请求另外一块–在下一块数据正在读取的时候,用户进程可以处理一块数据–可以换出进程•输入是发生在系统内存,而非用户内存11.4.1单缓冲区•面向流–每次传送一行或一个字节–一次一行:适用于滚动方式的终端,用户输入一行后回车。行式打印机。11.4.2双缓冲区•使用两个系统缓冲区•一个进程往一个缓冲区中传送数据(或从这个缓冲区中取数据)的同时,OS正在清空(或者填充)另外一个缓冲区11.4.3循环缓冲•多于两个的缓冲区•每个缓冲区是循环缓冲区中的单元•用于使得I/O操作跟上进程速度11.5磁盘调度磁盘速度小于内存速度,如何提高磁盘性能是关键?11.5磁盘调度为了读写磁盘,磁头必须定位于指定的磁道和该磁道中指定的扇区的开始处。磁盘性能参数:•寻道时间(Seektime)–磁头定位到磁道所需要的时间•旋转延迟(Rotationaldelayorrotationallatency)–磁头到达扇区开始位置的时间•存取时间(Accesstime)–寻道时间+旋转延迟–磁头达到读或写的位置所需要的时间11.5.1磁盘性能参数11.5.1磁盘性能参数•传送时间(TransferT...