
《第二章_操作系统的硬件环境》由会员分享,可在线阅读,更多相关《第二章_操作系统的硬件环境(95页珍藏版)》请在文档大全上搜索。
1、讨论操作系统对运行硬件环境的要求讨论操作系统对运行硬件环境的要求讨论操作系统设计者考虑的硬件问题讨论操作系统设计者考虑的硬件问题 操作系统运行的硬件环境组成操作系统运行的硬件环境组成 中央处理器(中央处理器(CPU) 存储系统存储系统 中断机制中断机制 I/O系统系统 时钟以及时钟队列时钟以及时钟队列任何系统软件都是硬件功能的延伸任何系统软件都是硬件功能的延伸操作系统直接依赖于硬件条件操作系统直接依赖于硬件条件OS的硬件环境的硬件环境以较分散的形式同各以较分散的形式同各种管理相结合种管理相结合实现操作系统时必须理解实现操作系统时必须理解: 计算机基本结构计算机基本结构 操作系统管理的重要资源操
2、作系统管理的重要资源)专门设计了一系列基本机制:专门设计了一系列基本机制:- 具有特权级别的处理器状态,能在具有特权级别的处理器状态,能在 不同特权级运行的各种特权指令不同特权级运行的各种特权指令- 硬件机制使得硬件机制使得OS可以和普通程序可以和普通程序隔隔 离实现保护和控制离实现保护和控制处理器由运算器、控制器、一系列的寄存处理器由运算器、控制器、一系列的寄存器以及高速缓存构成器以及高速缓存构成运算器实现指令中的算术和逻辑运算,是运算器实现指令中的算术和逻辑运算,是计算机计算的核心计算机计算的核心控制器负责控制程序运行的流程,包括取控制器负责控制程序运行的流程,包括取指令、维护指令、维护C
3、PU状态、状态、CPU与内存的交互与内存的交互等等寄存器是指令在寄存器是指令在CPU内部作处理的过程中内部作处理的过程中暂存数据、地址以及指令信息的存储设备。暂存数据、地址以及指令信息的存储设备。在计算机的存储系统中它具有最快的访问在计算机的存储系统中它具有最快的访问速度。速度。高速缓存处于高速缓存处于CPU和物理内存之间,一般和物理内存之间,一般由控制器中的内存管理单元由控制器中的内存管理单元MMU管理,其管理,其访问速度快于内存,低于寄存器。访问速度快于内存,低于寄存器。利用程序局部性原理使得高速指令处理和利用程序局部性原理使得高速指令处理和低速内存访问得以匹配,从而提高低速内存访问得以匹
4、配,从而提高CPU的的效率。效率。处理器中的寄存器处理器中的寄存器寄存器提供了一定的存储能力,速度比主寄存器提供了一定的存储能力,速度比主存快得多。造价高,容量一般都很小存快得多。造价高,容量一般都很小两类寄存器:两类寄存器:用户可见寄存器,高级语言编译器通过算用户可见寄存器,高级语言编译器通过算法分配并使用之,以减少程序访问主存次法分配并使用之,以减少程序访问主存次数数控制和状态寄存器,用于控制处理器的操控制和状态寄存器,用于控制处理器的操作由作由OS的特权代码使用的特权代码使用, 以控制其他程序以控制其他程序的执行的执行.机器语言直接引用机器语言直接引用.包括数据寄存器、地址寄存器以及条件
5、码寄存器包括数据寄存器、地址寄存器以及条件码寄存器.数据寄存器(数据寄存器(data register)又称通用寄存器,)又称通用寄存器, 主要用于各种算术逻辑指令和访存指令主要用于各种算术逻辑指令和访存指令. 地址寄存器(地址寄存器(address register)用于存储数据)用于存储数据 及指令的物理地址、线性地址或者有效地址,用及指令的物理地址、线性地址或者有效地址,用 于某种特定方式的寻址。于某种特定方式的寻址。 如如index register、segment pointer、stack pointer.条件码寄存器保存条件码寄存器保存CPU操作结果的各种标记位。操作结果的各种标
6、记位。 如算术运算产生的溢出、符号等等如算术运算产生的溢出、符号等等 用于控制处理器的操作用于控制处理器的操作 大部分对于用户是不可见的,一部分可以在大部分对于用户是不可见的,一部分可以在某种特权模式(由某种特权模式(由OS使用)下访问。使用)下访问。 常见的控制和状态寄存器常见的控制和状态寄存器: 程序计数器(程序计数器(PC)记录将要取出的指令的地)记录将要取出的指令的地址。址。 指令寄存器(指令寄存器(IR)包含最近取出的指令。)包含最近取出的指令。 程序状态字(程序状态字(PSW)记录处理器的运行模式)记录处理器的运行模式信息等等。信息等等。2、两个步骤:两个步骤:先从存储器中每次读取
7、一条指令先从存储器中每次读取一条指令 然后执行这条指令然后执行这条指令一个单条指令处理过程称为一个指令周期。一个单条指令处理过程称为一个指令周期。程序的执行是由不断取指和执行的指令周程序的执行是由不断取指和执行的指令周期组成。仅当关机、出错或有停机相关指期组成。仅当关机、出错或有停机相关指令时,程序才停止。令时,程序才停止。每个指令周期开始时,依据在程序计数器每个指令周期开始时,依据在程序计数器中的指令地址从存储器中取一条指令;中的指令地址从存储器中取一条指令;在取指完成后根据指令类别自动将程序计在取指完成后根据指令类别自动将程序计数器的值变成下条指令的地址,自增数器的值变成下条指令的地址,自
8、增1;取到的指令放在指令寄存器中;取到的指令放在指令寄存器中;处理器解释并执行所要求的动作。处理器解释并执行所要求的动作。 访问存储器指令:访问存储器指令: 处理器和存储器间数据传送。处理器和存储器间数据传送。 I/O指令:指令: 处理器和处理器和I/O模块间数据传送和命令发送。模块间数据传送和命令发送。 算术逻辑指令(数据处理指令):算术逻辑指令(数据处理指令): 执行数据算术和逻辑操作。执行数据算术和逻辑操作。 控制转移指令:控制转移指令: 指定一个新的指令的执行起点。指定一个新的指令的执行起点。 处理器控制指令:处理器控制指令: 修改处理器状态,改变处理器工作方式。修改处理器状态,改变处
9、理器工作方式。 使用多道程序设计技术的计算机指令系统必使用多道程序设计技术的计算机指令系统必须要区分为特权指令和非特权指令。须要区分为特权指令和非特权指令。 特权指令:特权指令:只能由操作系统使用的指令。只能由操作系统使用的指令。 特权指令一般引起处理器状态的切换。特权指令一般引起处理器状态的切换。处理器通过特殊的机制将处理器状态切换到操处理器通过特殊的机制将处理器状态切换到操作系统运行的特权状态(管态),然后将处理作系统运行的特权状态(管态),然后将处理权移交给操作系统中的一段特殊代码,这一过权移交给操作系统中的一段特殊代码,这一过程称为陷入。程称为陷入。 CPU如何知道当前运行的是操作如何
10、知道当前运行的是操作系统还是一般应用软件?系统还是一般应用软件? 有赖于处理器状态的标识有赖于处理器状态的标识根据运行程序对资源和机器指令的使用权限将根据运行程序对资源和机器指令的使用权限将处理器设置为不同状态。处理器设置为不同状态。多数系统将处理器工作状态划分为管态和目态多数系统将处理器工作状态划分为管态和目态管态:操作系统管理程序运行的状态,较高的管态:操作系统管理程序运行的状态,较高的 特权级别,又称为特权态(特态)、核特权级别,又称为特权态(特态)、核 心态、系统态。心态、系统态。目态:用户程序运行时的状态,较低的特权级目态:用户程序运行时的状态,较低的特权级 别,又称为普通态(普态)
11、、用户态。别,又称为普通态(普态)、用户态。 有些系统将处理器状态划分核心状态、管理有些系统将处理器状态划分核心状态、管理状态和用户程序状态(目标状态)三种。状态和用户程序状态(目标状态)三种。386、486、Pentium系列都支持系列都支持4个处理器特个处理器特级别(特权环:级别(特权环:R0、R1、R2和和R3)从从R0到到R3特权能力依次降低,特权能力依次降低,R0相当于双状相当于双状态系统的管态,态系统的管态,R3相当于目态,相当于目态,R1和和R2则介则介于两者之间,它们能够运行的指令集合具有包于两者之间,它们能够运行的指令集合具有包含关系:含关系: IR0 IR1IR2 IR3各
12、个级别有保护性检查(地址校验、各个级别有保护性检查(地址校验、I/O限制)限制)特权级别之间的转换方式不尽相同特权级别之间的转换方式不尽相同四个级别运行不同类别的程序:四个级别运行不同类别的程序: R0-运行操作系统核心代码运行操作系统核心代码 R1-运行关键设备驱动程序和运行关键设备驱动程序和I/O处理例程处理例程 R2-运行其他受保护共享代码,如语言系统运运行其他受保护共享代码,如语言系统运 行环境行环境 R3-运行各种用户程序运行各种用户程序现有基于现有基于x86处理器的操作系统,多数处理器的操作系统,多数UNIX、Linux以及以及Windows系列大都只用了系列大都只用了R0和和R3
13、两两个特权级别个特权级别处理器处于管态时:处理器处于管态时:全部指令(包括特权指令)可以执行全部指令(包括特权指令)可以执行可使用所有资源可使用所有资源并具有改变处理器状态的能力并具有改变处理器状态的能力处理器处于目态时:处理器处于目态时: 只有非特权指令能执行只有非特权指令能执行 特权级别不同,可运行指令集合也不同特权级别不同,可运行指令集合也不同 特权级别越高,可以运行指令集合越大特权级别越高,可以运行指令集合越大 高特权级别对应的可运行指令集合包含低特高特权级别对应的可运行指令集合包含低特 权级的权级的 在在PSW中专门设置一位,根据运行程序中专门设置一位,根据运行程序使用指令的权限而设
14、置使用指令的权限而设置CPU状态状态 CPU的工作状态码的工作状态码指明管态还是目指明管态还是目态,用来说明当前在态,用来说明当前在CPU上执行的是操作上执行的是操作系统还是一般用户,从而决定其是否可以系统还是一般用户,从而决定其是否可以使用特权指令或拥有其他的特殊权力使用特权指令或拥有其他的特殊权力 条件码条件码反映指令执行后的结果特征反映指令执行后的结果特征 中断屏蔽码中断屏蔽码指出是否允许中断指出是否允许中断例例:微处理器微处理器M68000的程序状态字的程序状态字条件位:条件位:C: 进位标志位进位标志位 V: 溢出标志位溢出标志位Z: 结果为零标志位结果为零标志位 N: 结果为负标志
15、位结果为负标志位I0 I2: 三位中断屏蔽位三位中断屏蔽位S: CPU状态标志位,为状态标志位,为1处于管态,为处于管态,为0 处于目态处于目态T: 陷阱(陷阱(Trap)中断指示位为)中断指示位为1,在下一条指令执行后引起自陷中断在下一条指令执行后引起自陷中断CPU状态的转换状态的转换:目态目态管态管态 唯一途径唯一途径 是是 中断中断管态管态目态目态 设置设置PSW(修改程序状态字修改程序状态字) 可可 实现实现支持支持OS运行硬件环境的一个重要方面:运行硬件环境的一个重要方面: 作业必须把它的程序和数据存放在内存作业必须把它的程序和数据存放在内存 中才能运行中才能运行 多道程系统中,若干
16、个程序和相关的数多道程系统中,若干个程序和相关的数 据要放入内存操作系统要管理、保护程据要放入内存操作系统要管理、保护程 序和数据,使它们不至于受到破坏序和数据,使它们不至于受到破坏 操作系统本身也要存放在内存中并运行操作系统本身也要存放在内存中并运行半导体存储器实现内存半导体存储器实现内存 存储器芯片的内部组织结构存储器芯片的内部组织结构 静态存储器(静态存储器(SRAM) 异步动态随机存储器(异步动态随机存储器(DRAM) 同步动态随机存储器(同步动态随机存储器(SDRAM) 双倍数据速率双倍数据速率SDRAM(DDR SDRAM)(开放标准)(开放标准) Rambus公司的公司的SDRA
17、M只读型存储器只读型存储器 ROM:只能从其中读取数据,但不能随意用普通方:只能从其中读取数据,但不能随意用普通方 法写入数据法写入数据(写入数据只能用特殊方法写入数据只能用特殊方法) 在微机中,一些常驻内存的模块以微程序形式固在微机中,一些常驻内存的模块以微程序形式固 化在化在ROM中。中。 PROM:可编程只读存储器,使用特殊:可编程只读存储器,使用特殊ROM写入器写入器 写入数据写入数据 EPROM:电可擦写可编程只读存储器,用特殊的紫:电可擦写可编程只读存储器,用特殊的紫 外线光照射此芯片,以外线光照射此芯片,以“擦去擦去”信息,恢复信息,恢复原原 来状态,再使用特殊来状态,再使用特殊
18、EPROM写入器写入数写入器写入数 据。据。 闪存(闪存(flash memory)存储系统设计三个问题:存储系统设计三个问题: 容量、速度和成本容量、速度和成本 容量:需求无止境。容量:需求无止境。 速度:能匹配处理器的速度。速度:能匹配处理器的速度。 成本问题:成本和其他部件相比应在合适范成本问题:成本和其他部件相比应在合适范围围 之内。之内。容量、速度和成本容量、速度和成本 三个目标不可能同时达到最优,要作权衡。三个目标不可能同时达到最优,要作权衡。 存取速度快,每比特价格高。存取速度快,每比特价格高。 容量大,每比特价格越低,同时存取速度也容量大,每比特价格越低,同时存取速度也越越 慢
19、。慢。解决方案:采用层次化的存储体系结构解决方案:采用层次化的存储体系结构 当沿着层次下降时,每比特的价格将下降,当沿着层次下降时,每比特的价格将下降,容量将增大,速度将变慢,处理器的访问频率容量将增大,速度将变慢,处理器的访问频率也将下降。也将下降。 提高存储系统效能关键点:程序存储访提高存储系统效能关键点:程序存储访 问问局部性原理局部性原理 程序执行时,有很多的循环和子程序调程序执行时,有很多的循环和子程序调 用,一旦进入这样的程序段,就会重复用,一旦进入这样的程序段,就会重复存存 取相同的指令集合。取相同的指令集合。 对数据存取也有局部性,在较短的时间对数据存取也有局部性,在较短的时间
20、 内,稳定地保持在一个存储器的局部区内,稳定地保持在一个存储器的局部区域域 处理器处理器 主要和存储器的局部打交道主要和存储器的局部打交道 在经过一段时间以后,使用的代码和数在经过一段时间以后,使用的代码和数据据 集合会改变。集合会改变。设计多级存储的体系结构设计多级存储的体系结构原则:级别较低存储器比率小于级别较高存储器原则:级别较低存储器比率小于级别较高存储器 比率。比率。 假设两级存储器:假设两级存储器: 第第I级包含级包含1KB,存取时间为,存取时间为0.1s 第第II级包含级包含1MB,存取时间为,存取时间为1s 存取存取I级中的内容,直接存取;存取级中的内容,直接存取;存取II级,
21、首级,首 先被转移到先被转移到I级,然后再存取。级,然后再存取。 假设确定内容所在位置时间可以忽略,若在假设确定内容所在位置时间可以忽略,若在I级存储器级存储器 中发现存取对象的概率是中发现存取对象的概率是95%,则平均访问时间为:,则平均访问时间为: (0.95 )(0.1s)+(0.05)(0.1s+1s )= 0.5s 结果非常接近结果非常接近I级存储的存取时间级存储的存取时间存储最小单位存储最小单位:“二进位二进位”,包含信息为,包含信息为0或或1最小编址单位最小编址单位:字节,一个字节包含八个二进位字节,一个字节包含八个二进位主流个人电脑主流个人电脑 主存主存:128MB512MB之
22、间之间 辅助存储器辅助存储器:在在20GB70GB工作站、服务器工作站、服务器 主存主存:512MB 4GB之间之间硬盘容量硬盘容量:数百数百GB为简化分配和管理为简化分配和管理,存储器分成块存储器分成块,称一个物理页。称一个物理页。 块的大小:块的大小:512B、1K、4K、8K 对主存中的信息加以严格的保护,使操作系对主存中的信息加以严格的保护,使操作系统及其他程序不被破坏,是其正确运行的基本统及其他程序不被破坏,是其正确运行的基本条件之一。条件之一。多用户,多任务操作系统:多用户,多任务操作系统: OS给每个运行进程分配一个存储区域。给每个运行进程分配一个存储区域。问题:问题: 多个程序
23、同时在同一台机器上运行,怎样才多个程序同时在同一台机器上运行,怎样才 能互不侵犯?能互不侵犯? 如何处理重定位如何处理重定位?保护的硬件支持保护的硬件支持 解决方案解决方案 依赖于依赖于 配有特殊硬件的配有特殊硬件的 CPU。 硬件可提供如下功能:硬件可提供如下功能: 界地址寄存器(界限寄存器)界地址寄存器(界限寄存器) 存储键存储键 地址转换机制地址转换机制 界地址寄存器被广泛使用的一种存储保护技界地址寄存器被广泛使用的一种存储保护技 术机制比较简单,易于实现术机制比较简单,易于实现 在在CPU中设置一对下限寄存器和上限寄存器存放用中设置一对下限寄存器和上限寄存器存放用 户作业在主存中的下限
24、和上限地址,也可将一个寄户作业在主存中的下限和上限地址,也可将一个寄 存器作为基址寄存器,另一寄存器作为限长寄存器存器作为基址寄存器,另一寄存器作为限长寄存器 (指示存储区长度)。每当(指示存储区长度)。每当CPU要访问主存,硬件要访问主存,硬件 自动将被访问的主存地址与界限寄存器的内容进行自动将被访问的主存地址与界限寄存器的内容进行 比较,以判断是否越界。如果未越界,则按此地址比较,以判断是否越界。如果未越界,则按此地址 访问主存,否则将产生程序性中断访问主存,否则将产生程序性中断越界中断越界中断 (存储保护中断)。(存储保护中断)。 每个存储块有一个由二进位组成的存储保护每个存储块有一个由
25、二进位组成的存储保护 键。键。 一用户作业被允许进入主存,一用户作业被允许进入主存,OS分给它一分给它一 个唯一的存储键号;并将分配给该作业各存个唯一的存储键号;并将分配给该作业各存 储块存储键也置成同样键号;当储块存储键也置成同样键号;当OS挑选该挑选该 作业运行时,作业运行时,OS将它的存储键号放入程序将它的存储键号放入程序 状态字状态字PSW存储键(存储键(“钥匙钥匙”)域中;每当)域中;每当 CPU访问主存时,都将该主存块的存储键与访问主存时,都将该主存块的存储键与 PSW中的中的“钥匙钥匙”进行比较;如果相匹配,进行比较;如果相匹配,则则 允许访问;否则,拒绝并报警。允许访问;否则,
26、拒绝并报警。 同时有多个程序在内存同时有多个程序在内存 程序在内存的位置不是固定的而是随机程序在内存的位置不是固定的而是随机 的的4. 地址转换机制地址转换机制虚拟地址(逻辑地址)虚拟地址(逻辑地址)处理器生成的指令或数据的二进制地址处理器生成的指令或数据的二进制地址这些地址用硬件和软件结合的方法转换这些地址用硬件和软件结合的方法转换成物理地址成物理地址MMU:内存管理单元,一种特殊硬件,:内存管理单元,一种特殊硬件,完成转换工作完成转换工作 缓冲区是硬件设备之间进行数据传输缓冲区是硬件设备之间进行数据传输 时用来暂存数据的一个存储区域。时用来暂存数据的一个存储区域。 缓冲技术三种用途缓冲技术
27、三种用途: 处理器与主存储器之间处理器与主存储器之间 处理器和其他外部设备之间处理器和其他外部设备之间 设备与设备之间的通信设备与设备之间的通信 目的:解决部件之间速度不匹配的问题目的:解决部件之间速度不匹配的问题多缓冲区(多缓冲区(Cache)技术)技术 单缓冲区:单缓冲区: 设备向缓冲区输入数据直到装满后必须设备向缓冲区输入数据直到装满后必须 等待等待CPU将其取完,才能继续向其中将其取完,才能继续向其中输输 入数据入数据 为了提高设备利用率,单缓冲区不够为了提高设备利用率,单缓冲区不够 多缓冲区(多缓冲区(Cache)技术:)技术: Cache:离:离CPU最近,使最近,使CPU快速访快
28、速访 问常使用的数据问常使用的数据 CPU首先到一级首先到一级Cache中找中找 如果没有,如果没有,CPU到二级到二级Cache中找中找 如果没有,如果没有,CPU到系统内存中找到系统内存中找 中断对于操作系统的重要性中断对于操作系统的重要性 就像机器中的驱动齿轮一样就像机器中的驱动齿轮一样 所以有人把操作系统称为是由所以有人把操作系统称为是由 “中断驱动中断驱动”或者或者 “(中断)事件(中断)事件驱动驱动” 它使得它使得OS可以捕获用户程序发出的系统功可以捕获用户程序发出的系统功 能调用;能调用; 及时处理设备的中断请求;及时处理设备的中断请求; 防止用户程序中破坏性的活动等等。防止用户
29、程序中破坏性的活动等等。1. CPU对系统发生的某个事件作出的一种反应,对系统发生的某个事件作出的一种反应,CPU暂停正在执行的程序,保留现场后暂停正在执行的程序,保留现场后自动自动转转去去执行相应事件的处理程序执行相应事件的处理程序,处理完成后返回,处理完成后返回断点,继续执行被打断的程序。断点,继续执行被打断的程序。引入中断的目的引入中断的目的 解决主机与外设的并行工作问题解决主机与外设的并行工作问题 实现实时控制实现实时控制特点:特点:1) 中断是随机的中断是随机的 2) 中断是可恢复的中断是可恢复的 3) 中断是自动处理的中断是自动处理的中断中断/异常:异常:指系统发生某个异步指系统发
30、生某个异步/同步事件后同步事件后, 处理机暂停正在执行的程序处理机暂停正在执行的程序,转去执行处理转去执行处理 该事件程序的过程。该事件程序的过程。中断的引入:中断的引入:为了开发为了开发CPU和通道和通道(或设备或设备)之之 间的并行操作,当间的并行操作,当CPU启动通道启动通道(或设备或设备)进进 行输入行输入/输出后,通道便输出后,通道便(或设备或设备)可以独立工可以独立工 作了,作了,CPU也可以转去做与此次输入也可以转去做与此次输入/输出输出 不相关的事情,那么通道不相关的事情,那么通道(或设备或设备) 输入输入/输输 出完成后,还必须告诉出完成后,还必须告诉CPU继续输入继续输入/
31、输出输出 以后的事情,通道以后的事情,通道(或设备或设备)通过向通过向CPU发中发中 断告诉断告诉CPU此次输入此次输入/输出结束。输出结束。异常引入:异常引入:用于表示用于表示CPU执行指令时本身执行指令时本身 出现算术溢出、零做除数、取数时的奇出现算术溢出、零做除数、取数时的奇 偶错,访存指令越界或就是执行了一条偶错,访存指令越界或就是执行了一条 所谓所谓“异常指令异常指令”(用于实现系统调用)(用于实现系统调用) 等情况,这时中断当前的执行流程,转等情况,这时中断当前的执行流程,转 到相应的错误处理程序或异常处理程序。到相应的错误处理程序或异常处理程序。注意:注意:最早中断和异常并没有区
32、分,都把它们最早中断和异常并没有区分,都把它们 叫做中断。随着它们的发生原因和处理方叫做中断。随着它们的发生原因和处理方 式的差别愈发明显,才有了以后的中断和式的差别愈发明显,才有了以后的中断和 异常。异常。 微机中的中断微机中的中断 程序中断(溢出、除法错等中断)程序中断(溢出、除法错等中断) 软件中断(软件中断(Trap指令或中断指令指令或中断指令INT) 时钟中断时钟中断 I/O中断中断 硬件失效中断硬件失效中断 根据中断是否可屏蔽分为:根据中断是否可屏蔽分为: 可屏蔽中断(可屏蔽中断(IO中断)中断) 不可屏蔽中断(机器内部故障、掉电中断)不可屏蔽中断(机器内部故障、掉电中断) IBM
33、370中的中断中的中断 机器故障中断:如电源故障,机器电路机器故障中断:如电源故障,机器电路 检验错等检验错等 输入输出中断:输入输出设备和通道数输入输出中断:输入输出设备和通道数 据传输状态据传输状态 外部中断:包括时钟中断,操作员控制外部中断:包括时钟中断,操作员控制 台中断,多机系统中其他机器的台中断,多机系统中其他机器的 通信要求中断,各种外设或传感通信要求中断,各种外设或传感 器发来的实时中断等器发来的实时中断等 程序中断:程序中的问题引起的程序中断:程序中的问题引起的 中断,如错误地使用指令中断,如错误地使用指令 或数据、溢出等问题,存或数据、溢出等问题,存 储保护等储保护等 访管
34、中断:访管指令或陷阱指令中的访管中断:访管指令或陷阱指令中的 操作数规定了要求服务的类型。操作数规定了要求服务的类型。 每当每当CPU执行访管指令或陷阱执行访管指令或陷阱 指令时,即引起中断并调用操指令时,即引起中断并调用操 作系统相应的功能模块为其服作系统相应的功能模块为其服 务务根据被激发的手段划分根据被激发的手段划分 强迫性中断强迫性中断 中断事件是正在运行的程序所不期望发中断事件是正在运行的程序所不期望发 生的,它们出现的随机性比较强。生的,它们出现的随机性比较强。 它包括它包括: 输入输入/输出输出(I/O)中断:主要来自外部中断:主要来自外部 设备通道设备通道 程序性中断:运行程序
35、中本身的中程序性中断:运行程序中本身的中 断断(如溢出如溢出,缺页中断缺页中断, 缺段中断缺段中断,地址越界地址越界 控制台中断控制台中断 时钟中断时钟中断 硬件失效中断硬件失效中断 自愿性中断自愿性中断 中断是正在运行的程序有一安排执行中断是正在运行的程序有一安排执行 的,通常有访管指令引起目的是要求的,通常有访管指令引起目的是要求 OS提供系统服务。发生的时间和位置提供系统服务。发生的时间和位置 具有确定性。具有确定性。 执行执行I/O,创建进程,分配内存,创建进程,分配内存 信号量操作,发送信号量操作,发送/接收消息接收消息中断系统是现代计算机系统的核心机制之一中断系统是现代计算机系统的
36、核心机制之一 硬件和软件相互配合、相互渗透而使得计算硬件和软件相互配合、相互渗透而使得计算 机系统得以充分发挥能力的计算模式机系统得以充分发挥能力的计算模式中断系统的两大组成部分:中断系统的两大组成部分: 硬件中断装置和软件中断处理程序硬件中断装置和软件中断处理程序 中断系统的硬件中断装置中断系统的硬件中断装置-中断系统的机制中断系统的机制 部分部分 负责捕获中断源发出的中断请求,以一负责捕获中断源发出的中断请求,以一 定方式响应中断源,然后将处理器控制定方式响应中断源,然后将处理器控制 权交给特定的中断处理程序权交给特定的中断处理程序. 软件中断处理程序软件中断处理程序-中断系统的策略部分中
37、断系统的策略部分 负责辨别中断类型并做出相应的操作负责辨别中断类型并做出相应的操作2.4.3 中断逻辑和中断寄存器中断逻辑和中断寄存器中断源:引起中断发生的事件中断源:引起中断发生的事件中断寄存器:记录中断。(触发器的全体)中断寄存器:记录中断。(触发器的全体)中断字:中断寄存器的内容。中断字:中断寄存器的内容。系统堆栈系统堆栈: 在内存开辟的一块区域,用于临时保存在内存开辟的一块区域,用于临时保存 现场。现场。优先级:优先级: 固定的优先数和轮转法。固定的优先数和轮转法。中断屏蔽:主机可以允许或者禁止中断屏蔽:主机可以允许或者禁止 某些类别中断的响应。某些类别中断的响应。CPU如何响应中断如
38、何响应中断, 三个问题:三个问题: CPU何时响应中断?何时响应中断? 通常在通常在CPU执行了一条指令以后,更确执行了一条指令以后,更确 切地,在指令周期最后时刻接受中断请切地,在指令周期最后时刻接受中断请 求,或此时扫描中断寄存器求,或此时扫描中断寄存器 响应的条件?响应的条件? 一是一是CPU没有被禁止;没有被禁止; 二是中断没有被屏蔽。二是中断没有被屏蔽。 如何知道提出中断请求的设备或中如何知道提出中断请求的设备或中 断源?断源? 因为只有知道中断源或中断设备因为只有知道中断源或中断设备, 才能调用相应的中断处理程序。才能调用相应的中断处理程序。 软件指令查询;软件指令查询; 中断向量
39、。中断向量。 处理器的控制部件中设一个能检测中断处理器的控制部件中设一个能检测中断 的机构称为中断扫描机构。的机构称为中断扫描机构。 在每条指令执行周期的最后时刻扫描在每条指令执行周期的最后时刻扫描中中 断寄存器,询问是否有中断信号断寄存器,询问是否有中断信号 若无中断信号,继续执行下一条指令若无中断信号,继续执行下一条指令 若有中断,中断硬件将该中断触发器若有中断,中断硬件将该中断触发器内内 容按规定编码送入容按规定编码送入PSW的相应位,称的相应位,称 为中断码通过交换中断向量引出中断为中断码通过交换中断向量引出中断处处 理程序理程序 用软件指令去查询各设备接口用软件指令去查询各设备接口
40、这种方法比较费时这种方法比较费时 多数微型机对此问题的解决方法:多数微型机对此问题的解决方法: 使用一种使用一种“向量中断向量中断”的硬件设施的硬件设施 “中断向量中断向量”: 当当CPU接受某中断请求时,该设备接接受某中断请求时,该设备接 口给处理器发送具有唯一性的口给处理器发送具有唯一性的“中断向中断向 量量”,以标识该设备,以标识该设备 “中断向量中断向量”在各计算机上实现方法差别在各计算机上实现方法差别 比较大比较大中断向量中断向量:一个存放中断处理程序入口地:一个存放中断处理程序入口地 址和程序运行所需处理机状态字的址和程序运行所需处理机状态字的 内存单元内存单元 硬件按中断号、异常
41、类型的不同通过中硬件按中断号、异常类型的不同通过中 断向量表转移断向量表转移在有的机器中:在有的机器中: 将主存最低位将主存最低位128个字保留作为个字保留作为 中断向量表,每个中断向量占两中断向量表,每个中断向量占两 个字个字 中断请求的设备接口为了标识自中断请求的设备接口为了标识自 己,向处理器发送一个该设备在中己,向处理器发送一个该设备在中 断向量表中表目的地址指针断向量表中表目的地址指针.中断处理的一般过程中断处理的一般过程 简单的中断处理简单的中断处理 一个典型的处理过程:一个典型的处理过程: 设备给处理器发一个中断信号设备给处理器发一个中断信号 处理器处理完当前指令后响应中断,延迟
42、处理器处理完当前指令后响应中断,延迟 非常短非常短(要求处理器没有关闭中断要求处理器没有关闭中断) 处理器处理完当前指令后检测到中断,判处理器处理完当前指令后检测到中断,判 断出中断来源并向发送中断的设备发送了断出中断来源并向发送中断的设备发送了 确认中断信号,确认信号使得该设备将中确认中断信号,确认信号使得该设备将中 断信号恢复到一般状态断信号恢复到一般状态 处理器开始为软件处理中断做准备:保存中处理器开始为软件处理中断做准备:保存中 断点的程序执行上下文环境,这通常包括程断点的程序执行上下文环境,这通常包括程 序状态字序状态字PSW,程序计数器,程序计数器PC中的下一条中的下一条 指令位置
43、,一些寄存器的值,它们通常保存指令位置,一些寄存器的值,它们通常保存 在系统控制栈中。在系统控制栈中。 处理器根据中断源查询中断向量表,获得处理器根据中断源查询中断向量表,获得 与该中断相联系的处理程序入口地址,并与该中断相联系的处理程序入口地址,并 将将PC置成该地址,处理器开始一个新的指置成该地址,处理器开始一个新的指 令周期,控制转移到中断处理程序令周期,控制转移到中断处理程序 中断处理程序开始工作,包括检查中断处理程序开始工作,包括检查I/O相关相关 的状态信息,操纵的状态信息,操纵I/O设备或者在设备和主设备或者在设备和主 存之间传送数据等等存之间传送数据等等 中断处理结束时,处理器
44、检测到中断返回中断处理结束时,处理器检测到中断返回指指 令,被中断程序的上下文环境从系统堆栈中令,被中断程序的上下文环境从系统堆栈中 被恢复。被恢复。 PSW和和PC被恢复成中断前的值,处理器开被恢复成中断前的值,处理器开 始一个新的指令周期,中断处理结束。始一个新的指令周期,中断处理结束。 多个中断的处理多个中断的处理 若中断处理过程中又发生中断,引起多若中断处理过程中又发生中断,引起多 个中断处理问题个中断处理问题 两种策略方法:两种策略方法: 第一种:第一种: 处理一个中断时禁止中断,对任何新处理一个中断时禁止中断,对任何新 中断置之不理,在这期间发生的中断中断置之不理,在这期间发生的中
45、断 将保持挂起状态。当再次允许中断,将保持挂起状态。当再次允许中断, 处理器可检测到新中断信号处理器可检测到新中断信号 软件实现方法:软件实现方法: 在任何中断处理前使用禁止中断指令,在在任何中断处理前使用禁止中断指令,在 处理结束后开处理结束后开 放中断指令。放中断指令。 所有中断严格按所有中断严格按 照发生顺序处理,照发生顺序处理, 不考虑中断紧急不考虑中断紧急 程度,无法达到程度,无法达到 较严格的时间要较严格的时间要 求。求。 第二种:第二种: 中断按照优先度中断按照优先度 分级,允许优先分级,允许优先 级高的中断打断级高的中断打断 优先级低的中断优先级低的中断 处理过程。处理过程。
46、引起中断处理的引起中断处理的 嵌套只要合适地嵌套只要合适地 定义中断的优先级别,方法一的弊端大定义中断的优先级别,方法一的弊端大 都可以克服。都可以克服。 I/O中断中断 由由I/O设备的控制器或者通道发出设备的控制器或者通道发出 通常有两类:通常有两类: I/O操作正常结束操作正常结束 如果要继续如果要继续I/O操作,需要在准备好以后重操作,需要在准备好以后重 新启动新启动I/O,若请求,若请求I/O程序正处于等待程序正处于等待I/O 状态,则应将其唤醒状态,则应将其唤醒 I/O异常异常 需要重新执行失败的需要重新执行失败的I/O操作,但重试次数操作,但重试次数 有上限,次数过大,系统将判定
47、硬件故障有上限,次数过大,系统将判定硬件故障 时钟中断时钟中断 系统多道能力的重要推动力量,时钟中断处系统多道能力的重要推动力量,时钟中断处 理程序通常做与系统运转、管理和维护相关理程序通常做与系统运转、管理和维护相关 的工作,包括:的工作,包括: 维护软件时钟:系统有若干个软件时钟维护软件时钟:系统有若干个软件时钟, 控制定时任务以及进程的处理器时间配控制定时任务以及进程的处理器时间配 额额, 时钟中断需要维护、定时更新这些时钟中断需要维护、定时更新这些 软件时钟。软件时钟。 处理器时间调度:维护当前进程时间片处理器时间调度:维护当前进程时间片 软件时钟,并在当前进程时间片到时以软件时钟,并
48、在当前进程时间片到时以 后运行调度程序选择下一个被调度的进后运行调度程序选择下一个被调度的进 程。程。 控制系统定时任务:通过软件时钟和调度控制系统定时任务:通过软件时钟和调度 程序定时激活一些系统任务,如监测死程序定时激活一些系统任务,如监测死锁锁 、系统记帐、系统审计等。、系统记帐、系统审计等。 实时处理实时处理 硬件故障中断硬件故障中断 硬件故障中断处理程序一般需要做的工作:硬件故障中断处理程序一般需要做的工作: 保存现场,使用一定警告手段,提供些保存现场,使用一定警告手段,提供些 辅助诊断信息辅助诊断信息 在高可靠系统中,中断处理程序还要评在高可靠系统中,中断处理程序还要评 估系统可用
49、性,尽可能恢复系统估系统可用性,尽可能恢复系统 程序性中断程序性中断 程序指令出错、指令越权或者指令寻址越界程序指令出错、指令越权或者指令寻址越界 而引发。而引发。 两类处理方法:两类处理方法: 只能由操作系统的相关扩展功能模块完成只能由操作系统的相关扩展功能模块完成, 多为程序试图作不能做的操作引起的系统多为程序试图作不能做的操作引起的系统 保护。保护。 如访问合法的、但不在内存的虚地址内,如访问合法的、但不在内存的虚地址内, 引发缺页中断。一般会引发引发缺页中断。一般会引发 OS虚存模块虚存模块 作一个页面换入作一个页面换入 可由程序自己完成,如一些算术运算错可由程序自己完成,如一些算术运
50、算错 误。误。 不同程序可有不同处理方法,所以很不同程序可有不同处理方法,所以很 多多OS提供由用户自己处理这类中断提供由用户自己处理这类中断 的的“绿色通道绿色通道”。 一般地,系统调试中断(断点中断、一般地,系统调试中断(断点中断、 单步跟踪)也可被用户程序处理,用单步跟踪)也可被用户程序处理,用 以支持各种程序调试。以支持各种程序调试。 系统服务请求(自愿性中断系统服务请求(自愿性中断) 系统服务请求由处理器专用指令(访管指系统服务请求由处理器专用指令(访管指 令)激发。令)激发。 如如x86处理器提供处理器提供int指令,用来激发软件中断,指令,用来激发软件中断, 其它不少处理器则提供
51、系统调用指令其它不少处理器则提供系统调用指令syscall。 执行专用指令的结果是系统被切换到管态,执行专用指令的结果是系统被切换到管态, 并且转移到一段专门的并且转移到一段专门的OS程序处开始执行。程序处开始执行。 指令格式通常是指令名加请求服务识别号指令格式通常是指令名加请求服务识别号 (有时是中断号),(有时是中断号),OS利用处理器提供的利用处理器提供的 这种接口建立系统服务体系。这种接口建立系统服务体系。 处理器一般处理器一般 不负责定义系统调用所传递的参数格式。不负责定义系统调用所传递的参数格式。DOS:21h号中断的系统服务功能以及参数列表号中断的系统服务功能以及参数列表现代操作
52、系统一般不提供直接使用系统调用指令现代操作系统一般不提供直接使用系统调用指令的接口,通常做法:提供一套方便、实用的应用的接口,通常做法:提供一套方便、实用的应用程序函数库(应用程序设计接口程序函数库(应用程序设计接口API) 从应用层面重新封装系统调用从应用层面重新封装系统调用 屏蔽复杂的系统调用传参问题屏蔽复杂的系统调用传参问题 高级语言接口,有助于快速开发高级语言接口,有助于快速开发有的系统在更高层面提供系统程序设计模板库和有的系统在更高层面提供系统程序设计模板库和类库类库 如如Windows 2000/XP提供封装系统用提供封装系统用Win32 API和高层编程机制和高层编程机制MFC以
53、及以及ATL I/O控制使用下面几种技术:控制使用下面几种技术: 程序控制程序控制 中断驱动中断驱动 直接存储器存取(直接存储器存取(DMA) 通道通道由处理器提供由处理器提供I/O相关指令来实现相关指令来实现 I/O处理单元处理请求并设置处理单元处理请求并设置I/O状态寄状态寄 存器相关位存器相关位 不中断处理器,也不给处理器警告信息不中断处理器,也不给处理器警告信息 处理器定期轮询处理器定期轮询I/O单元的状态,直到单元的状态,直到 处理完毕处理完毕I/O软件包含直接操纵软件包含直接操纵I/O的指令的指令 控制指令控制指令: 用于激活外设,并告诉它用于激活外设,并告诉它做做 什么什么 状态
54、指令状态指令: 用于测试用于测试I/O控制中的各种控制中的各种 状态和条件状态和条件 数据传送指令数据传送指令: 用于在设备和主存之用于在设备和主存之间间 来回传送数据来回传送数据主要缺陷:处理器必须关注主要缺陷:处理器必须关注I/O处理单元处理单元的状态,因而耗费大量时间轮询信息,严的状态,因而耗费大量时间轮询信息,严重地降低了系统性能重地降低了系统性能 为了解决程序控制为了解决程序控制I/O方法的主要问,应方法的主要问,应该让处理器从轮询任务中解放出来使该让处理器从轮询任务中解放出来使I/O操操作和指令执行并行起来。作和指令执行并行起来。 具体作法:具体作法: 当当I/O处理单元准备好与设
55、备交互的时处理单元准备好与设备交互的时 候通过物理信号通知处理器,即中断候通过物理信号通知处理器,即中断 处理器处理器中断的引入大大地提高了处理器处理中断的引入大大地提高了处理器处理I/O的效率,当处理器和的效率,当处理器和I/O间传送数据时,间传送数据时,效率仍旧不高效率仍旧不高解决方法:解决方法: 直接存储器访问(直接存储器访问(DMA) 通过系统总线中一独立控制单元通过系统总线中一独立控制单元 DMA控制器,自动控制成块数据在内控制器,自动控制成块数据在内 存和存和I/O单元间的传送单元间的传送 大大提高处理大大提高处理I/O的效能的效能当处理器需要读写一整块数据时,给当处理器需要读写一
56、整块数据时,给DMA控制单元发送一条命令。通常包含:控制单元发送一条命令。通常包含:是否请求一次读或写、是否请求一次读或写、I/O设备的编址、设备的编址、开始开始读或写的内存编址、需要传送的数据长度读或写的内存编址、需要传送的数据长度等信息。等信息。 处理器发送完命令后就可处理其他事情。处理器发送完命令后就可处理其他事情。DMA控制器将自动管理数据的传送,当控制器将自动管理数据的传送,当这个过程完成后,这个过程完成后,DMA控制器给处理器控制器给处理器发一个中断,处理器只在开始传送和传送发一个中断,处理器只在开始传送和传送结束时关注一下就可以了。结束时关注一下就可以了。处理器和处理器和DMA传
57、送不完全并行传送不完全并行 因为因为 有时会有总线竞争的情况发生有时会有总线竞争的情况发生 处理器用总线时可能稍作等待,不会引处理器用总线时可能稍作等待,不会引 起中断,也不引起程序上下文的保存,起中断,也不引起程序上下文的保存, 通常这个过程只有一个总线周期。通常这个过程只有一个总线周期。 导致导致 在在DMA传送时,处理器访问总线速传送时,处理器访问总线速度度 会变慢。会变慢。 对于大量数据对于大量数据I/O传送,传送,DMA技术是很技术是很 有价值的有价值的独立于中央处理器,专门负责数据独立于中央处理器,专门负责数据I/O传传输的处理机输的处理机 它对外设实现统一管理它对外设实现统一管理
58、 代替代替CPU对对I/O操作进行控制操作进行控制 使使CPU和外设可以并行工作和外设可以并行工作 通道又称为通道又称为I/O处理机处理机引入通道的目的引入通道的目的: 为了使为了使CPU从从I/O事务中解脱出来事务中解脱出来 同时为了提高同时为了提高CPU与设备、设备与设备与设备、设备与设备 之间的并行度之间的并行度时钟为计算机完成以下必不可少的工作:时钟为计算机完成以下必不可少的工作: 在多道程序运行环境中,为系统发现在多道程序运行环境中,为系统发现 陷入死循环(编程错误)的作业,防止陷入死循环(编程错误)的作业,防止 机时的浪费机时的浪费 在分时系统中,间隔时钟实现作业间在分时系统中,间
59、隔时钟实现作业间 按时间片轮转按时间片轮转 在实时系统中,按要求的间隔输出正在实时系统中,按要求的间隔输出正 确时间信号给实时的控制设备确时间信号给实时的控制设备(如如A/D、 D/A转换设备)转换设备) 定时唤醒要求延迟执行的各外部事定时唤醒要求延迟执行的各外部事件件 (如定时为各进程计算优先数,银行中(如定时为各进程计算优先数,银行中 定时运行某类结账程序等)定时运行某类结账程序等) 记录用户使用设备时间和记录某外部记录用户使用设备时间和记录某外部 事件发生时间事件发生时间 记录用户和系统所需要的绝对时间,记录用户和系统所需要的绝对时间, 即年、月、日即年、月、日 时钟是操作系统运行的必不
60、可少的时钟是操作系统运行的必不可少的 硬件设施硬件设施时钟,实际上都是硬件时钟寄存器,按时时钟,实际上都是硬件时钟寄存器,按时钟电路所产生的脉冲数对时钟寄存器进行钟电路所产生的脉冲数对时钟寄存器进行加加1或减或减1的工作的工作.绝对时钟:记录当时时间(年、月、绝对时钟:记录当时时间(年、月、 日、时、分、秒)日、时、分、秒) 一般来说,绝对时钟准确,当停一般来说,绝对时钟准确,当停 机时,绝对时钟值仍然自动修改。机时,绝对时钟值仍然自动修改。间隔时钟间隔时钟(相对时钟相对时钟): 通过时钟寄存器实现,设置时通过时钟寄存器实现,设置时 间间隔初值,每经过一个单位间间隔初值,每经过一个单位 时间,时钟值减时间,时钟值减1,直到该值为,直到该值为 负时,则触发时钟中断负时,则触发时钟中断, 并进行并进行 相应中断处理。相应中断处理。硬件时钟:某个寄存器来模拟硬件时钟:某个寄存器来模拟(根据脉冲根据脉冲 频率定时加频率定时加1,减,减1)软件时钟:用作相对时钟,用内存单元来软件时钟:用作相对时钟,用内存单元来 模拟时钟模拟时钟 CPU保护:防止进程得到保护:防止进程得到CPU后不放后不放 弃控制权弃控制权 解决:分配给每个进程一段时间(时解决:分配给每个进程一段时间(时 间片)时间片到,发时钟中断,间片)时间片到,发时钟中断, 控制权交给操作系统控制权交给操作系统