操作系统-设备管理
一、中断的基本概念
中断是指在计算机执行程序的过程中,出现了某种紧急或异常的事件(中断请求),CPU需要暂停正在执行的程序,转去处理该事件(执行中断服务程序),并在处理完毕后返回断点处继续执行被暂停的程序。这一过程涉及中断请求、中断响应、保护断点、处理中断和中断返回等步骤。
二、中断处理方式的原理
中断处理方式的原理是通过一个中断向量表来确定中断源,并执行相应的中断处理程序。当某个硬件组件(如外设、时钟、网络适配器等)需要CPU处理时,它会发出一个中断请求。中断控制器负责收集和管理这些中断信号,并向CPU发送中断请求。CPU在接收到中断请求后,会检查中断向量表,找到与中断请求相对应的中断处理程序,并执行它。
三、中断处理方式的步骤
中断请求:中断源向CPU发出请求中断的要求。中断请求可由硬件中断源(如外设、数据通道、时钟电路和故障源等)发出,也可由软件中断源(如调试程序设置的中断、中断指令、执行过程出错等)发出。
中断响应:CPU在接收到中断请求后,如果当前内部的中断允许触发器的状态为1(即允许中断),则会在现行指令执行完后,发出中断响应信号(如INTA信号),并准备执行中断处理程序。
保护断点:CPU在响应中断后,需要对当前正在执行的程序的断点信息进行保护。这通常通过将通用寄存器的内容入栈保存来实现,以便在中断结束后能够恢复到该断点处继续执行。
处理中断:CPU执行中断服务程序,对获得响应的中断源进行服务。中断服务程序是一段特定的代码,它处理特定类型的中断。中断服务程序可能会采取一些操作来处理中断事件,如读写I/O设备、更新内存中的数据等。
中断返回:中断服务程序执行完毕后,CPU会执行中断返回指令,恢复之前被保护的断点信息(即将之前入栈的寄存器内容出栈恢复),并返回到原先被中断的程序继续执行。
四、中断处理方式的优点
提高系统响应速度:中断处理方式能够迅速响应外部事件和内部异常,提高系统的实时性和响应速度。
实现CPU与I/O设备的并行工作:在中断发生前和中断处理过程中,CPU可以执行其他任务,实现了CPU与I/O设备的并行工作,提高了系统的整体性能。
增强系统可靠性:中断处理方式能够处理各种异常事件和错误情况,避免了系统崩溃或数据丢失,增强了系统的可靠性。
五、中断处理方式的应用场景
中断处理方式广泛应用于各种需要高效处理异步事件和请求的场合,如实时系统、多任务系统、外设设备的输入输出以及异常处理等。在这些应用场景中,中断处理方式能够显著提高系统的响应速度和整体性能。
DMA(Direct Memory Access,直接内存访问)
是一种允许硬件子系统(如外设或专用硬件如DMA控制器DMAC)直接与系统内存进行数据传输的技术,无需CPU的直接干预。这种技术主要用于高速数据传输的场景中,可以显著提高数据处理的效率和速度,同时减少CPU的负载。
DMA的工作原理
初始化阶段:当系统启动时,DMA控制器会初始化并配置好相关寄存器。这些寄存器用于定义DMA传输的数据量、传输方向(如外设到内存、内存到外设、内存到内存、外设到外设等)、传输速率等参数。
请求传输:外设准备好数据后,会向DMA控制器发送一个传输请求。
CPU响应请求:CPU收到DMA请求信号后,会让出总线控制权,允许DMA控制器接管总线控制权。
数据传输:DMA控制器从外设读取数据,并将其存储在内部缓冲区中,然后传输到系统内存中的目标地址。
传输完成:数据传输完成后,DMA控制器会释放总线控制权,并通知CPU。
DMA的特点
高速数据传输:由于DMA传输过程中无需CPU的干预,因此可以实现高速的数据传输,特别适用于需要处理大量数据的场景。
减轻CPU负担:DMA技术使得CPU可以专注于执行其他任务,如计算和控制等,从而减轻了CPU的负担。
提高系统效率:通过DMA技术,系统可以更加高效地利用总线带宽和内存资源,提高了系统的整体效率。
DMA的应用场景
磁盘I/O:当从硬盘读取或写入大量数据时,使用DMA可以直接在硬盘和内存之间传输数据,避免了CPU介入每个数据包的传输过程,提高了数据传输的速度和效率。
网络通信:在网络数据接收和发送过程中,使用DMA可以直接在网络接口卡(NIC)和系统内存之间传输数据包,降低CPU处理网络包的负担,提高网络通信的速度。
音视频处理:音视应用,如多媒体播放器和视频编辑软件,需要高速处理大量的音视频数据。使用DMA可以在音视频硬件(如声卡或图形处理单元)和内存之间直接传输数据,优化性能。
内存拷贝:在系统的不同部分需要移动大块数据时(如内存到内存的拷贝操作),DMA可以实现高速的数据传输,而不占用CPU资源。
中断处理方式和DMA方式的区别
CPU参与度:中断处理方式需要CPU的全程参与,包括中断响应、中断处理和中断返回等步骤;而DMA方式则完全由硬件执行,CPU不参与数据传送过程。
程序切换:中断处理方式在中断发生时需要进行程序切换,保护和恢复现场;而DMA方式则无需进行程序切换。
数据传送速度:由于CPU不参与数据传送,DMA方式能够实现高速的数据传送;而中断处理方式则可能因CPU的干预而降低数据传送速度。
功能范围:中断处理方式具有对异常事件的处理能力,能够响应各种中断请求;而DMA方式则主要局限于完成传送信息块的I/O操作。
两者共同点
1. 并行工作能力
中断处理方式:在中断发生前,CPU可以执行其他任务;中断发生后,CPU暂停当前任务去处理中断,但处理完中断后,CPU可以立即返回到被中断的任务继续执行。这种机制允许CPU和I/O设备在一定程度上并行工作。
DMA方式:DMA控制器在数据传输过程中,不需要CPU的参与,CPU可以继续执行其他任务。当DMA传输完成后,DMA控制器会通过中断方式通知CPU。因此,DMA方式也实现了CPU和I/O设备的并行工作。
2. 响应随机请求
中断处理方式:中断系统能够响应各种外部和内部的中断请求,包括定时器中断、外部设备中断等。这些中断请求往往是随机的,中断处理方式能够灵活地处理这些请求。
DMA方式:虽然DMA方式主要用于高速、大批量的数据传输,但在某些情况下,它也可以响应来自I/O设备的随机数据请求。例如,当I/O设备需要传输少量数据时,可以通过中断方式请求DMA控制器进行传输。
3. 系统集成度
中断处理方式和DMA方式都是现代计算机系统中不可或缺的部分。它们被集成在计算机的硬件和软件中,共同协作以实现高效的I/O操作。中断处理方式和DMA方式的集成度越高,计算机系统的整体性能就越好。
4. 可靠性
中断处理方式通过中断处理程序来处理各种异常事件和错误情况,从而提高了系统的可靠性。当中断发生时,CPU可以立即响应并处理异常事件,避免系统崩溃或数据丢失。
DMA方式通过硬件实现数据传输,减少了CPU的干预和软件的复杂性,从而也提高了系统的可靠性。DMA控制器在数据传输过程中具有自我检测和错误纠正的能力,能够确保数据的完整性和准确性。
中断I/O方式适用场景
中断I/O方式主要适用于以下场景:
低速设备I/O:由于中断I/O方式需要CPU的参与来处理中断请求,因此它更适合于低速设备,如键盘、鼠标等。这些设备的数据传输速度相对较慢,中断I/O方式能够确保数据的正确传输和处理。
需要CPU干预的场合:在某些情况下,CPU需要对外设的操作进行精确控制或干预。例如,在读取外设数据时,CPU可能需要检查数据的正确性或进行必要的处理。中断I/O方式允许CPU在需要时介入外设的操作。
实现设备与设备间的并行操作:中断I/O方式可以实现CPU与设备间的并行操作,以及设备与设备间的并行操作。这有助于提高系统的整体性能和效率。
DMA方式适用场景
DMA方式则主要适用于以下场景:
高速外设I/O:DMA方式适用于高速外设,如磁盘驱动器、网络接口卡等。这些设备的数据传输速度较快,使用DMA方式可以减少CPU的干预,提高数据传输的效率和速度。
大量数据传输:当需要传输大量数据时,如从磁盘读取大量文件或在网络中传输大数据包时,DMA方式可以显著提高数据传输的速度和效率。由于DMA方式在数据传输过程中不需要CPU的干预,因此可以充分利用系统总线的带宽。
减轻CPU负担:DMA方式通过硬件实现数据传输,减少了CPU的干预和软件的复杂性。这有助于减轻CPU的负担,使其能够专注于执行其他任务,如计算和控制等。
----- 虽然DMA方式比起中断方式来已经显著地减少了CPU的干预,即已由以字(节)为单位的干预减少到以数据块为单位的干预。但CPU每发出一条I/O指令,也只能去读/写一个连续的数据块。而当我们需要一次去读多个数据块且将它们分别传送到不同的内存区域,或者相反时,则需由CPU分别发出多条I/O指令及进行多次中断处理才能完成。
1、通道控制方式的引入
---- 通道控制方式与DMA控制方式类似,也是一种以内存为中心,实现设备与内存直接交换数据的控制方式。
---- 与DMA控制方式相比,通道方式所需要的CPU干预更少,而且可以做到一个通道控制多台设备,从而进一步减轻了CPU负担。
---- 通道本质上是一个简单的处理器,专门负责输入、输出控制,具有执行I/O指令的能力,并通过执行通道I/O程序来控制I/O操作。
---- 通道的指令系统比较简单,一般只有数据传送指令、设备控制指令等。
---- I/O通道控制方式是对DMA控制方式的发展,它进一步使CPU参与到数据传输的控制减少,即把对一个数据块的读/写为单位的干预,减少为对一组数据块的读/写及有关的控制和管理为单位的干预。同时,又可实现CPU、通道和I/O设备的并行操作,从而更有效地提高整个系统的资源利用率。在通道控制方式中,CPU只需发出启动指令,指出要求通道执行的操作和使用的I/O设备,该指令就可以启动通道并使该通道从内存中调出相应的通道程序执行。
---- 以数据输入为例:当用户进程需要数据时,CPU发出启动指令指明要执行的I/O操作、所使用的设备和通道。当对应通道接收到CPU发来的启动指令后,把存放在内存中的通道程序读出,并执行通道程序,控制设备将数据传送到内存中指定的区域。在设备进行输入的同时,CPU可以去做其他工作。当数据传送结束时,设备控制器向CPU发送一个中断请求。CPU收到中断请求后转中断处理程序执行,中断结束后返回被中断程序。
优点:通道控制方式解决了I/O操作的独立性和各部件工作的并行性。把CPU从繁琐的输入/输出操作中解放出来。采用通道技术后,不仅能实现CPU和通道的并行操作,而且通道与通道之间也能实现并行操作,各通道上的外设也能实现并行操作,从而可提高整个系统的效率。
缺点:由于需要更多硬件(通道处理器),因此其成本较高。通道控制方式通常应用于大型数据交互的场合。
2、通道程序
---- 通道是通过执行通道程序,并与设备控制器共同实现对I/O设备的控制的。通道程序是由一系列通道指令所构成的。通道指令和一般的机器
指令不同,在它的每条指令中都包含下列诸信息:
-- 1)操作码。操作码规定了指令所执行的操作,如读、写、控制等操作。
-- 2)内存地址。内存地址标明字符送入内存(读操作)和从内存取出(写操作)时的内存首址。
-- 3)计数。该信息表示本条指令所要读/写数据的字节数。
-- 4)通道程序结束位P。该位用于表示通道程序是否结束。P=1表示本条指令是通道程序的最后一条指令。
-- 5)记录结束标志R。R=0表示本通道指令与下一条指令所处理的数据是同属于一个记录;R=1表示这是处理某记录的最后一条指令。
===============================================
----- 通道控制方式与DMA控制方式的区别:
1)DMA控制方式中需要CPU来控制所传输数据块的大小,传输的内存地址;通道控制方式中这些信息都是由通道来控制管理的。
2)一个DMA控制器对应一台设备与内存传递数据,而一个通道可以控制多台设备与内存的数据交换。
----- I/O通道与一般处理器的区别:I/O通道的指令类型单一,其所能执行的命令主要局限于与I/O操作有关的指令;通道没有自己的内存,通道所执行的通道程序放在主机的内存中,也就是说通道是与CPU共享内存的。
原文地址:https://blog.csdn.net/wlq_567/article/details/143638965
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!