操作系统之设备管理

输入输出系统(I/O系统)

在操作系统中,I/O(输入输出)系统的不同层次包括了用户层I/O软件、设备无关软件、设备驱动程序、中断处理程序和硬件层。

I/O系统主要的任务是: 1)按照用户的具体请求,启动设备,通过不同的设备驱动程序,进行实际的I/O操作;I/O操作完成之后,将结果通知用户进程,从而实现真正的I/O操作。 2)提高I/O设备速率、改善I/O设备的利用率。 3)为更高层进程方便使用设备,提供手段。

包含以下五个部分

用户层I/O软件

用户层I/O软件位于操作系统的用户空间,主要负责提供与硬件设备交互的接口给用户应用程序。

假脱机技术(SPOOLing)-CSDN博客

设备无关软件

设备无关软件为上层应用和系统提供了统一的、抽象的接口,使得用户不需要关心底层硬件的差异。它通过抽象化硬件设备的差异,使得应用程序和操作系统可以通过统一的接口与不同类型的硬件设备交互。

设备驱动程序

设备驱动程序是操作系统内核的一部分,又称为设备处理程序,简单点来说设备驱动程序可以将设备的硬件特性抽象为操作系统能够理解的命令,并将来自应用程序的高层请求转化为硬件能够执行的低层命令。

主要有以下功能:

接收由与设备无关的软件发来的命令和参数
检查用户I/O请求的合法性
发出I/O命令
及时响应由设备控制器发来的中断请求

中断处理程序

用于响应硬件设备发出的中断信号。当设备需要操作系统的关注时(如I/O操作完成、数据可用、设备故障等),它会触发中断,中断处理程序会被执行。

中断处理的一般步骤:

1中断请求

硬件设备通过发送中断信号通知CPU,表示设备需要服务。设备通过中断控制器向CPU发出中断信号,标明哪个设备发出了中断请求。

2保存现场

当CPU接收到中断信号时,当前执行的程序(或进程)需要被暂时挂起。CPU需要保存当前执行的状态(称为“上下文”)。操作系统会将当前进程的上下文信息保存到进程的内存空间。这一步是为了在处理中断完成后能恢复进程的执行。

3处理中断

中断控制器负责确定哪一个设备发出的中断请求。不同的中断有不同的优先级,因此操作系统需要通过中断向量表来确定相应的中断处理程序并转入。中断处理程序(也叫中断服务例程,ISR)会被调用。该例程负责处理具体的中断。

4中断服务程序返回

当中断处理完成后,操作系统会恢复被中断的进程的上下文。即恢复之前保存的寄存器值和程序计数器,确保进程能够从中断发生前的地方继续执行。如果中断引起了进程状态的变化,操作系统会更新相应的进程状态并可能进行调度。

5调度

中断处理程序可能会导致进程状态的变化(例如,I/O操作完成后,进程从等待状态变为就绪状态)。操作系统需要通过调度器决定是否需要切换进程。如果中断处理导致的事件使得某个进程的优先级提高,操作系统可能会抢占当前执行的进程,调度更高优先级的进程执行。

6恢复用户程序执行

一旦中断处理完成,操作系统将恢复用户程序的执行,继续从中断发生前的位置继续运行。恢复现场确保了程序的连贯性,不会因为中断而出现数据丢失或执行错误。

I/O控制方式

设备管理的主要任务之一是控制设备和内存或处理机之间的数据传送。

程序直接控制

程序直接控制是最简单的I/O控制方式。CPU直接控制设备,逐字节地与设备交换数据。

优点:实现简单,容易理解和实现。

缺点:效率低,CPU需要直接干预每次I/O操作。因为CPU必须执行I/O操作的每个步骤,造成资源浪费,不能做其他任务。

中断控制

中断控制是程序直接控制的改进版本。在此方式下,设备不再通过轮询等待CPU检查,而是通过中断通知CPU,告诉它设备已经准备好进行数据传输。

优点:CPU不需要一直等待I/O操作完成,可以处理其他任务,提高了CPU的效率。

缺点:需要中断处理机制,如果中断频繁,会影响系统的响应时间和性能。

DMA控制

DMA控制是更高级的I/O控制方式,它允许设备直接与内存交互,而无需CPU参与数据传输过程。DMA可以显著提高I/O性能,减少CPU的负担。

优点:非常高效,CPU不需要参与I/O操作,适合处理大量数据传输。它能显著减轻CPU的负担,提高系统的整体性能。

缺点:需要支持DMA的硬件和控制器,且实现相对复杂。

I/O通道控制

I/O通道控制是一种更高级的I/O控制机制,常用于大型计算机系统(如主机和大型服务器)。I/O通道是一种专用的硬件模块,它在CPU和外设之间提供独立的通信路径,专门负责处理所有I/O操作。

优点:高效且专业,CPU几乎不参与I/O操作,能处理大量并行I/O请求。适合处理高吞吐量、大规模的I/O操作。

缺点:需要专门的硬件(I/O通道和控制器),并且实现复杂。

硬件设备

硬件设备就是指计算机系统中的物理组成,包括显示器、键盘、主板、网卡和接口线路等,这些部件组合起来直接执行计算、存储和I/O操作。

我们可以认为硬件分为两大部分:I/O设备和设备控制器。

I/O设备就是指执行具体I/O操作的物理设备和它的相关I/O电路。而设备控制器就是负责控制I/O设备的一个实体,因为计算机的CPU无法直接控制I/O设备的机械部件,所以需要设备控制器这个中介,CPU对其发送I/O命令,由设备控制器控制I/O设备工作。

用户空间,主要负责提供与硬件设备交互的接口给用户应用程序。

你可能感兴趣的:(linux,数据结构)