您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 操作系统课件_设备管理(PPT89页)
00:591第四章设备管理在计算机系统中,除了需要有处理机和存储器外,还需要有用于实现信息输入、输出和存储的设备。设备管理程序便是用于对这类设备进行控制和管理的一组程序。4.1设备管理基本知识4.2设备分配4.3设备驱动4.4磁盘设备4.5Linux设备管理4.6Linux设备驱动开发00:5924.1设备管理基本知识计算机系统是一个复杂的系统,常见的设备有显示器、键盘、鼠标、外存等大、中型机上还有通道等00:5931设备管理的对象-I/O系统主机I/O系统:通常为主机所配置的I/O设备较多,所以增加一级I/O通道,用以代替CPU与各设备控制器进行通信,实现对它们的控制。微型机I/O系统:多采用总线I/O系统结构00:594Linux的设备管理是和文件系统紧密结合的,各种设备都以文件的形式存放在/dev目录下,成为设备文件。应用程序可以打开、关闭、读写这些设备文件,对设备的操作就像操作普通的数据文件一样。I/O系统包括:常用的输入/输出设备(包括外存)设备控制器通道00:595I/O系统的管理对象之——设备与设备控制器I/O设备通常由物理设备和电子部件两部分组成。物理设备:以某种物理方式(机械、电磁、光电、压电等)运作,实际执行数据I/O操作的物理装置。电子部件:以数字方式操作的硬件,用于与计算机接口,控制物理设备的I/O操作。00:596NOTE!!!一个物理设备是无法直接与CPU相连接的控制方式不同:CPU产生的是数字化命令,而设备需要某种物理信号来控制。传输方式不同:CPU以字节为单位传输数据,而设备可能是以位为单位传输的。速度不匹配:时序不一致:设备有自己的定时控制电路,与CPU时钟不一致。信息形式不同:CPU表达信息的形式是数字的,设备则可能是模拟的。00:597Conclusion!!!CPU与设备的连接必须解决译码解码、数据装配、速度匹配、时序同步以及信息格式转换等诸多问题。这需要借助一个介于CPU与物理设备之间的硬件接口(I/O接口)来实现,这就是I/O设备的电子部件要完成的功能。00:598在许多情况下,I/O设备的电子部件与物理设备是分离的。电子部件称为设备控制器,物理设备就简称为设备。例如:显卡是显示控制器,显示器是由显卡控制的设备;声卡是音频控制器,音箱或耳机是音频设备。设备控制器组成:I/O端口:由一组寄存器组成,是设备与CPU的接口缓冲区:在块设备以及数据流量大的设备(音频、视频等设备)的控制器中设备控制逻辑:翻译作用中断与DMA控制控制器与设备之间的接口00:599出于通用性设计的考虑,系统遵照统一的标准设计了一些标准接口来实现某些设备和系统的连接。分为两类:通用接口,如串口、并口、USB接口等;连接某类设备而设置的专用接口,如IDE和SCSI接口都是块存储设备的专用接口。Thenanotherconcept——接口00:5910通过I/O标准接口连接设备的方式可以看做是将设备控制器的功能分散实现了:标准接口实现与CPU直接连接部分的功能,包括I/O端口、缓冲区、中断及DMA控制等。而与设备直接相关的控制逻辑则由设备自行实现(即集成在设备上)。打印系统:打印机(设备)+通用并行接口(主板上)+具体的打印控制(在打印机中);磁盘系统:硬盘连接在IDE接口上,设备通过该接口与CPU通信,与磁盘直接相关的控制部分则与物理的磁盘驱动器集合在一起。00:5911I/O系统的管理对象之——I/O通道尽管在CPU与设备之间增加了设备控制器,实现了数据的传送由设备控制器完成,已大大减少了CPU对I/O的干预,实现CPU与I/O的并行,但CPU仍要对I/O操作的组织、管理及结束后的处理工作,所以为了让CPU有更多的时间用于数据处理,而引入了通道技术。def:一种特殊的处理机,具有执行I/O指令的能力,并通过通道程序来控制I/O操作通道控制器(ChannelProcessor)有自己的专用存储器,可以执行由通道指令组成的通道程序,因此可以进行较为复杂的I/O控制,如网卡上信道访问控制。通道程序通常由操作系统所构造,放在内存里。00:5912通道的特殊性:通道所执行的指令简单(主要只限于I/O操作指令);通道没有自己的内存,其通道程序是放在主存中的。分为:字节多路通道、数据多路通道和数据选择通道。选择通道(selectorchannel):可以连接多个外设,而一次只能访问其中一个外设。多路通道(multiplexorchannel):可以并发访问多个外设。分为字节多路(byte)和数据多路(block)通道。00:5913NOTE!!!通道的瓶颈问题由于通道价格昂贵,致使机器中所设置的通道数量势必较少,这往往使它成为I/O的瓶颈,进而造成整个系统吞吐量的下降。如图,为了启动磁盘4,必须用到通道1和控制器2;但若这两者已被其它设备占用;必然无法启动磁盘4。解决瓶颈问题的最有效方法,便是增加设备到主机间的通路,而不增加通道。00:5914缓冲管理设备分配设备驱动:实现CPU与设备控制器间的通信虚拟设备:通过虚拟技术,将一台物理设备映射为多个逻辑设备设备独立性:设备无关性,应用程序独立于具体使用的物理设备2设备管理的任务00:59153中断技术在计算机运行期间,当系统内部或外部发生了某个异步事件需要CPU处理时,CPU将暂时中止当前正在执行的程序,而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处,继续执行或者调度新的进程执行,这个过程就称为“中断”(interrupt)。异步事件是指与系统运行没有时序关系的、不可预期的事件,如用户按下键盘按键、磁盘传输数据完成、系统硬件出现故障等都是异步产生的事件。中断技术最早应用在I/O传输过程中,它使外部设备和CPU的并行工作成为可能。而后中断技术扩大到设备之外的其他事件。现在,凡是需要CPU干涉或处理的异步事件都采用中断的手段进行处理。00:5916中断源与中断分类引起中断发生的事件称为中断源。通常中断源是由硬件产生的信号,目的是通知CPU某个需要处理的事件。如,当敲打键盘时,键盘控制器就会产生一个键盘中断源信号。在计算机系统中有很多种类的中断源。由设备数据传输过程中发生的中断属于I/O中断,是中断源中的一大类。其他中断源有周期性的时钟中断、电源掉电产生的中断等。此外,一些来自CPU内部的事件或程序执行中的异常事件(如CPU故障、除数为0、内存溢出、执行了陷入指令等)也会被作为中断对待和处理。这类由内部故障或程序故障引起的中断事件称为“异常”(exception)。00:5917中断响应对中断请求的整个处理过程是由硬件和软件相结合的一整套中断机构实施的。中断响应由硬件实施,中断处理主要由软件实施。CPU在收到来自中断控制器的中断信号后,暂停执行当前的进程,转入相应的中断处理程序进行处理,这个反应的过程称为中断响应。通常CPU在执行完一条指令后,会检查有无中断请求。如有,则会立即作出响应。中断处理程序的入口地址都保存在一个中断向量表中。CPU在响应中断时,根据中断源检索中断向量表,得到的中断向量中包含相应中断处理程序的入口地址和程序状态字。将中断向量加载到CPU中,在下一个指令周期CPU就会转去执行相应的中断处理程序了。并不是所有中断请求都会得到及时的响应。在很多情况下,比如系统正在执行内核的进程调度或者内存调度操作,为了保证操作的原子性,这时不允许CPU响应中断。00:5918中断处理中断处理主要由软件实施。响应中断后,CPU转去执行相应的中断处理程序。每个中断都对应一个特定的中断处理程序,因而系统中会有许多中断处理程序,如时钟中断处理程序、键盘中断处理程序等。在设备的驱动程序中包含了对该设备所有中断的处理程序。中断处理程序的执行过程大致分为如下几个阶段:保存现场:CPU中的各个寄存器、计数器的状态。处理中断:中断的处理方式因中断的不同而异。对于I/O中断来说,通常是从设备控制器读取设备状态,判别此次中断是正常完成中断还是异常结束中断。若是完成中断,则进行结束处理,需要的话再向控制器发送新的命令,启动下一轮数据传送。恢复现场:中断返回:中断处理程序完成处理后,执行一个特定的中断返回指令根据断点信息恢复原来被中断的程序或唤醒进程或重新进程调度。00:5919中断技术的引入,使得系统中各I/O设备之间以及I/O设备和CPU之间可以并行工作。但I/O设备与CPU的处理速度存在着巨大的差异,这导致进程在需要传输大量数据时不得不经常等待。因此,I/O设备与CPU的速度不匹配的问题制约了系统性能的进一步提高。解决此问题的有效方法是缓冲(buffer)技术。对于I/O操作来说,缓冲的思想就是在高速存储区(内存或高速缓存cache)内设置缓冲区。根据缓冲区所在的位置,可以分为硬缓冲和软缓冲两种。硬缓冲就是设备自带的缓冲区,位于设备控制器或设备上,软缓冲是在内存中开辟的缓冲区。4缓冲技术00:5920硬缓冲设备自带的缓冲区,位于设备控制器或设备上。CPU与内存之间设置高速缓存(CacheMemory):CPU内部的L1Cache和L1Cache。主存与显示器之间设置显示缓存-显存00:5921软缓冲是在内存中设置缓冲区,用于暂存数据供进程快速地获取或输出。进程执行写操作输出数据时,向系统申请一个缓冲区,把数据填到缓冲区,此后,进程继续它的计算,系统将缓冲区内容写到I/O设备上。进程执行读操作输入数据时,向系统申请一个缓冲区,系统将一个物理记录的内容读到缓冲区,根据进程要求,把当前需要的逻辑记录从缓冲区中选出并传送给进程。00:5922按组织方式分为:单缓冲(最简单。每当用户进程发出一I/O请求时,操作系统便在主存中为之分配一缓冲区);双缓冲:循环缓冲:缓冲池:以上缓冲区属于专用缓冲区,利用率不高。缓冲池是一组公用缓冲区,由专门的管理程序统一管理,供多个I/O进程共享。进程需要时就申请,使用完毕后再释放。缓冲按使用方式分为专用缓冲(为某设备/进程专门设置)和公用换冲(为所有的设备/进程所共享)。00:5923NOTE!!!缓冲溢出bufferoverflow,smashthestack,memoryleak是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量,使得溢出的数据覆盖在合法数据上。第一个缓冲区溢出攻击--Morris蠕虫,发生在1988年,由罗伯特,莫里斯(RobertMorris)制造,它曾造成全世界6000多台网络服务器瘫痪。向程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序堆栈,造成程序崩溃或使程序转而执行其它指令,以达到攻击的目的。例如下面程序:voidfunction(char*str){charbuffer[16];strcpy(buffer,str);}类似的标准函数有strcat(),sprintf(),gets(),scanf()等。00:5924I/O控制就是控制数据在I/O设备与CPU、内存之间的传输,这是设备管理的一个主要功能。随着计算机技术的发展,I/O控制方式也在不断地发展。从最早的程序I/O方式,发展到中断驱动方式、DMA控制方式和通道方式,数据传输速率不断提高。发展宗旨就是尽量减少CPU对I/O控制的干预,把CPU从繁杂的I/O控制事务中解脱出来,提高CPU与外设的并行化程度。5I/O控制技术00:5925I/O控制方式之一——程序I/O方式在设备控制器的状态寄存器中,有一个用于表示设备工作状态的“忙/闲”(busy)标志位。进程通过执行I/O测试指令可以检测这个标志位,获得设备的当前工作状态。程序I/O方式就是由执行I/O的程序直接访问这个标志位来控制设备的I/O操作的方式。该方式下进程一直占用着CPU,而CPU所做的大量工作是不断地查询设备的状态,由于外备的速度比CPU要低很多,使CPU的大量时间浪费在轮询(polling方式)上。00:5926I/O控制方式之二——中断I/O方式当进
本文标题:操作系统课件_设备管理(PPT89页)
链接地址:https://www.777doc.com/doc-1311643 .html