《操作系统-设备管理》由会员分享,可在线阅读,更多相关《操作系统-设备管理(100页珍藏版)》请在金锄头文库上搜索。
1、2018/9/19,1,第六章 设备管理,设备管理是指操作系统对计算机系统中除CPU和内存以外的设备的管理。 设备管理的主要任务是完成用户提出的输入输出请求,提高输入输出的速率,以及改善输入输出设备的利用率。,设备不但种类繁多,而且它们的特性和操作方式相差很大,因此,设备管理是操作系统资源管理中最为复杂、最多样化,且与硬件密切相关的部分。,2018/9/19,2,第六章 设备管理,6.1 设备管理的概念 6.2 I/O控制的方式 6.3 缓冲技术 6.4 驱动调度技术 6.5 设备分配 6.6 虚拟设备 5.7 Linux设备管理,2018/9/19,3,第六章 设备管理,6.1 设备管理的概
2、念 6.2 I/O控制的方式 6.3 缓冲技术 6.4 驱动调度技术 6.5 设备分配 6.6 虚拟设备 5.7 Linux设备管理,2018/9/19,4,6.1 设备管理的概念,1、设备的分类,1)按传输速率分类 (1)低速设备低速设备是指每秒传输几B几百B的一类设备。这类设备 中典型的如键盘、鼠标器、语音的输入和输出等设备。 (2)中速设备中速设备是指每秒传输几千B数十千B的一类设备。这类 设备中典型的如行式打印机、激光打印机等设备。 (3)高速设备高速设备是指每秒数传输几百KB数十MB的设备。这类设 备中典型的如磁带机、磁盘机、光盘机等。,2018/9/19,5,6.1 设备管理的概念
3、,1、设备的分类,2)按信息交换的单位分类 (1)块设备块设备用于存储信息。由于信息的存取是以数据块为单位,故称块设备,它属于有结构设备。块设备的基本特征是可寻址,可随机地读/写任意一块;块设备的另一特征是其输入/输出采用DMA方式。典型的块设备是磁盘。 (2)字符设备字符设备用于数据传输的基本单位是字符,它属于无结构设备。其基本特征是不可寻址。此外,字符设备在I/O时常采用中断驱动方式。字符设备的种类较多,如交互式终端、打印机等。,2018/9/19,6,6.1 设备管理的概念,1、设备的分类,3)从资源分配角度分类 (1)独占设备独占设备是指在一段时间内只允许一个用户(进程)使用 的设备。
4、独占设备的分配可能会引起进程死锁。 (2)共享设备共享设备是指在一段时间内允许多个进程同时访问的设 备。典型的共享设备是磁盘。 (3)虚拟设备虚拟设备是指通过某种技术将一占设备变换为能供若 干个用户共享的设备,从而提高设备的利用率。,2018/9/19,7,6.1 设备管理的概念,2、设备管理的功能,为此,设备管理通常应具有以下功能。 提高系统的利用率的关键之一是实现设备的并行性。 为了提高设备的利用率,在进行设备分配时系统通常采用动态分配方式。对于独占设备往往采用虚拟技术将其改造为共享设备。 设备的速率相对CPU而言要慢得多。为了平滑两者之间的差异,在设备管理中采用多种缓冲技术。 设备管理还
5、要方便用户的使用。,2018/9/19,8,第六章 设备管理,6.1 设备管理的概念 6.2 I/O控制的方式 6.3 缓冲技术 6.4 驱动调度技术 6.5 设备分配 6.6 虚拟设备 5.7 Linux设备管理,2018/9/19,9,第六章 设备管理,6.1 设备管理的概念 6.2 I/O控制的方式 6.3 缓冲技术 6.4 驱动调度技术 6.5 设备分配 6.6 虚拟设备 5.7 Linux设备管理,2018/9/19,10,6.2 I/O控制的方式,选择和衡量数据传输控制方式的原则有: 数据传输速度足够高,既能满足用户的要求,又不 会丢失数据; 系统开销小,需要的处理控制程序少; 充
6、分发挥主机和设备的功能,提高两者并行的程度,2018/9/19,11,6.2 I/O控制的方式,1、程序直接查询控制方式,用户进程直接控制主机和外围设备之间的数据传输。用户进程与外围设备读取数据时,主机向设备控制器发出读指令后进入测试等待状态。在等待时间内,主机重复查询外设的准备状态直至外设准备就绪。外设就绪,数据传送开始,主机从设备控制器读取一个字,再向内存写一个字。如果传送还未结束,再次向设备控制器发出读指令,直到全部数据传输完成再返回现行程序执行。用户进程向外设写数据与读数据基本类似。,2018/9/19,12,6.2 I/O控制的方式,1、程序直接查询控制方式,程序查询方式中,一旦主机
7、启动外设,便不断查询外设的准备情况,终止了原程序的执行,浪费了宝贵的主机时间;另一方面,外设准备就绪后,主机参与数据的传送工作,此时主机也不能执行原程序。可见这种方式中,主机和外设串行工作,使主机不能充分发挥效率。,2018/9/19,13,6.2 I/O控制的方式,2、中断方式,仅当操作正常或异常结束时才中断CPU。实现了一定程度的并行操作,这叫中断方式。在主机启动外设后,不必查询外设是否就绪,而是继续执行现行程序,对设备是否就绪不加过问。此时主机和外设并行操作。外设准备完毕,将数据传送至设备控制器的寄存器后,外设向主机发出中断请求,主机从设备控制中将数据读入内存指定单元。,2018/9/1
8、9,14,6.2 I/O控制的方式,2、中断方式,在中断方式中,外设输入每个数据的过程中,无需主机的干预,因而可使得主机与外设并行工作。仅当输完一个数据时,才需要主机花费时间中断处理。中断方式在一定程度上提高了主机和外设的并行程度,提高计算机系统资源的利用率。,2018/9/19,15,6.2 I/O控制的方式,3、DMA(直接内存存取)方式 1)DMA方式的引入,中断方式中数据传输是以字节为单位进行的。如果采用中断方式进行数据传输,传输一个1KB的数据块时,系统需要中断1024次,显然这也要花费主机的时间。如果外设能直接与内存交换数据而不占用主机,那么,主机资源的利用率还可提高。这就出现了D
9、MA方式。在DMA方式中,内存和外设之间有一条数据通路,在内存和外设之间成块传送数据过程中,由DMA控制器取代主机来控制数据传输,直接执行到数传输完成。,2018/9/19,16,6.2 I/O控制的方式,3、DMA(直接内存存取)方式 1)DMA方式的引入,DMA方式的特点是 数据传输的基本单位是数据块,即在主机与外设之间传 送一个数据块; 传送的数据直接从外设到内存,或者相反; 仅在传送一个数据块或多个数据块的开始和结束时才需要主机的干预。,2018/9/19,17,6.2 I/O控制的方式,3、DMA(直接内存存取)方式 2)DMA控制器的组成,DMA控制器由三个部分组成:主机与DMA的
10、接口、DMA控制器与设备的接口和I/O逻辑。,2018/9/19,18,6.2 I/O控制的方式,3、DMA(直接内存存取)方式 2)DMA控制器的组成,为实现CPU与控制器之间成块的进行数据传输,必须在DMA控制器中设置如下4类寄存器。 命令/状态寄存器(CR)。用于接收从CPU发出来的I/O命令或有关控制信息,或设备的状态。 内存地址寄存器(MAR)。在输入时,存放把数据从设备传送到内存的起始目标地址;在输出时,存放由内存到设备的内存源地址 数据寄存器(DR)。用于暂存从设备到内存,或从内存到设备的数据。 数据计数器(DC)。存放本次CPU要读写的字节数。,2018/9/19,19,6.2
11、 I/O控制的方式,3、DMA(直接内存存取)方式 3)DMA的工作过程, CPU要从磁盘读数据时,便向磁盘发一条指令。该命令被传送到CR中。同时,将本次数据存放在内存中的起始地址送给MAR,将要读取数据的字节数传送给DC,还要将磁盘中的源地址送给DMA中的I/O逻辑。 启动DMA控制器进行数据传送,CPU可以处理其他任务。此后,整个传输过程中均由DMA进行控制。每传送一个字,DC计数器减1,直至DC计数器为0,整个传输过程结束。,2018/9/19,20,6.2 I/O控制的方式,4、通道方式 1)通道的概念,通道是独立于CPU的专门实现输入输出工作的处理机。通道支持控制设备和内存之间进行数
12、据传送,把CPU从琐碎的输入输出操作中解放出来。此外,外围设备和CPU能实现并行操作;通道和通道之间能实现并行操作;各通道上的外围设备也能实现并行操作,以达到提高整个系统效率这一根本目的。,2018/9/19,21,6.2 I/O控制的方式,4、通道方式 2)通道与一般处理机的区别,通道是一种特殊的处理机 通道指令单一。通道硬件比较简单,其所能执行的 指令主要是与输入输出操作有关的指令。 通道没有自己的内存。通道所执行的通道程序是放在计算机内存中的,也就是说通道与CPU共享系统的内存。,2018/9/19,22,6.2 I/O控制的方式,4、通道方式 3)通道的分类 (1)字节多路通道 (2)
13、数组选择通道 (3)数组多路通道,2018/9/19,23,第六章 设备管理,6.1 设备管理的概念 6.2 I/O控制的方式 6.3 缓冲技术 6.4 驱动调度技术 6.5 设备分配 6.6 虚拟设备 5.7 Linux设备管理,2018/9/19,24,第六章 设备管理,6.1 设备管理的概念 6.2 I/O控制的方式 6.3 缓冲技术 6.4 驱动调度技术 6.5 设备分配 6.6 虚拟设备 5.7 Linux设备管理,2018/9/19,25,6.3 缓冲技术,1、为什么要采用缓冲技术,为了改善CPU与外设之间速度不匹配的矛盾,减少I/O对CPU的中断次数,提高CPU和I/O设备的并行
14、性,在操作系统中普遍采用了缓冲技术。缓冲技术的基本思想是:当一个进程输出数据时,先向系统申请一块内存作为输出缓冲区;然后,将输出数据高速输出到缓冲区;不断把数据填到缓冲区,直到缓冲区被装满为止;此后,进程可以继续它的计算,同时,系统将缓冲区内容写到I/O设备上。当一个进程执行读操作输入数据时,过程与此类似。,2018/9/19,26,6.3 缓冲技术,2、单缓冲,单缓冲是在设备和CPU之间设置一个缓冲器。对于块设备而言,假定从磁盘把一块数据输入到缓冲的时间为T,操作系统将该缓冲区中的数据传送到用户区的时间为M,CPU对这一块数据计算的时间为C。如果不采用缓冲,数据直接从磁盘到用户区,每块数据的
15、处理时间为T+C。若采用单缓冲,每块数据的处理时间为max(C, T)+M。通常来说M要远远小于C或者T,因此采用缓冲技术,输入的效率提高了很多。,2018/9/19,27,6.3 缓冲技术,3、双缓冲,为加快输入输出速度和提高设备利用率,引入了双缓冲。首先将数据送入缓冲区1,装满后使转向缓冲区2。此时操作系统可从缓冲区1中移出数据送至用户进程区,由CPU对数据进行计算。两个缓冲区交替使用,使得CPU和I/O设备、设备和设备的并行性进一步提高。在双缓冲时,系统处理一块数据的时间可粗略地认为是max(C,T),2018/9/19,28,6.3 缓冲技术,4、循环缓冲 1)为什么要用循环缓冲?,当
16、输入与输出的速度基本相匹配时,双缓冲能获得较好的效果,使输入与输出基本上能并行操作。若两者的速度相差甚远,双缓冲的作用则不够理想,不过可以增加缓冲区数量,从而改善这些问题。因此,又引入了多缓冲机制。并将多缓冲组织成循环缓冲形式。,2018/9/19,29,6.3 缓冲技术,4、循环缓冲 2)循环缓冲的组成, 多个缓冲区。在循环缓冲中包含了多个缓冲区,每个缓冲区的大小相同。缓冲区可分为三种类型:空缓冲区R;已装满数据的缓冲区G;计算进程正在使用的缓冲区C。 多个指针。对用于输入的多缓冲,可设置这样三个指针。Nextg指示计算进程下一个可用的缓冲区G;Nexti指示输入进程下次可用的空缓冲区R;Current指示计算进程正在使用的缓冲区。,2018/9/19,