我们这里讨论在中断信号已经被中断系统的硬件中断装置接收和响应之后,对应的软件中断处理程序进行中断处理的具体过程。
在处理器的控制权转移到中断处理程序之后,中断处理程序开始工作,其中包括检查I/O相关的状态信息,操纵I/0设备或者在设备和内存之间传送数据等。具体的中断处理程序的内容,完全是依据中断请求的类别和要求的不同,而分别设计的。
在中断处理程序结束工作之后,处理器会检测到一条中断返回指令。在执行中断返回指令时,处理器会把原先被中断的程序的上下文环境从系统堆栈中恢复。处理器状态也从管态恢复成被中断时的目态。整个中断处理结束。
处理器开始一个新的指令周期,继续执行原来被中断的程序。
上述整个中断信号的接收、响应和处理过程,可以简要地归纳为:接收和响应中断,保护中断断点现场,分析中断向量,调用中断处理程序,中断处理结束恢复现场,原有程序继续执行。
几种典型中断的处理
这里介绍几种计算机系统中比较典型的中断处理,包括L0中断、时钟中断、硬件故障中断、程序性中断和系统服务请求(自愿性中断)等。
I/O中断
I/O中断一般由O设备的控制器或者通道发出。I/O中断通常可分成两大类:I/O操作正常 ...
中断系统是现代计算机系统的核心机制之一,它不是单纯的硬件或者软件的概念,而是硬件和软件相互配合、相互渗透而使得计算机系统得以充分发挥能力的计算模式。
中断的发生会激活很多事件,这包括硬件和软件的方面的事件,所以对于整个中断事件的接收、响应和处理需要有计算机的硬件和软件两方面的配合,共同完成。
可以把中断系统分为两大组成部分:中断系统的硬件中断装置和软件中断处理程序。硬件中断装置负责捕获中断源发出的中断请求,并以一定的方式响应中断源,然后将处理器的控制权移交给特定的中断处理程序。中断处理程序则针对对中断事件的性质而执行相应的系列操作。
中断请求的接收
中断系统如何接收中断源的中断请求,这往往因机器而异。不过从原理上讲,它们是通过在计算机硬件的中断逻辑线路和中断寄存器实现的。
中断逻辑线路用于接收中断信号,并把收到的中断信号寄存在线路中的硬件触发器中。在中断逻辑线路中有若干个专门接受中断信号的触发器,每个触发器称为一个中断位。通常规定,一个触发器的值为1时,表示该触发器收到中断信号,为0时表示无中断信号。这些触发器的全体称为中断寄存器,所以中断寄存器是由若千个中断位组成的。
在有的计算机中 ...
中断异常其实是两个概念。
中断机制是操作系统中极为重要的一个部分。操作系统在管理输入输出设备时,在处理外部的各种事件时,都需要通过中断机制进行处理。所以也有人把操作系统称为是由“中断驱动”或者“(中断)事件驱动”的。
由于中断机制的实现必须依靠相关的硬件支持,所以硬件中断装置是操作系统运行环境中的一个极为重要的组成部分。中断的实现是硬件中断装置和相应的中断处理软件共同完成的。
中断与异常的概念
中断与异常
中断的概念
所谓中断是指处理器对系统中或系统外发生的异步事件的响应。异步事件是指无一定时序关系的随机发生的事件,如外部设备完成了数据传输任务,某一实时控制设备出现异常情况等。
“中断”这个名称来源于:当发生某个异步事件后,中断了处理器对当前程序的执行而转去处理该异步事件(称作执行该事件的中断处理程序)。在该异步事件处理完了之后,处理器再转回原程序的中断点继续执行。这种情况很像我们日常生活中的一些情况。例如,某人正在看书,此时电话响了(异步事件),于是用书签记住正在看的那一页(中断点),再去接电话(响应异步事件并进行处理),接完电话后再从被打断那页继续向下看(返回原程序的中断点执行)。 ...
在计算机系统中,设置时钟是十分必要的。这是由于时钟可以为计算机完成以下的必不可少的工作。
1)在多道程序运行的环境中,时钟可以为系统发现一个陷入死循环(由编程错误引起)的作业,从而防止机时的浪费。
2)在分时系统中,用时钟间隔来实现各个作业按时间片轮转运行。
3)在实时系统中,按要求的时间间隔输出正确的时间信号给相关的实时控制设备。
4)定时唤醒要求按照事先给定的时间执行的各个外部事件(如定时为各进程计算优先数,银行系统中定时运行某类结账程序等)。
5)记录用户使用各种设备时间和记录某外部事件发生的时间间隔。
6)记录用户和系统所需要的绝对时间,即年、月、日。
由上述时钟的这些作用可以看到,时钟是操作系统运行的必不可少的设施。时钟一般分成硬件时钟和软件时钟。
硬件时钟的工作原理是,在电路中的晶体振荡器,每隔一定间隔产生固定的脉冲频率,时钟电路中的时钟寄存器依据时钟电路所产生的脉冲数,对时钟寄存器进行加1的工作。
软件时钟,常用作相对时钟,它的工作原理主要是利用内存单元模拟时钟寄存器,并采用一段程序来计算相应的脉冲数,对内存时钟寄存器进行加1或减1的工作,从而模拟了时钟的功能。由于 ...
I/O结构
在一台计算机系统中,可能有大量的外部设备,为了满足对这些I/O设备的控制,提高处理器和外部设备的运行效率,出现了各种不同的I/O硬件结构。
在每台外部设备中都配有各自的I/O设备控制器,由I/O设备控制器分别控制各台外部设备的运行。在Ⅳ0设备控制器与处理器之间的0硬件结构,则有不同的设计方案。
在早期的计算机系统中,外部设备的控制器通过L0硬件结构与中央处理器连接。对设备控制器的操作是由处理器直接发出的I/O指令来实现的。在这种方法中,中央处理器定期轮询各个I/O设备控制器的状态。如果有I/O处理请求,中央处理器就处理I/O操作,直到该I/O处理完毕。这种程序直接控制I/O的主要缺陷是,处理器为了关注I/O设备控制器的状态,必须耗费大量的时间轮询各个外部设备以获得这些信息,这就严重地降低了整个系统的性能。这种早期I/O结构,由于效率太低,已经淘汰。
2.通道
通道是独立于中央处理器的,专门负责数据I/O传输工作的处理单元。从现代计算机系统的结构上看,各种外部设备均配有相应的设备控制器,这些设备控制器再通过通道连接在计算机系统的公共系统总线上。
通道对外部设备实行统一的管理, ...
在计算机系统中,中央处理器能直接访问的唯一的存储空间是内存储器。任何程序和数据必须被装入内存储器之后,中央处理器才能对它们进行操作,因而一个作业必须把它的程序和数据存储在内存储器中才能运行,而且操作系统本身也要存储在内存储器中并运行。
如果是多道程序系统,就会有若干个程序和相关的数据要存储在内存储器中。操作系统要管理、保护这些程序和数据,使它们不至于受到破坏,不会互相影响和出现冲突。内存储器以及与存储器管理有关的硬件机构是支持操作系统运行的硬件环境的一个重要方面。
此外,I/O系统和时钟部件也是计算机硬件的重要组成部分,为计算机用户交互及计算机时间系统提供基础。
存储器的类型
(1)类型
在微型计算机中使用的半导体存储器有若干种不同的类型,但基本上可划分为两类:一种是读写型的存储器,另一种是只读型的存储器。
所谓读写型的存储器,是指可以把数据存入其中任一地址单元,并且可在以后的任何时候把数据读出来,或者重新存入新的数据的一种存储器。这种类型的存储器常被称为随机访问存储器(
Random Access Memory,RAM)。RAM主要用作存储随机存取的程序的数据。
另一种是只读型的存储 ...
程序状态字(PSW)
为了解决处理器当前工作状态的问题,所有的处理器都有一些特殊寄存器,用以表明处理器当前的工作状态。比如用一个专门的寄存器来指示处理器状态,称为程序状态字(PSW);用程序计数器(PC)这个专门的寄存器来指示下一条要执行的指令。
处理器的状态字(PSW)通常包括以下状态代码。
1)CPU的工作状态代码—指明当前处理器的工作状态是管态还是目态,用来说明当
前在处理器上执行的是操作系统还是一般用户,从而决定其是否可以使用特权指令或拥有其
他的特殊权力。 2)条件码——反映指令执行后的结果特征。 类的器容,
3)中断屏蔽码——指出是否允许中断。
不同机器的程序状态字的格式及其包含的信息都不同。现以微处理器 Pentium
Pro、PentiumⅡ和 Pentium II的对应程序状态字寄存器(
EFLAGS)中包含若干标志位为例,来介绍程序状态字PSW。
下面介绍图中的某些标志位 CF:进位标志位。 ZF:结果为零标志位。
SF:符号标志位。 OF:溢出标志位
几乎所有的微型计算机的PW中都有与这4个标志位类似的标志位。有时称这4种标志位为标准条件位。
TF:陷阱标志位。 ...
1.管态和目态
处理器有时执行用户程序,有时执行操作系统的程序。在执行不同程序时,根据运行程序对资源和机器指令的使用权限而将此时的处理器设置为不同状态。
多数系统将处理器工作状态划分为管态和目态。前者一般指操作系统管理程序运行的状态,具有较高的特权级别,又称为内核态、特权态(特态)、系统态;后者一般指用户程序运行时的状态,具有较低的特权级别,又称为用户态、普通态(普态)。另外,还有些系统将处理器工作状态划分为多个系统状态,例如核心状态、管理状态和用户程序状态(又称目标状态)三种,它们具体含义与前面的双状态分级大同小异。
作为一个实例,英特尔公司出品的x86系列处理器都支持4个处理器特权级别(特权环:R0、R1、R2和R3)。从RO到R3特权能力依次降低,RO相当于双状态系统的管态R3相当于目态,而R和R2则介于两者之间,它们能够运行的指令集合具有包含关系:IR0⊇IR1⊇IR2⊇IR3处理器在各个级别下的保护行检查(例如地址校验、L0限制)以及特权级别之间的转换方式也不尽相同。这4个级别被设计成运行不同类别的程序:RO运行操作系统核心代码;R1运行关键设备驱动程序和0处理例程;R2运行 ...
对于一个单用户、单任务方式下使用的微型计算机系统,普通的非系统用户通常都可使用该计算机指令系统中的全部指令。但是在多用户或多任务的多道程序设计环境中,则它的指令系统中的指令必须区分成两部分:特权指令和非特权指令。
所谓特权指令是指:在指令系统中那些只能由操作系统使用的指令。这些特权指令是不允许一般的用户使用的,因为如果允许用户随便使用这些指令(如设置程序状态字、启动某设备、设置中断屏蔽、设置时钟指令、清内存指令和建立存储保护指令等等),就有可能使系统陷入混乱。
所以一个使用多道程序设计技术的计算机的指令系统中的指令必须区分为特权指令和非特权指令用户只能使用非特权指令,只有操作系统才能使用所有的指令(包括特权指令和非特权指令)。如果一个用户程序需要使用特权指令,一般将引起一次处理器状态的切换,这时处理器通过特殊的机制,将处理器状态切换到操作系统运行的特权状态,然后将处理权移交给操作系统中的一段特殊代码。这一个过程通常形象地称为陷人(Trap)。
如果在某种计算机的指令系统中不能区分特权指令和非特权指令,那么在这样的硬件环境下,要设计出一个具有多道程序运行的操作系统是相当困难的。至于处理器 ...
处理器一般由运算器、控制器、一系列的寄存器以及高速缓存构成。其中运算器实现指令中的算术和逻辑运算,是计算机计算的核心。控制器负责控制程序运行的流程,包括取指令、维护处理器状态、处理器与内存的交互等。寄存器是一种暂时存储器件,用于处理器执行指令的过程中暂存数据、地址以及指令信息。在计算机的存储系统中,寄存器具有最快的访问速度。寄存器为处理器本身提供了一定的存储能力,它们的速度比内存储器快得多,但是因为寄存器集成在微处理器芯片中,所以它的造价较高,存储容量一般也比小。
1.处理器中的寄存器
在处理器内通常有两类寄存器:一类称为用户可见寄存器。对于高级语言来说,编译器通过一定的算法分配并使用这些寄存器,以最大限度地减少程序运行时访问内存储器的次数,这对程序的运行速度影响很大。第二类称为控制和状态寄存器,它们用于控制处理器的操作,一般由具有特权的操作系统代码使用,以控制其他程序的执行。
通常用户可见寄存器对所有程序都是可用的,由机器语言直接引用。它一般包括数据寄存器(
Data Register)、地址寄存器( Address
Register)以及条件码寄存器数据寄存器有时又称为通用寄存器, ...