1、第二章操作系统运行环境1第二章 操作系统运行环境第二章操作系统运行环境1n2.1处理机n2.2存储系统n2.3多道程序环境n2.4中断技术n2.5程序的运行第二章操作系统运行环境12.1处理机nCPU从内存中取出指令,对指令解码,执行指令,直至程序执行完毕。n每个CPU基本周期由两个步骤组成:n(1)读入下一条指令,下一条要执行的指令的地址保存在程序计数器(PC)中;n(2)执行当前指令,即从主存储器中取出指令到指令寄存器(IR)并执行指令,PC将自动地增长或改变为转移地址以指明下一条执行的指令。指令的执行周期第二章操作系统运行环境12.1处理机-寄存器n由于指令的执行速度比访问内存的速度要快
2、得多,CPU中设置了一组寄存器寄存器,用来保存关键变量和临时数据。n这组寄存器所存储的信息与程序的执行有很大的关系,构成了处理机现场处理机现场。n当暂停一个正在运行的程序,并启动另一个程序时,操作系统必须保存所有的寄存器信息即保存处理机现场信息,以便稍后继续运行该程序时,可以把这些寄存器信息重新装入寄存器,即恢复CPU现场。第二章操作系统运行环境1寄存器的类型:n1、通用寄存器:可由程序设计者指定许多功能,如存放操作数或用作寻址寄存器。n2、数据寄存器:用以存放操作数。它们作为内存数据的高速缓存,可以被系统程序和用户程序直接使用并进行计算。n3、地址寄存器:用于指明内存地址。如索引寄存器、段寄
3、存器(基址/限长)、堆栈指针寄存器等等。n4、I/O 地址寄存器(I/O AR):用于指定I/O 设备。n5、I/O 缓冲寄存器(I/O BR):用于处理机和I/O 设备交换数据。n6、控制寄存器:用于存放处理机的控制和状态信息。n它至少应该包括程序计数器(PC,Program Counter)和指令寄存器(IR,Instruction Register),中断寄存器以及用于存储器和I/O 模块控制的寄存器。n7、存储器地址寄存器(MAR)、存储器数据寄存器(MBR)第二章操作系统运行环境12.1处理机-指令系统n每个CPU都有一套可执行的专门指令集,称为指令系统,大致可以分为五类:指令类型指
4、令描述数据处理类指令用于执行算术和逻辑运算转移类指令如无条件转移、条件转移、计数转移等用于改变指令执行序列数据传送类指令用于在处理机的寄存器和寄存器、寄存器和存储器单元、存储器单元和存储器单元之间交换数据移位与字符串指令移位分算术、逻辑和循环移位;字符串处理有字符串的传送、比较、查询和转换。I/O 类指令用于启动外围设备,让主存和外围设备之间交换数据。第二章操作系统运行环境1n在多道程序设计环境中,从资源管理和控制程序执行的角度出发,必须把指令系统中的指令分作两类:n特权指令。n那些只能提供给操作系统的核心程序使用的指令,如启动输入输出设备、设置时钟、控制中断屏蔽位、清内存、建立存储键,加载P
5、SW 等。n非特权指令。n操作系统-执行所有指令n用户-执行非特权指令第二章操作系统运行环境12.1处理机-处理机工作状态n根据对系统资源和机器指令的使用权限,把处理机执行时的工作状态分为n核心态核心态n用户态用户态n有的操作系统还将系统程序执行时的机器的状态又分为核态和管态。处理机状态的权限次序是:n核态管态用户态。第二章操作系统运行环境1处理机状态:n1)核态:CPU执行操作系统程序时所处的状态。在此状态下允许CPU使用全部资源和全部指令,其中包括一组特权指令(如涉及外设的I/O、改变处理机状态、修改存储保护的指令),实现对系统资源的分配与管理,为用户提供使用外部设备的服务。n2)管态:管
6、态比核态的权限低,在此状态下允许使用一些用户态下不能使用的资源,但不能使用修改CPU状态的指令。无核态时,管态执行核态的全部功能。n3)用户态:用户程序执行时CPU所处的状态。在此状态下禁止使用特权指令,不能直接使用系统资源与改变CPU状态,并且只能访问用户程序所在的存储空间。第二章操作系统运行环境1n下面两类情况会导致CPU从用户状态向管理状态转换,n(1)程序请求操作系统服务,执行一条系统调用;n(2)程序运行时,产生了一个中断事件,运行程序被中断,让中断处理程序工作。第二章操作系统运行环境12.1CPU-程序状态字(PSW)n计算机如何知道当前处于何种工作状态?这时能否执行特权指令?通常
7、操作系统都引入程序状态字程序状态字PSW(Program Status Word)来区别不同的处理机工作状态。第二章操作系统运行环境1n程序状态字用来控制指令的执行顺序并且保留和指示与程序有关的系统状态,其主要作用是实现程序状态的保护和恢复。n每个正在执行的程序都有一个与其执行相关的PSW,而每个处理机都设置一个程序状态字寄存器。n一个程序占有处理机执行,它的PSW 将占有程序状态字寄存器。第二章操作系统运行环境1PSW寄存器的主要内容:n1)程序基本状态。包括:n(1)程序计数器:指明下一条执行的指令地址;n(2)条件码:表示指令执行的结果状态;n(3)处理机状态位:指明当前的处理机状态。n
8、2)中断码。保存程序执行时当前发生的中断事件。n3)中断屏蔽位。指明程序执行中发生中断事件时,是否响应出现的中断事件。第二章操作系统运行环境12.2存储系统n理想的存储器应满足以下三个条件:n(1)存储器访问的速度应该极为迅速,至少和CPU执行一条指令的速度相当;n(2)存储空间充分大,这样可以同时执行的程序的数量和大小将不受限制;n(3)低成本。n而目前的技术无法同时满足以上三个目标,于是存储系统采用分层的存储结构分层的存储结构:第二章操作系统运行环境1分层的存储系统第二章操作系统运行环境12.3多道程序环境n在多道程序环境中,操作系统具有四个基本特征。n()并发性。并发性是指两个或多个事件
9、在同一时间间隔内发生。n()共享性。所谓共享是指系统中的资源可供内存中多个并发的程序共同使用。共享的两种方式:n)互斥共享n)同时访问。n()异步性。由于资源等因素的限制,使程序的执行通常都不是“一气呵成”,而是以“停停走走”的方式运行。程序以人们不可预知的速度向前推进,即异步性。n()虚拟(Virtual)性所谓“虚拟”,是指通过某种技术把一个物理实体变为若干个逻辑上的对应物。用于实现虚拟的技术,称为虚拟技术。第二章操作系统运行环境1操作系统中实现虚拟技术的两种方式:n()时分复用技术。时分复用,即分时使用方式。虚拟处理机技术、虚拟设备技术都采用这种分时的方式。在虚拟处理机技术中,利用多道程
10、序设计技术,把一台物理上的处理机虚拟为多台逻辑上的处理机,在每台逻辑处理机上运行一道程序,使用户感觉到有多台处理机,我们把用户感觉到的处理机成为虚拟处理机。n()空分复用技术。空分复用,对空间进行划分,提高空间的利用率。虚拟磁盘技术、虚拟存储器技术采用的是空分复用的方式。利用虚拟磁盘技术可以将一个硬盘虚拟为多个虚拟磁盘,使得磁盘的使用方便又安全。采用虚拟存储技术可以从逻辑上扩大内存的容量。第二章操作系统运行环境12.4中断技术n中断需求:n(1)请求操作系统服务n(2)实现CPU 和I/O 设备交换信息使CPU 与I/O 设备并行工作 n(3)处理突发事件 n(4)满足实时要求 第二章操作系统
11、运行环境1n中断中断是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理时间,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续执行或调度新的程序执行的过程。第二章操作系统运行环境1与中断相关的几个概念n中断源中断源:引起中断发生的事件。n中断请求中断请求:中断源向CPU发出的请求中断处理信号 n中断响应中断响应:CPU收到中断请求后转相应的事件处理程序 n中断是现代操作系统实现并发性的基础中断是现代操作系统实现并发性的基础之一。之一。第二章操作系统运行环境1中断的分类n1。按照中断事件的性质按照中断事件的性质,可以分成n(1)强迫性
12、中断事件n(2)自愿性中断事件。第二章操作系统运行环境1强迫性中断事件n强迫性中断事件不是正在运行的程序所期待的,而是由于某种事故或外部请求信息所引起的。n这类中断事件大致有以下几种:n机器故障中断事件。例如,电源故障,主存储器出错等。n程序性中断事件。例如,定点溢出,除数为0,地址越界等。n外部中断事件。例如,时钟的定时中断,控制台发控制信息等。n输入输出中断事件。例如,设备出错,传输结束等。第二章操作系统运行环境1自愿性中断事件n自愿性中断事件是正在运行的程序所期待的事件。n这种事件是由于执行了一条访管指令而引起的,它表示正在运行的程序对操作系统有某种需求,一旦机器执行到一条访管指令时,便
13、自愿停止现行程序而转入访管中断处理程序处理。例如,要求操作系统协助启动外围设备工作。第二章操作系统运行环境1两类中断事件的响应过程 第二章操作系统运行环境1中断的分类n2.按照中断信号的来源,把中断分为外中断和内中断.n外中断,一般又称中断中断,是指来自处理器和主存储器之外的中断,包括:电源故障中断、时钟中断、控制台中断、它机中断和I/O 中断等。n内中断,是指来自处理器和主存内部的中断,一般又称陷入陷入或异常异常,包括:通路校验错、主存奇偶错、非法操作码、地址越界、页面失效、调试指令、访管中断、算术操作溢出等各种程序性中断等。其中访管中断是由机器指令提供的特殊指令,该指令执行时将会引起中断。
14、第二章操作系统运行环境1中断和陷入(外中断和内中断)的区别n(1)中断是由与现行指令无关的中断信号触发的,而陷入则是由处理器正在执行现行指令而引起的n(2)中断处理程序提供的服务不是为当前程序所需,而陷入处理程序提供的服务是为当前程序所用n(3)CPU在两条机器指令之间才可以响应中断,而在一条指令执行中可以响应陷入。第二章操作系统运行环境1 硬中断与软中断硬中断与软中断n上述的内中断与外中断(中断和陷入)要通过硬件来产生中断请求,可以看作硬中硬中断断。n软中断软中断是不必由硬件发信号而能引发的一种中断,它通常是通信进程之间用来模拟硬中断的一种信号通信方式。第二章操作系统运行环境1中断优先级n当
15、有多个中断同时发生时,中断装置根据预先设置的中断优先级响应中断。n一种可能的中断优先级由高到低的顺序是:机器校验中断;自愿性中断;程序性中断;外部中断;输入输出中断;重启动中断。第二章操作系统运行环境1x86 体系结构Windows 的中断请求级 第二章操作系统运行环境1中断的屏蔽n主机可以允许或禁止某类中断的响应 n主机是否允许某类中断,由当前程序状态字PSW中的某些中断屏蔽位来决定。第二章操作系统运行环境1中断的处理过程第二章操作系统运行环境12.5程序的运行库目标模块1目标模块2链接程序装入模块装入程序 编译链接装入内存源程序2源程序1 编译程序符号名(名字空间)逻辑地址(逻辑地址空间)
16、物理地址(物理地址空间)用户程序的处理步骤第二章操作系统运行环境1单道程序环境中的绝对装入方式 n产生的目标代码中直接使用绝对地址,绝对装入程序按照装入模块中的地址,将程序和数据装入内存,无需对模块中的地址部分进行修改,这种装入方式称为绝对装入方式。n目标代码中的绝对地址,有两种方法给出n一种是再编译或汇编时给出,n一种是由程序员在写程序时直接给出。第二章操作系统运行环境1重定位 n在装入时,为了使程序正确运行,必须把装入模块中指令和数据的逻辑地址转换成实际装入内存的物理地址,这种地址转换过程,称为重定位重定位。n根据重定位的时机,重定位可以分为n静态重定位静态重定位n动态重定位动态重定位。第
17、二章操作系统运行环境1静态重定位 n静态重定位:重定位是在装入时由重定位程序一次性完成的。LOAD 1,3000200LOAD 1,13000200100001100013000150005000300010000逻辑地址空间物理地址空间0第二章操作系统运行环境1动态重定位动态重定位n装入模块装入内存后,并不立即进行地址重定位,而是把地址重定位推迟到程序真正要执行时才进行,这种重定位称做动态重定位动态重定位。LOAD 1,3000200LOAD 1,3000200100001100013000150005000300010000逻辑地址空间物理地址空间0100003000逻辑地址重定位寄存器+
18、第二章操作系统运行环境1程序的链接 n链接链接是将编译后得到的各个目标模块以及所需的库函数连接在一起,形成一个完整的装入模块。n链接程序要将各个目标模块中的相对地址和外部调用符号转换成装入模块中的统一的相对地址。第二章操作系统运行环境1程序链接示例 模块 ACALL B;Return;0L-1模块 BCALL C;Return;0M-1模块 CReturn;0N-10模块 AJSR“L”Return;L-1模块 BJSR“L+M”Return;LL+M-1L+ML+M+N-1模块 CReturn;(a)目标模块(b)装入模块 第二章操作系统运行环境1程序链接时需要解决以下两个问题:n1)对相对地址进行修改。n2)变换外部调用符号。第二章操作系统运行环境1根据链接的时间的不同,程序的链接可以分为以下三种方式:n1)静态链接方式:程序运行之前 链接。n2)装入时动态链接方式:在装入内存时边装入边链接的。n3)运行时动态链接。运行时动态链接是指把对某些模块的链接推迟到程序执行时才进行链接。2/7/2023第二章操作系统运行环境1