您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 操作系统原理-第四章-设备管理
第4章设备管理设备管理是指计算机系统对除CPU和内存以外的所有输入、输出设备的管理。重点介绍:设备驱动处理过程与技术磁盘驱动调度设备独立性虚拟设备的实现(SPOOLing系统)4.1设备管理概述I/O设备是计算机系统的重要资源,用户无权直接使用。设备管理的一个重要任务:便是按照一定的算法在各进程间调度和分配设备。另外,设备管理还要按照用户要求启动具体设备,完成数据传输操作,并且处理设备的中断。还有如何利用虚拟技术使独享设备“变为”共享设备,使一台物理设备“变为”多台逻辑设备。一、设备管理的分类按从属关系分类(1)系统设备:指在操作系统生成时已经登记在系统中的标准设备。如键盘、显示器、打印机等。(2)用户设备:指操作系统生成时未登记入系统的非标准设备。如鼠标、绘图仪、扫描仪等。4.1.1设备的分类按传输速率分类(1)低速设备:指传输速率为每秒钟几个字符至数百个字节的设备,如键盘、鼠标、语音输入等。(2)中速设备:指传输速率为每秒钟数千个字节至数万个字节的设备,如针式打印机、激光打印机等。(3)高速设备:指传输速率为数兆字节的设备,如磁带机、磁盘机、光盘机等。设备的分类(续1)按使用特性分类(1)存储设备:计算机用来保存各种信息的非易失性设备,如磁盘、磁带等;(2)I/O设备:向CPU传输信息或输出CPU加工处理信息的设备,如键盘,CRT等。设备的分类(续2)按信息交换单位分类(1)字符设备:处理信息的基本单位是字符的设备,如键盘、打印机、显示器等;(2)块设备:处理信息的基本单位是字符块的设备,一般块的大小为512B~4KB,如磁盘、磁带等。按设备共享属性分类(1)独占设备:指在一段时间内只允许一个用户(进程)访问的设备,大多数低速的I/O设备,如打印机、显示器等。独占设备属于临界资源,多个并发进程必须互斥地访问独占设备。(2)共享设备:指在一段时间内允许多个进程同时访问的设备。共享设备必须是可寻址的和可随机访问的设备,典型的共享设备是磁盘。(3)虚拟设备:指通过虚拟技术将一台独占设备变换为若干台供多个用户(进程)共享的逻辑设备。一般可以利用假脱机(SPOOLing)技术实现虚拟设备。设备的分类(续3)(1)提高I/O设备和CPU的利用率:应尽量提高CPU与I/O设备之间的并行操作程度,主要利用的技术有:中断技术、DMA技术、通道技术和缓冲技术。(2)提高I/O速度:除上述技术外,还常用虚拟设备技术(3)为用户提供方便、统一的界面:方便,是指用户能独立于具体设备的复杂物理特性之外而方便使用设备。统一,是指对不同的设备尽量使用统一的操作方式。这要求用户操作的是简便的逻辑设备,而具体的I/O物理设备由操作系统去实现,这种性能常常被称为设备的独立性。Linux中,用户通过访问设备文件(如/dev/sdc)来访问各种设备;而内核中,对字符设备定义了统一驱动接口,对块设备定义了统一驱动接口。4.1.2设备管理的目标4.1.3设备管理的功能(1)设备分配:按照设备类型和相应的分配算法决定将I/O设备分配给哪一要求使用该设备的进程。凡未分配到所需设备的进程被放入一个等待队列。(2)设备处理:设备处理程序实现CPU和设备控制器之间的通信。即当CPU向设备控制器发出I/O指令时,设备处理程序应启动设备进行I/O操作,并能对设备发来的中断请求作出及时的响应和处理。(3)实现其他功能:包括对缓冲区的管理功能及实现设备独立性(又称设备的无关性)。1.逻辑I/O:抽象命令、网络协议栈、文件逻辑结构控制2.设备I/O:用户命令到设备操作序列转换,I/O缓冲3.调度和控制:设备驱动程序•并发I/O访问调度•设备控制与状态维护•设备中断处理用户进程硬件4.1.4设备管理结构设备无关层设备有关层使用C库函数fread系统调用read如缓存中有:则直接返回,否则,转化为对硬盘某些块的I/O请求调用块设备驱动程序接口make_request处理、调度I/O请求,并将I/O请求转换为对硬盘地址的访问命令,并响应中断请求,处理返回数据硬盘访问命令4.1.5设备控制器和I/O通道CPU通过设备控制器与I/O设备通信通道:专门负责I/O工作的处理机;一般在大中型计算机中设置有通道4.2I/O控制方式计算机外设与内存之间的信息传送称为输入/输出操作。其控制方式主要有4个发展阶段:程序轮询I/O控制方式中断I/O控制方式DMAI/O控制方式通道I/O控制方式减少CPU的I/O控制事务;提高CPU与I/O设备的并行程度1、程序直接控制方式优点:简单。缺点:浪费CPU资源,效率低下。2、中断控制方式3、DMA控制方式4、通道控制方式(I/O处理机)(1)CPU启动通道,告知“通道程序”的首地址;(2)(3):通道根据“通道程序”中的指令,执行I/O,交换数据(4)通道执行完“通道程序”的指令后,发出中断;操作PR计数内存地址WRITE0080813WRITE001401034WRITE01605830WRITE013002000WRITE002501850WRITE11250720三种通道类型字节多路通道以字节为单位传送信息;分时轮流执行多个通道程序,当一个设备传输一个字节后,转去执行另一个通道程序;适于连接像打印机、终端那样的字符类低速设备;选择通道以块为单位传送信息;每次执行一个通道程序,当该通道程序执行完毕后,才选择另一台设备,为其服务;适合于连接优先级高的磁盘等高速设备;数组多路通道以块为单位传送信息,分时轮流执行多个通道程序;当一个设备传输一块数据后,转去执行另一个通道程序;适用于连接多台像磁带机那样的高速设备。4.3中断技术4.3.1中断的基本概念中断是指计算机在执行期间,系统内发生了某一急需处理的事件,暂时中止CPU上现行程序的运行,转去执行相应的事件处理程序,待处理完毕后又返回到刚才暂停程序的被中断处继续执行的过程。中断是操作系统实现并发性的基础之一。以下是需要打断处理器正常工作的典型事件:•请求系统服务•实现并行工作•处理突发事件•满足实时要求1、中断分类中断的分类角度很多,比如,IBM中大型机操作系统,便按照中断事件的性质和激活的手段,将中断分成以下两类:•强迫性中断事件这不是正在运行的程序所期待的,而是由于某种事故或外部请求信息所引起的,具体分为:机器故障中断事件,程序性中断事件,外部中断事件,输入输出中断事件。•自愿性中断事件这是正在运行的程序所期待的事件。比如,其对操作系统有某种需求,一旦机器执行到一条访管指令时,便自愿停止现行程序的执行而转入访管中断处理程序处理。4.3.2中断分类与优先级而Windows2000/XP则按照中断信号的来源,把中断分为外中断和内中断两类:•外中断(又称中断):指来自处理器和主存之外的中断。包括:电源故障中断、时钟中断、控制台中断、它机中断和I/O中断等。•内中断(又称异常或陷入):指来自处理器和主存内部的中断。包括:通路校验错、主存奇偶错、非法操作码、地址越界、页面失效、调试指令、访管中断、算术操作溢出等各种程序性中断。内中断不能被屏蔽。中断分类(续)2、中断优先级是指中断装置响应中断的次序。当系统中同时发生多个中断时,先处理优先级高的中断。一般情况下,中断优先级的顺序从高到低为:机器故障中断、访管中断、程序性中断、外部中断和I/O中断4.3.3中断处理过程设备控制器/系统硬件发出中断请求处理器结束当前指令的执行处理器发出中断认可(响应)信号处理器将PSW和PC压入系统堆栈处理器装入中断程序入口地址到PC执行中断程序取回处理器状态信息(恢复现场)恢复中断前的PSW和PC处理程序相关的状态信息硬件软件4.4缓冲技术1、缓冲技术的基本思想在CPU和外设之间设立缓冲区,用以暂存CPU与外设之间交换的数据,从而缓和CPU与外设速度不匹配所产生的矛盾。凡是数据到达和离去速度不匹配的地方均可采用缓冲技术。CPU与内存之间也需要设置缓冲,只不过设在cache里。在CPU和外设交换数据时,经常会出现数据写入和读取速度不匹配的情况,由此引入了缓冲技术。2、引入缓冲的目的(1)改善CPU与I/O设备之间速度不匹配的矛盾避免高速的CPU等待慢速的I/O设备(2)减少对CPU的中断频率,放宽对中断响应时间的限制I/O设备输入数据时,装满缓冲区才产生一次中断(3)提高CPU与I/O设备之间的并行性提高系统吞吐率和设备利用率3、缓冲的分类及使用缓冲分为硬件缓冲和软件缓冲:硬件缓冲:设置专用寄存器用于缓冲,如Cache软件缓冲:在内存中划出若干个单元作为缓冲区按从属关系分类:分为专用缓冲区和通用缓冲区按缓冲区个数分类:单缓冲、双缓冲、环形缓冲(这三个均属专用缓冲区)和缓冲池(属通用缓冲区)缓冲操作主要由getbuf()和putbuf()过程实现,它们之间有互斥及同步约束。1)单缓冲只设置一个缓冲,CPU和外设轮流使用CPU设备与CPU对缓冲区的操作是串行的2)双缓冲可以提高CPU与设备的并行操作程度,适合于外设速度较高的情况。3)环形缓冲R:空缓冲区,G:满缓冲区,C:正在使用的缓冲区Nexti:指向第一个可输入数据的空缓冲区Nextg:指向第一个装满数据的缓冲区Current:指向当前正在使用的缓冲区4)缓冲池由多个大小相等的缓冲区组成,缓冲池是公用资源,由多个进程共享。缓冲池空缓冲队列输入队列(装满输入数据)输出队列(装满输出数据)4)缓冲池(续)hin:收容输入的工作缓冲区sin:提取输入的工作缓冲区sout:提取输出的工作缓冲区hout:收容输出的工作缓冲区例:当I/O设备需要输入数据时,从空缓冲队列中取出一个空缓冲区作为hin,输入数据,装满后将其挂接到输入队列缓冲的使用:Getbuf及PutbufGetbuf(type):P(type_n);P(type_mutex);从type缓冲队列首摘下一缓冲区V(type_mutex);Putbuf(type,i):P(type_mutex);将i指示的缓冲区挂到type缓冲队列V(type_mutex);V(type_n);type:缓冲队列类型,i:缓冲队列中的缓冲区type_n:type队列的资源信号量,type_mutex:该队列的互斥信号量输入数据:hin=Getbuf(emq)hin装满Putbuf(inq,hin)提取输入:sin=Getbuf(inq)sin用完Putbuf(emq,sin)4.5设备分配及设备处理程序设备独立性:又称设备无关性;设备分配:分配策略、分配算法、分配的安全性设备处理:处理方式、设备驱动程序工作过程1.设备独立性设备独立性:用户程序所用设备与物理设备无关的特性,也称设备无关性。应用程序中用户使用逻辑设备名请求设备,系统实际执行时使用物理设备;系统将逻辑设备名转换为物理设备名;设备独立性带来的好处设备分配灵活:若用户使用物理设备名,只能对应一台设备;但逻辑设备名可对应多台同类设备。易于实现I/O重定向:指用于I/O操作的设备可简单地进行更换(即重定向),不必改变应用程序。逻辑设备名到物理设备名的映射逻辑设备表:实现逻辑设备名到物理设备名的映射。LUT的设置单用户系统中,整个系统一张LUT(不允许有相同的逻辑设备名),如下图(a)多用户系统中,为每个用户设置一张LUT(放在PCB中),如下图(b)。逻辑设备名物理设备名驱动程序入口地址/dev/tty/dev/printer3510242046………逻辑设备名/dev/tty/dev/printer…系统设备表指针35(a)(b)2.设备分配当某进程向系统提出I/O请求时,设备分配程序按一定策略分配设备、控制器和通道,形成一条数据传输通路,以供主机和设备间信息交换。分配策略分配算法分配的安全性数据结构设备分配(续)1)分配策略:根据设备共享属性进行分配①独占设备的分配把独占设备固定地分配给一个进程,直至该进程完成I/O操作并且释放它为止。②共享分配
本文标题:操作系统原理-第四章-设备管理
链接地址:https://www.777doc.com/doc-3350194 .html