3.  I/O通道
  I/O通道是特殊的处理机。它具有执行I/O指令的能力,并通过执行通道程序来控制I/O操作,它的指令单一主要与I/O操作相关的指令,通道没有自己的内存,它和CPU共享内存。通道又分为字节多路通道,数组选择通道,和数组多路通道。
  (1)  数组选择通道:又称告诉通道,在物理上可以连接多个设备,但某一段时间内通道只能选择一个设备进行工作
  (2)  数组多路通道:当某设备进行数据传送时,通道只为该设备服务,当设备在执行寻址等控制性动作时,通道挂起该设备的通道程序,去为其他设备服务。
  (3)  字节多路通道:用于大量低速设备,与设备之间数据传送的基本单位是字节,为一个设备传送一个字节后,又可以为另个设备传送一个字节。数组多路通道传输的基本单位是块。而且一次只能有一个设备在传输数据。
  4.  I/O控制方式
  (1)  程序I/O方式:忙等方式。
  (2)  中段驱动I/O方式:当某进程要启动某个I/O设备工作时,便由cpu向相应的设备控制器发出一条I/O命令,然后立即返回继续执行原来的任务,此时,CPU和 I/O设备并行操作。以字节为单位进行I/O。
  (3)  DMA I/O方式:直接存储器访问方式数据传输的单位是块,数据之间在设备和内存中进行交换,仅块传输的开始和结束时才需要CPU干预。(替代了设备控制 器)。DMA控制器中有四类寄存器:命令寄存器(存cpu发的控制命令或设备的状态),内存地址寄存器,数据寄存器(缓冲数据作用),数据计数器(存本次要读的字节数)。
  (4)  I/O通道控制方式:通道是通过执行通道程序,并与设备控制器共同实现对I/O设备的控制的。通道指令格式为命令
  1)操作码:规定了指令所执行的操作。
  2)内存地址:标明读操作和写操作时的内存首址
  3)计数:表示本条占领所要读或写数据的字节数
  4)通道程序结束位P:用于表示通道程序是否结束
  5)记录结束标志R。
 

  三、设备管理
  设备管理包括:缓冲管理,设备分配和设备处理三个内容。
  进程I/O一共有四种方式:程序查询方式,程序中断方式,DMA方式,通道控制方式。通道处理器也是一个处理机,但是与CPU相比,它指令较为单一,没有独立的存储空间(使用内存空间)。通道分为字节多路通道,数组多路通道和数组选择通道。
  (一)缓冲管理
  缓冲管理包括单缓冲,双缓冲,循环缓冲和缓冲池。这里需要注意的是缓冲池。它包括输入队列,输出队列和空闲队列,有四种工作方式:
  1.收容输入方式:进程请求向缓冲区输入,从空闲缓冲队列中申请一个缓冲区输入,将之链接在输入队列尾;
  2.提取输入方式:进程要从缓冲区中提取输入,则从输入队列尾部缓冲区中拷贝信息,同时释放空间,将之重新链入空闲队列中;
  3.收入输出方式:进程要想缓冲区输出,从空闲缓冲区队列中申请一个缓冲区输出,将之链接在输出队列尾;
  4.提取输出方式:进程要想缓冲区提取输出,则从输出队列尾部缓冲区中拷贝信息,同时释放空间,将之重新链入空闲队列中。
  (二)设备分配
  操作系统为实现设备分配需要配备的数据结构有:设备使用表,控制器使用表,通道使用表,系统设备表。利用设备独立性的思想分配设备。所谓设备独立性,是指使用逻辑设备名称来请求某种设备,而系统通过某种名称转换方式将其转换成物理设备名称进行分配。实现设备独立性需要再驱动程序之上再增加一层设备独立性软件,负责实现名称和地址的转换,这种转换信息使用逻辑设备表LUT实现,每一个表项存储逻辑设备名,物理设备名,驱动程序入口地址。使用设备独立性方法实现设备分配,具有灵活性和易于设备重定向。
  SPOOLing是设备分配的一个重要例子。它实现了独占设备的共享。SPOOLing系统包括输入井,输出井,输入缓冲,输出缓冲,输入进程和输出进程。进程在请求独占设备输出时,OS要求它先把要输出的内容输入到输入缓冲,之后有输入进程将其输入到输入井中,此时如果处理机要处理这些数据,则从输入井中取数据;独占设备要输出时,由输出进程将输出井中的信息送至输出缓冲,由输出设备输出。这种方式实现了独占设备的共享,如网络打印机。
  (三)设备处理
  设备处理指的是一系列驱动程序。它们是OS与外设的接口,把OS进程发来的抽象的要求转化为对硬件的具体的控制命令,如设置命令控制字,读取设备状态信息,启动设备等。它们对操作系统提供统一的接口,方便用户调用。