资源描述
单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第八章 I/O设备管理,授课教师:付勇智,西南林学院 基础部数理教研室,I/O设备,定义:除CPU和内存外的计算机系统其他部件。,I/O设备的分类(按传输特性):,块设备(block device),字符设备(character device),块设备,块设备将信息存储在可寻址的固定大小数据块中,块设备的主要特征是能够独立的读写单个的数据块,最常见的块设备是磁盘和光盘,柱面,扇区,磁臂,磁头,硬盘系统参数,容量,转速,5400RPM、7200RPM、10000RPM,平均寻道时间,磁盘臂从磁盘中点位置移动并定位到所有磁道时间的数学期望,交叉(交错)系数,接口,IDE/ATA、SATA、SCSI,硬盘接口,数据接口,跳线,电源,IDE/ATA接口电缆,SCSI接口硬盘,SATA,接口电缆,字符设备,一个字符设备可以接收或发送一个字符流,字符设备无法编址,因而也不存在任何寻址操作,典型的字符设备包括:键盘、鼠标、打印机、网卡,设备的使用特性,独占设备,一次只能由一个进程独占的设备,例如:打印机,共享设备,同一时刻可以由多个进程共享的设备,例如:磁盘,虚拟设备,通过独占设备来模拟共享型设备的动作,使独占型设备成为共享设备,从而提高了设备利用率和系统的效率,例如:脱机打印,I/O设备的组成,I/O设备通常包含一个机械部件和一个电子部件。为了达到设计的模块性和通用性,一般将其分开。,电子部分称为设备的控制器或适配器。在个人计算机中,它通常是一块可以插入主板扩展槽的印刷电路板。,机械部分则是设备本身。,I/O设备的连接,不同设备的传输速率,低速设备,中速设备,高速设备,现代个人计算机内部结构,硬盘的电子部件和机械部件,TP-Link TF-3239D Ethernet Adaptor,I/O设备的访问和编址,专用I/O编址,内存映象I/O编址,杂合式I/O编址,CPU通I/O设备之间的通信主要是通过对设备所带寄存器的读写来进行的。,I/O设备的控制方式,程序检测控制,中断驱动控制,DMA控制,通道控制,程序检测控制(Programmed IO),当CPU对I/O设备发出命令后,由相应的程序不停的对对应设备的状态寄存器进行检测,若设备未准备好,或者命令尚未执行完成,则程序不停进行检测,直到设备状态为完成或可用为止。,while(!avai(equipN);,send-command(equipN);,while(!finished(equipN);,receive-results(equipN);,send-another-command,I/O接口示意图,数据寄存器,控制/状态,寄存器,控制器,与设备,接口1,控制器,与设备,接口i,数据,状态,控制,地址线,控制线,数据线,CPU与控制器接口,控制器与设备接口,I/O,逻辑,数据,状态,控制,向I/O控制器发读命令,读I/O控制器的状态,检查状态,从I/O控制器中读入字,向内存中写入字,传送完毕,CPUI/O,I/OCPU,出错,处理,就绪,I/OCPU,CPURAM,未完,完成,执行下一条I/O指令,未就绪,中断驱动控制方式,CPU发出I/O操作命令后,阻塞相应进程,并转而执行其他操作。,I/O操作完成后,设备控制器通过中断线路,向CPU发出中断请求信号。,CPU收到中断请求后,中断当前进行任务,转而执行中断处理例程,检查执行结果,并完成I/O数据传输等相关操作。,中断控制,CPU,中断控制,器8259,向I/O控制器发读命令,读I/O控制器的状态,检查状态,从I/O控制器中读入字,向内存中写入字,传送完毕,CPUI/O,I/OCPU,出错,就绪,I/OCPU,CPURAM,未完,完成,执行下一条I/O指令,CPU做其它事,中断,DMA控制方式,为了减轻CPU在频繁处理I/O时的负担,引入了直接内存存取技术DMA(Direct Memory Access),使用DMA时,CPU除了告诉控制器数据块的地址外,还需告诉控制器两条消息,数据块将在内存中的存放地址,要传输的字节数目,DMA操作示意图,通道控制方式,通道:位于CPU与设备控制器之间的一种特殊的处理机,具有执行I/O指令的能力,通过执行通道程序控制I/O操作。,引入通道的目的:使一些原来由CPU处理的I/O任务转由通道来承担,从而把CPU从繁杂的I/O任务中解脱出来。,通道与处理机的区别,指令类型单一,没有自己的内存,网络存储新技术,I/O软件,I/O软件:将软件组织成一种层次结构,低层软件用来屏蔽硬件的具体细节,高层软件则主要为用户提供一个简洁、规范的界面。,I/O软件设计的关键是,设备无关性:使程序员写出的软件无需修改便能够读出软盘、硬盘以及CD-ROM等不同设备上的文件。,设备无关性的要点,统一命名法,所有设备都可以由一个文件及其路径名称确定。,错误处理,错误在尽可能接近硬件的地方处理,错误处理尽量对上层软件透明。,同步(阻塞)异步(中断驱动)传输,中断驱动的操作对用户程序具有阻塞语义。,设备共享性,独占设备、共享设备、虚拟设备,I/O软件的层次结构,OS通常将I/O软件组织成如下四个层次,从而合理有效的实现以上目标:,中断处理程序(底层调度),设备驱动程序(设备控制器操作),与设备无关的操作系统软件(文件系统),用户层软件(应用程序),用户进程,设备无关软件,设备驱动程序,中断处理程序,硬件,I/O请求,I/O响应,中断处理程序,中断是应该尽量加以屏蔽的一个概念,应该将其放在操作系统的底层进行处理,以便其余部分尽可能少的与之发生联系。,屏蔽中断的最好方法式将每一个进行I/O操作的进程挂起,直到I/O操作结束并发生中断,再解除阻塞。,进程阻塞:执行信号量DOWN操作、对某条件的WAIT操作、SLEEP、I/O读写等。,设备驱动程序,设备驱动程序的功能是从与硬件无关的软件中接收抽象的请求,并执行之。例如:读磁盘第n块,执行一条I/O请求的第一步,是将它转换为更具体的形式。例如对磁盘驱动程序,它包含:计算出请求块的物理地址、检查驱动电机是否在运转、检测磁头臂是否定位在正确的位置等。简言之,它必须确定需要哪些控制器命令以及命令的执行次序。,一旦决定向控制器发送什么命令,驱动程序将向控制器的设备寄存器中写入这些命令。,控制命令发出后有两种可能:驱动程序需要等待控制器完成一些操作,所以驱动程序阻塞,直到中断信号到来才解除阻塞。另一种情况是操作没有任何延迟,所以驱动程序无需阻塞。,对于前一种情况,被阻塞的驱动程序必须由中断唤醒,而后一种情况根本无需睡眠。,最后,驱动程序要对执行结果进行错误检查。,如果一切正常,则驱动程序将数据传送给上层的设备无关软件,否则进行错误处理。,设备驱动程序,硬件无关的I/O软件,尽管某些I/O软件是设备相关的,但大部分独立于设备。,设备无关软件和设备驱动程序之间的精确界限在各个系统都不尽相同。,多数设备无关软件属于文件系统。,设备无关软件的基本功能是执行适用于所有设备的常用I/O功能,并向用户层软件提供一个一致的接口。,用户空间的I/O软件,尽管大部分I/O软件属于操作系统,但是有一小部分是与用户程序链接在一起的库例程,甚至是在核心外运行的完整的程序。,C语言中的标准I/O函数库stdio.h,C+中的I/O流库iostream.h,Windows的API函数,死锁,例.进程A从CD-ROM读取数据,并用绘图仪打印地图,进程B先申请绘图仪,再申请CD-ROM,此时,若A得到CD-ROM,B申请到绘图仪,则因为A得不到绘图仪将等待,同样,B得不到CD-ROM也将等待,这样造成进程A、B彼此相互等待,不能继续运行,就是死锁的一种表现。,资源与死锁,资源:系统中需要采用排他方式使用的系统对象称为资源,在任何时刻资源只能被单个进程所使用。,资源分为两类:可剥夺资源与不可剥夺资源,可剥夺资源可以从拥有它的进程出剥夺而没有任何副作用,死锁主要与不可剥夺资源有关,死锁定义,若一个进程集合中的每一个进程都在等待只能由本集合中的另一个进程才能引发的事件,称之为死锁。,死锁的条件,互斥条件:每一资源或者被分配给一个进程,或者空闲。,保持和等待条件:已分到了一些资源的进程可以申请新的资源。,非剥夺条件:已分配给一进程的资源不可被剥夺,只能被占有它的进程显式的释放,循环等待条件:系统中必然有一条由两个或两个以上的进程组成的循环链,链中的每个进程都在等待相邻进程占用的资源。,死锁的处理策略,忽略该问题(鸵鸟算法),检测死锁并恢复,死锁的避免(谨慎的对资源进行动态分配),死锁的预防(破坏死锁的四个必要条件),
展开阅读全文