您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 第八章 IO设备管理(操作系统原理)
第八章I/O设备管理授课教师:付勇智fuyongzhi@swfc.edu.cn西南林学院基础部数理教研室I/O设备►定义:除CPU和内存外的计算机系统其他部件。►I/O设备的分类(按传输特性):块设备(blockdevice)字符设备(characterdevice)块设备►块设备将信息存储在可寻址的固定大小数据块中►块设备的主要特征是能够独立的读写单个的数据块►最常见的块设备是磁盘和光盘柱面扇区磁臂磁头硬盘系统参数►容量►转速5400RPM、7200RPM、10000RPM►平均寻道时间磁盘臂从磁盘中点位置移动并定位到所有磁道时间的数学期望►交叉(交错)系数►接口IDE/ATA、SATA、SCSI硬盘接口数据接口跳线电源IDE/ATA接口电缆SCSI接口硬盘SATA接口电缆字符设备►一个字符设备可以接收或发送一个字符流►字符设备无法编址,因而也不存在任何寻址操作►典型的字符设备包括:键盘、鼠标、打印机、网卡设备的使用特性►独占设备一次只能由一个进程独占的设备,例如:打印机►共享设备同一时刻可以由多个进程共享的设备,例如:磁盘►虚拟设备通过独占设备来模拟共享型设备的动作,使独占型设备成为共享设备,从而提高了设备利用率和系统的效率,例如:脱机打印I/O设备的组成►I/O设备通常包含一个机械部件和一个电子部件。为了达到设计的模块性和通用性,一般将其分开。►电子部分称为设备的控制器或适配器。在个人计算机中,它通常是一块可以插入主板扩展槽的印刷电路板。►机械部分则是设备本身。I/O设备的连接不同设备的传输速率低速设备中速设备高速设备现代个人计算机内部结构硬盘的电子部件和机械部件TP-LinkTF-3239DEthernetAdaptorI/O设备的访问和编址►专用I/O编址►内存映象I/O编址►杂合式I/O编址►CPU通I/O设备之间的通信主要是通过对设备所带寄存器的读写来进行的。I/O设备的控制方式►程序检测控制►中断驱动控制►DMA控制►通道控制程序检测控制(ProgrammedIO)►当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控制器中读入字向内存中写入字传送完毕CPU→I/OI/O→CPU出错处理就绪I/O→CPUCPU→RAM未完完成执行下一条I/O指令未就绪中断驱动控制方式►CPU发出I/O操作命令后,阻塞相应进程,并转而执行其他操作。►I/O操作完成后,设备控制器通过中断线路,向CPU发出中断请求信号。►CPU收到中断请求后,中断当前进行任务,转而执行中断处理例程,检查执行结果,并完成I/O数据传输等相关操作。中断控制CPU中断控制器8259向I/O控制器发读命令读I/O控制器的状态检查状态从I/O控制器中读入字向内存中写入字传送完毕CPU→I/OI/O→CPU出错就绪I/O→CPUCPU→RAM未完完成执行下一条I/O指令CPU做其它事中断DMA控制方式►为了减轻CPU在频繁处理I/O时的负担,引入了直接内存存取技术DMA(DirectMemoryAccess)►使用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彼此相互等待,不能继续运行,就是死锁的一种表现。资源与死锁►资源:系统中需要采用排他方式使用的系统对象称为资源,在任何时刻资源只能被单个进程所使用。►资源分为两类:可剥夺资源与不可剥夺资源►可剥夺资源可以从拥有它的进程出剥夺而没有任何副作用►死锁主要与不可剥夺资源有关死锁定义►若一个进程集合中的每一个进程都在等待只能由本集合中的另一个进程才能引发的事件,称之为死锁。死锁的条件►互斥条件:每一资源或者被分配给一个进程,或者空闲。►保持和等待条件:已分到了一些资源的进程可以申请新的资源。►非剥夺条件:已分配给一进程的资源不可被剥夺,只能被占有它的进程显式的释放►循环等待条件:系统中必然有一条由两个或两个以上的进程组成的循环链,链中的每个进程都在等待相邻进程占用的资源。死锁的处理策略►忽略该问题(鸵鸟算法)►检测死锁并恢复►死锁的避免(谨慎的对资源进行动态分配)►死锁的预防(破坏死锁的四个必要条件)
本文标题:第八章 IO设备管理(操作系统原理)
链接地址:https://www.777doc.com/doc-3405558 .html