综述:IO设备管理需要完成哪些功能那?状态跟踪、设备存取、设备分配、设备控制
由于IO设备种类繁多,没有一种可以通用解决所有设备的方法,所以首先对IO设备进行分类。IO设备的分类:
按照使用特性分类:1)人机交互类外部设备2)存储设备3)网络通信设备
按照传输速度分类:1)低速设备2)中速设备3)高速设备
按信息交换的单位分类:1)块设备(存取以块为单位)2)字符设备(基本单位是字符)
IO的控制方式
设备管理的主要功能之一就是控制外部设备和处理机或内存之间的数据传送。总共有四种方式(同组成原理)
1)程序直接控制方式:传输数据时,设备传送数据,cpu接收数据。这是最简单的方式,但是cpu和外部设备的速度不匹配,造成cpu极大的浪费。
2)中断驱动方式:允许IO设备打断cpu请求服务。解放了cpu,不再像程序直接方式中,等待IO设备的发送了。IO设备要传送数据时,只要发出中断就可以了。
3)DMA方式:为了更加彻底的解放cpu,采用DMA的方式,这种方式的接口直接连接着主存,IO设备想要数据交换时,只有在开始的时候和结束的时候需要处理机,其他时间cpu可以让出总线,io设备直接和主存传送数据。
4)通道方式:通道方式是DMA的发展,IO通道是专门处理IO设备的处理机,可以进一步减少cpu干预,通道程序可以接收cpu的指令,然后通道就可以处理好一切。通道就是一个简化版的cpu,可以更加彻底的解放cpu。
IO子系统的层次结构
IO软件涉及计算机的从底层到应用层非常广,所以我们要对复杂的IO软件进行分层。上层软件使用下层的服务,并服务上层应用。下面对上面是透明的。(非常类似于计算机网络)
1)用户层IO软件:实现与用户交互的接口。
2)设备独立性软件:执行所有设备的共有操作。向用户层提供统一的接口。无论何种设备,对上层的接口是一样的。
3)设备驱动程序:是系统与硬件之间的联系,是IO进程和设备控制器之间的通信程序。也可以理解为翻译官。把系统的命令翻译给设备听。发送给设备控制器,让设备工作。
4)中断处理程序:用于保存被中断进程的cpu环境。实现系统的中断功能。
5)硬件设备:包含两部分,设备控制器和设备本体。设备控制器通过寄存器和cpu通信。