【操作系统总结】设备管理
管理所有外围设备,包括完成用户IO请求,为用户进程分配IO设备,提高IO设备利用率,提高IO速度,方便IO使用
1. 什么是外部设备:
有一类设备是作为计算机系统与外界交互的工具使用的,它负责计算机与外部的输入输出(I/O工作)。我们称这类设备为外部设备,简称外设。
2. 设备管理的目标:提高设备的利用率
3. 什么是I/O系统:计算机中负责管理I/O的机构(是硬件和软件的组合)称为I/O系统
4. I/O系统的结构:???
1)单总线结构
2)多总线结构
3)具有通道系统的I/O系统
5. 设备控制器:设备控制器处于CPU与I/O之间,接收来自CPU的命令,并控制I/O设备工作。设备控制器应具备以下功能:①接收和识别来自CPU的各种指令;②实现CPU与设备控制器、设备控制器与设备之间的数据交换;③记录设备的状态供CPU查询;④识别所控制的每个设备的地址。
大多数设备控制器由设备控制器与处理器的接口、设备控制器与设备的接口及I/O逻辑3部分组成,如下图所示:
6. I/O系统的控制方式:
(1)程序控制I/O(轮询):
由于CPU速度远远快于I/O设备,因此CPU需要不断地测试I/O设备,这种控制方式又称为轮询或忙等。以数据输入为例,当用户进程需要输入数据时,由CPU向设备控制器发出一条I/O指令启动设备进行输入。当设备输入数据期间,处理器通过循环执行测试指令不断地检测I/O设备状态寄存器的值,当状态寄存器的值显示设备输入完成时,处理器将寄存器中的数据读取出来并送入内存指定单元,然后再启动设备输出并等待输出操作完成。
- 优点:简单
- 缺点:CPU利用率低。CPU与外设串行工作,CPU必须等待外设处理完数据才能继续执行,在此期间CPU一直查询外设是否准备好,直到外设准备好。由于CPU速度远远快于I/O设备,致使绝大部分时间都在测试I/O设备是否已经完成数据传输,从而造成CPU的极大浪费。
(2)中断驱动I/O(中断):
以数据输入为例,当用户进程需要输入数据时,由处理器向设备控制器发出一条I/O指令启动设备进行输入。在输入数据的同时,CPU可以做其他工作。当输入完成时,设备管理器向CPU发出一个中断信号,CPU接收到中断信号以后,转去执行设备中断处理程序。设备中断处理程序将输入数据寄存器中的数据传送到内存的指定单元中,供要求输入的进程使用,然后再启动设备去读下一个数据。
- 优点:有了中断硬件的支持后,CPU与I/O设备之间可以并行工作,CPU只需要收到中断后处理即可,大大提高了CPU利用率。
- 缺点:数据仍然需要通过CPU进行传输,由于CPU每次处理的数据量较小,因此这种方式只适合数据传输率低的设备。
I/O完成时发出的中断处理程序的处理过程是什么?
- 1、唤醒被阻塞的进程;
- 2、保护被中断的进程的CPU环境;
- 3、转入设备处理程序;
- 4、中断处理,执行中断处理程序;
- 5、恢复被中断进程的现场。
(3)直接存储访问(DMA)
- DMA控制方式的思想是在外设和内存之间开辟直接的数据交换通路。在DMA控制方式中,设备控制器具有更强的功能,在其控制下,设备和内存之间可以成批地进行数据交换,而不用CPU干预。这样既减轻了CPU的负担,也是I/O数据传输速度大大提高。这种方式一般用于块设备的数据传输。
- 以数据输入为例,当用户进程需要输入数据时,CPU将准备存放数据的内存起始地址以及要传送的字节数分别送入DMA控制器中的内存地址寄存器和传送字节计数器中,并启动设备开始进行输入。在输入数据的同时,CPU可以去做其他事情,输入设备不断地挪用CPU工作周期,将数据寄存器中的数据源源不断地写入内存,直到要求传送的数据全部传输完毕。DMA控制器在传输完毕时向CPU发送一个中断信号,CPU收到中断信号后转中断处理程序,中断结束后返回被中断程序。
- DMA控制方式的特点为:数据传输的基本单位是数据块,而且数据是单向传输,从设备到内存或者相反。优点:设备和CPU可以并行工作,同时设备与内存的数据交换速度更快,并且不需要CPU干预。
- 优点:解决了I/O操作的独立性和各部件工作的并行性。不仅能实现CPU与通道的并行操作,而且通道与通道之间也能实现并行操作,各个通道上的外设也能实现并行操作,从而提高了整个系统效率。
- 缺点:需要更多硬件(通道处理器),成本较高,常用于大型数据交互的场合。
- DMA控制方式与中断控制方式的主要区别是:
- (1)中断控制方式在每个数据传送完毕后中断CPU,而DMA控制方式则是在所有要求传送的一批数据传送完毕后中断CPU;
- (2)中断控制方式的数据传送是在中断处理时由CPU控制完成的,而DMA控制方式则是在DMA控制器的控制下完成的。
(4)通道控制方式I/O
- 与DMA类似,也是一种以内存为中心,实现设备与内存直接数据交换的控制方式。与DMA相比,通道需要的CPU干预更少,即把对一个数据块的读写为单位的干预减少为对一组数据块读写及有关的控制和管理为单位的干预,而且可以做到一个通道控制多台设备。
- 通道本质上是一个简单的处理器,它独立于CPU,有运算和逻辑,有自己的指令系统,也在程序控制下工作,专门负责输入、输出控制,具有执行I/O指令的能力,并通过执行通道I/O程序来控制I/O操作。通道的指令系统比较简单,一般只有数据传送指令、设备控制指令等。
- 在通道控制方式中,CPU只需要发出启动指令,指出要求通道执行的操作和使用的I/O设备,该指令就可以启动通道并使该通道从内存中调出相应的通道程序执行。以数据输入为例,当用户进程需要输入数据时,CPU发出启动指令指明要执行的I/O操作、所使用的设备和通道。当对应通道接收到CPU发来的启动指令后,把存放在内存中的通道程序读出,并执行通道程序,控制设备将数据传送到内存中指定的区域。在设备进行输入的同时,CPU可以去做其他事情。当数据传送结束后时,设备控制器向CPU发送一个中断请求,CPU收到中断信号后转中断处理程序,中断结束后返回被中断程序。
- 通道控制方式与DMA控制方式的区别:首先,DMA控制方式中需要CPU来控制所传输数据块的大小,传输的内存,而通道控制方式中这些信息都是由通道来控制管理的。其次,一个DMA控制器对应一台设备与内存传递数据,而一个通道可以控制多台设备与内存的数据交换。
- I/O通道与一般处理器的区别:I/O通道的指令类型单一,其所能执行的命令主要局限于与I/O操作有关的指令;通道没有自己的内存,通道所执行的通道程序放在主机的内存中,也就是说通道是与CPU共享内存的。
- 通道分为:
- 字节多路通道:可以获得较好的通道利用率,适合低速设备,传输单位为字节。
- 数组选择通道:可以获得较好的数据传输率,适合高速设备,一次性传输一组数据。
- 数组多路通道:既具有很高的数据传输率,有能获得令人满意的通道利用率。
7. 缓冲技术:缓冲区一种交换数据的区域。缓冲区的引入是为了缓和CPU与设备速度不匹配的矛盾,提高了设备和CPU的并行操作程度,提高了系统吞吐量和设备利用率。
8.缓冲分类:
- 单缓冲:当用户进程发出一个I/O请求时,操作系统便在内存中为它分配一个缓冲区。设备与处理器对缓冲区的操作是串行的。
- 双缓冲:可以提高处理器与设备的并行操作程度。当用户进程发出一个I/O请求时,操作系统便在内存中为它分配两个个缓冲区。数据先放入第一个缓冲区进行处理,再来的数据放入第二个缓冲区,当第一个缓冲区中的数据处理完后,若第二个缓冲区已经装满,则处理器又可以处理第二个缓冲区的数据,而输入设备又可以装填第一个缓冲区。
- 循环缓冲:为了解决设备输入/输出速度与处理器处理数据速度不匹配的情况。循环缓冲包含多个大小相等的缓冲区,每个缓冲区中有一个链接指针指向下一个缓冲区,最后一个缓冲区的指针指向第一个缓冲区,这样多个缓冲区构成了一个环形。循环缓冲用于输入输出时,还需要有两个指针in和out。对于输入而言,首先要从设备接收数据到缓冲区中,in指针指向可以输入数据的第一个空缓冲区;当用户进程需要数据时,从循环缓冲中取出一个装满数据的缓冲区,提取数据,out指针指向可以提取数据的第一个满缓冲区,显然,对输出而言正好相反,进程将处理过的需要输出的数据送到空缓冲区中,而当设备空闲时,从满缓冲区中取出数据由设备输出。
9. 高速缓存与缓存区的区别:
- 两者存放的数据不同。高速缓存存放的是低速设备上的某些数据的备份;而缓冲区中放的则是低速设备传递给高速设备的数据,在低速设备中不一定有备份。
- 两者的目的不同。引入高速缓存的目的是为了存放低速设备上经常要被访问到的数据的备份;而缓冲区是为了缓和高速设备和低速设备间速度不匹配的矛盾。高速设备每次都会通过缓冲区与低速设备通信,不会直接访问低速设备。
10. SPOOLing技术(假脱机技术)
-
通过共享设备来虚拟独占设备,将独占设备改造成共享设备,从而提高了设备利用率和系统的效率,该技术为假脱机(SPOOLing)技术。是低速输入输出设备与主机交换的一种技术。
-
其核心思想是以联机的方式得到脱机的效果,低速设备经通道和设在主机内存的缓冲存储器与高速设备相连,该高速设备通常是辅存。为了存放从低速设备上输入的信息,在内存中形成缓冲区,在高速设备上形成输入输出井,传递时信息从低速设备传入缓冲区,再传到高速设备的输入井,再从高速设备的输出井传到缓冲区,再传到低速设备。
- SPOOLing系统的组成
- 输入输出井;
- 输入缓冲区和输出缓冲区;
- 输入进程和输出进程;
- SPOOLing实例:将一台独享打印机改造成可供多个用户共享打印是SPOOLing技术的典型应用,具体做法为:系统对于用户的打印输出,并不真正把打印机分配给该用户进程,而是先在输出井中申请一个空闲盘块区,并将要打印的数据送入其中;然后为用户申请并填写请求打印表,将该表挂到请求打印队列上。若打印机空闲,输出程序从请求打印队首取表,将要打印的数据从输出井传送到内存缓冲区,再进行打印,直到打印队列为空。
- SPOOLing技术特点
- 提高了I/O速度;
- 设备并没有分配给任何进程;
- 实现了虚拟设备功能;
- SPOOLing除了是一种速度匹配技术外,也是一种虚拟设备技术。
总结
以上是生活随笔为你收集整理的【操作系统总结】设备管理的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Pytorch详细教程——10.Flat
- 下一篇: 人车识别系统 YOLOV3 人车识别测试