第五章 设备管理

I/O设备重要的性能指标有:数据传输速率,数据的传输单位,设备共享属性等。
   
I/O可分为:低速设备,中速设备,高速设备;可分为块设备,字符设备;可分为独占设备,共享设备,虚拟设备。
   
I/O设备到设备控制器有一根数据信号线和一根状态信号线,设备控制器到I/O设备有一根数据信号线和一根控制信号线。
   
设备控制器是:计算机中的一个实体,其主要职责是控制一个或多个I/O设备,以实现I/O设备和计算机之间的数据交换。
   
设备控制器的基本功能有:接收和识别命令,数据交换,标识和报告设备的状态,地址识别,数据缓冲,差错控制。
   
设备控制器由三部分组成:设备控制器与处理器的接口,设备控制器与设备的接口,I/O逻辑。I/O逻辑的作用是对收到的命令进行译码,来对所选设备进行控制。
   
I/O通道引入的目的是:使一些原来由CPU处理的I/O任务转由通道来承担。I/O通道其实是一种特殊的处理机,但也有其不同于处理机之处:指令类型单一,能执行的命令主要局限于与I/O操作有关的指令;通道没有自己的内存,而要与CPU共享内存。
   
通道三种类型:字节多路通道,数组选择通道,数组多路通道。
   
解决通道瓶颈问题的最有效的办法是:增加设备到主机间的通路而不增加通道。
   
总线的性能是:用总线的时钟频率、带宽和相应的总线传输速率等指标来衡量的。
   
由最早的ISA总线发展为EISA总线、VESA总线,进而到现在的PCI总线。
PCI
CPU和外设间插入一复杂的管理层,用于协调数据传输和提供一致的接口。
I/O控制方式由:最早的程序I/O方式,到中断驱动方式,再到DMA控制方式。(P152
   
中断驱动方式中,CPU把工作通过中断交给设备控制器,然后转而继续执行原来的任务,而任务完成后,设备控制器通过中断告诉CPU,实现了CPUI/O设备的并行工作。
    DMA
方式中,数据传输的基本单位是数据块;所传输的数据是从设备直接送入内存,或者相反;仅在传送一个或多个数据块的开始和结束时,才需CPU干预。
DMA
控制器由三部分组成:主机与DMA控制器的接口,DMA控制器与块设备的接口,I/O控制逻辑。
   
DMA控制器中设置有如下四类寄存器:命令/状态寄存器CR,内存地址寄存器MAR,数据寄存器DR,数据计数器DC
    
DMA控制器的工作方式。(P154
   
I/O通道方式是:DMA方式的发展。通道通过通道程序,与设备控制器共同实现对I/O设备的控制。
   
通道程序包含:操作码(读,写,控制等),内存地址,计数(操作的数据的字节数),通道程序结束位P(为1表示本条指令为通道程序的最后一条指令),记录结束标志R(为0表示本指令与下指令处理的数据同属一个记录,为1表示这是处理某记录的最后一条指令)
   
缓冲可以:1)缓和CPUI/O设备间速度不匹配的矛盾;2)减少对CPU的中断频率,放宽对CPU中断响应时间的限制;3)提高CPUI/O设备之间的并行性。
   
单缓冲,双缓冲,循环缓冲属于专用缓冲,现在多采用的是缓冲池。
   
缓冲池中三个队列:空缓冲队列emq,输入队列inq,输出队列outq;四种工作缓冲区:收容输入数据的工作缓冲区,提供输入数据的工作缓冲区,收容输出数据的工作缓冲区,提供输出数据的工作缓冲区。
   
Getbuf过程,Putbuf过程,缓冲区工作方式。(P160
   
设备分配时需要的数据结构(表格)有:设备控制表DCT,控制器控制表COCT,通道控制表CHCT和系统设备表SDT等。
   
设备的固有属性可分为:独占性,共享性,可虚拟性。
   
设备分配算法通常只采用以下两种:先来先服务算法,优先权服务算法。
   
设备独立性(无关性)的基本含义是:应用程序独立于具体使用的物理设备。
   
设备独立性软件能执行所有设备的公用操作,向用户层(或文件层)软件提供统一接口。
   
逻辑设备表LUT将应用程序中所使用的逻辑设备名映射为物理设备名。
   
独占设备的分配程序:
根据I/O请求中的物理设备名查找系统设备表SDT,找到该设备的设备控制表DCT;在系统把设备分配给请求I/O的进程后,再到其设备控制表DCT中找出该设备连接的控制器的控制器控制表COCT;在该控制器控制表COCT中又可找到与该控制器连接的通道的通道控制表CHCT。当设备、控制器和通道都分配成功时,分配成功。
   
在联机情况下实现的同时外围操作称为SPOOLing,或称为假脱机操作。SPOOLing技术是对脱机输入,输出系统的模拟。
   
SPOOLing系统主要有:输入井和输出井;输入缓冲区和输出缓冲区;输入进程SPi和输出进程SPo
   
SPOOLing系统提高了I/O的速度,将独占设备改造为共享设备,实现了虚拟设备功能。
   
设备处理程序通常又称为设备驱动程序,I/O进程和设备控制器之间的通信程序。
   
设备驱动程序的处理过程:将抽象要求转换为具体要求;检查I/O请求的合法性;读出和检查设备的状态;传送必要的参数;工作方式的设置;启动I/O设备。
  
 中断处理程序的处理过程:唤醒被阻塞的驱动(程序)进程;保护被中断进程的CPU环境;转入相应的设备处理程序;中断处理;恢复被中断进程的现场。(P171
   
磁盘设备包括:一个或多个盘片,每片两面,每面分为若干磁道,每磁道分为若干扇区。
   
根据磁头的类型,磁盘可分为固定头磁盘和移动头磁盘。
   
磁盘访问时间=寻道时间+旋转延迟时间+传输时间
   
磁盘调度算法有:先来先服务,最短寻道时间优先,扫描算法,循环扫描算法,N-Step-SCANFSCAN调度算法等。
   
磁盘高速缓存是一组在逻辑上属于磁盘,而物理上是驻留在内存中的盘块。
UNIX
系统中,每隔一定时间,强制性地将所有在高速缓存中已修改的盘块数据写回磁盘,MS-DOS发现某盘块数据修改,就立即写回磁盘(写穿透,高速缓存)。
   
提高磁盘I/O速度的其他方法还有提前读,延迟写,优化物理块的分布,虚拟盘。
 
  RAID的优点有:可靠性高,磁盘I/O速度高,性能/价格比高。