Operating_System_Chapter-2_Fall_2011

Operating_System_Chapter-2_Fall_2011 - 第2章...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: 第2章 操作系统的运行环境 2.1 2.2 2.5 2.6 2.7 中央处理机 中断技术 存储器与系统堆栈 实时时钟 操作系统的引导过程 IE310, 2-1, Feb. 18th, 2008, [email protected] Shanghai Jiao Tong University 2.1 中央处理机 计算机硬件环境示意 ftp://xqfang:[email protected]/Operating_System IE310, 2-2, [email protected] 2.1 中央处理机 Shanghai Jiao Tong University CPU内部结构示意 时钟驱动 指令提取 代码 Cache 代码 指令解释 快表 复杂 指令 支持 总 线 接口逻 辑 数据 快表 数据Cache 分支 预测 逻辑 超大规 模 数 整 执 行单 元 管道 浮点 多处 理器逻 辑 ftp://xqfang:[email protected]/Operating_System IE310, 2-3, [email protected] Shanghai Jiao Tong University 2.1 中央处理机 2.1.1 几种主要的寄存器 计算机系统的处理器包括一组寄存器,其 个数随机型不同而不同,它们构成了一级 存储,虽然比主存储器容量要小的多,但 是访问速度要快的多。 这组寄存器所存储的信息与程序的执行有 很大的关系,构成了处理器现场。 不同的处理器具有一组不同的寄存器。一 般来说,这些寄存器可以分为以下几类。 ftp://xqfang:[email protected]/Operating_System IE310, 2-4, [email protected] Shanghai Jiao Tong University 2.1 中央处理机 2.1.1 几种主要的寄存器 1.通用寄存器 2.控制寄存器 (1)数据、地址寄存器 (2)段地址寄存器 (3)栈指针寄存器 (1)程序计数器 (2)指令寄存器 (3)程序状态字寄存器 (4)中断寄存器 3. I/O寄存器 4. 存储器接口寄存器 ftp://xqfang:[email protected]/Operating_System IE310, 2-5, [email protected] Shanghai Jiao Tong University 2.1 中央处理机(几种主要的寄存器) 1.通用寄存器 (1)数据、地址寄存器 可由程序设计者指定许多功能,如存放操作数或用作寻址寄 存器。 用以存放操作数时,它们作为内存数据的高速缓存,可以被 系统程序和用户程序直接使用并进行计算。 用于指明内存地址时,它可作为间址、基址、变址寻址时的 地址指针,从而缩短指令长度和指令执行时间,加快CPU的 运算处理速度,同时也给编程带来方便。 因此,高档微机CPU的设计中无不对通用寄存器进行精心设 计。 80286的16位通用寄存器有:AX(累加寄存器)、BX(基址寄 存器)、CX(计数寄存器)、DX(数据寄存器)、SI(来源索引寄 存器)、DI(目的索引寄存器)。 80386以上的处理器则相应扩展为32位寄存器:EAX、 EBX、 ECX、EDX、ESI、EDI。 ftp://xqfang:[email protected]/Operating_System IE310, 2-6, [email protected] 2.1 中央处理机(几种主要的寄存器) Shanghai Jiao Tong University 1.通用寄存器 (2)段地址寄存器 也称段指针 通过对地址分段,存储器被划分成段,这是以字为单位的长 度可变的块。 存储器地址的表示,比如CS:IP: CS:该内存段的段地址(基址) IP:在该段中的偏移量(变址) 段地址的变化相对不频繁,一般总是保存在一个段地址寄存 器中 x86有CS(代码段)、DS(数据段)、ES(附加段)、SS(堆栈段) 等段地址寄存器。 80386还新增了附加区段寄存器:FS、GS。 ftp://xqfang:[email protected]/Operating_System IE310, 2-7, [email protected] 2.1 中央处理机(几种主要的寄存器) Shanghai Jiao Tong University 1.通用寄存器 (3)栈指针寄存器 后入先出的堆栈具有重要的作用 堆栈栈顶的偏移量,适宜保存在一个专门的寄存 器中,该寄存器就是栈指针寄存器。 从而允许使用不包含地址域的指令,如Push(入 栈)、Pop(出栈)。 ftp://xqfang:[email protected]/Operating_System IE310, 2-8, [email protected] 2.1 中央处理机(几种主要的寄存器) Shanghai Jiao Tong University 2.控制寄存器 (1)程序计数器 Program Counter,简称PC 根据基址CS和变址PC确定要取的下一条指令。 也称为指令指针(Instruction Pointer,简称IP), 在32位处理器中为EIP。 ftp://xqfang:[email protected]/Operating_System IE310, 2-9, [email protected] 2.1 中央处理机(几种主要的寄存器) Shanghai Jiao Tong University 2.控制寄存器 (2)指令寄存器 Instruction Register,简称IR IR包含最近取得的指令。 读指令是将指令从代码段寄存器CS与程序计数器 PC所指地址的内存读入至指令寄存器IR。 执行指令则是执行指令寄存器IR中的指令。 指令的读入和执行过程称为一个执行周期(或者指 令周期)。 ftp://xqfang:[email protected]/Operating_System IE310, 2-10, [email protected] 2.1 中央处理机(几种主要的寄存器) Shanghai Jiao Tong University 2.控制寄存器 (3)程序状态字寄存器 Program Status Word,简称PSW PSW用来保存和指示与程序有关的系统状态 主要作用是方便地实现程序状态的保护和恢复。 一部分是条件码:表示指令执行的结果状态,也 称为特征位或标志位,如运算后是否有进位、是 否溢出、结果为0还是为负等。 另一部分是处理机状态位:指明当前的处理机状 态,如程序的优先级、CPU的运行状态(用户态和 系统态)等。 ftp://xqfang:[email protected]/Operating_System IE310, 2-11, [email protected] 2.1 中央处理机(几种主要的寄存器) Shanghai Jiao Tong University 2.控制寄存器 (3)程序状态字寄存器 Pentium的程序状态字 由标志寄存器EFLAGS和指令指针寄存器EIP组成,均为32位 EFLAGS的低16位称FLAGS,分为三组 状态标志:使得一条指令的执行结果影响后面的指令,包 括OF(溢出标志)、SF(符号标志)、ZF(结果为0标志)、 AF(辅助进位标志)、CF(进位标志)、PF(奇偶校验标志)等。 控制标志:DF(方向标志)控制串指令操作,DF为1,即从 高地址向低地址处理串操作;DF为0时,串指令自动增量。 VM(虚拟86方式标志)为1时,从保护模式进入虚拟8086模 式。TF(步进标志)为1时,使处理机执行单步操作。IF(中 断标志)为1时,允许响应中断,否则,关闭中断。 系统标志:共三个,分别是IOPL(I/O特权级标志)、NT(嵌 套任务标志)和RF(恢复标志),被用于保护模式。 ftp://xqfang:[email protected]/Operating_System IE310, 2-12, [email protected] 2.1 中央处理机(几种主要的寄存器) Shanghai Jiao Tong University 2.控制寄存器 (4)中断寄存器 包括中断码和中断屏蔽位 中断码保存程序执行时当前发生的中断事件。 中断屏蔽位指明程序执行中发生中断事件时,是 否响应出现的中断事件。 ftp://xqfang:[email protected]/Operating_System IE310, 2-13, [email protected] 2.1 中央处理机(几种主要的寄存器) Shanghai Jiao Tong University 2.1.1 几种主要的寄存器 3. I/O寄存器 该组寄存器一般包括I/O地址寄存器(I/O AR),用 于指定一个特定的I/O设备; I/O缓冲寄存器(I/O BR)用于在I/O模块和处理器间 交换数据。 ftp://xqfang:[email protected]/Operating_System IE310, 2-14, [email protected] 2.1 中央处理机(几种主要的寄存器) Shanghai Jiao Tong University 2.1.1 几种主要的寄存器 4. 存储器接口寄存器 该组寄存器一般包括存储器地址寄存器(MAR)和存 储器缓冲寄存器(MBR)。 存储器地址寄存器确定下一次读写的存储器地址 存储器缓冲寄存器包含要写入存储器的数据或者 从存储器中读取的数据。 ftp://xqfang:[email protected]/Operating_System IE310, 2-15, [email protected] Shanghai Jiao Tong University 2.1 中央处理机(处理器状态及特权指令) 2.1.2 处理器状态及特权指令 用户一般不可以直接把数据写到操作系统的数 据区 处理器为了能够拒绝上述非法写入,必须能够 知道当前是操作系统还是一般用户在其上运行。 怎么来实现这个功能?这就依赖于处理器状态 的标志。 特定的资源和机器指令,处理器必须在特定的 状态才能访问和执行。 不同的程序具有不同的权限,处理器在与之相 应的状态下工作。 ftp://xqfang:[email protected]/Operating_System IE310, 2-16, [email protected] Shanghai Jiao Tong University 2.1 中央处理机(处理器状态及特权指令) 1. 处理器状态 处理器状态又称为处理器的运行模式,大多数系统把 处理器状态简单划分为: 用户态(user mode) ,又称目标态(简称目态)或常规态(简称 常态) 系统态(system mode) ,又称特权态(privileged mode),有 时还被进一步划分为如下两个状态: 核态 管态 当处理器处于系统态时,可以执行全部指令,使用所 有资源,并具有改变处理器状态的能力; 当处理器处于用户状态时,只能执行非特权指令;那 么如何改变处理器状态呢?请参见稍后的”处理器状态 的转换” 。 硬件在特殊寄存器中提供一个或者若干个状态位,来 表示目前的执行状态。譬如,规定0表示系统态,则1 表示用户态。 ftp://xqfang:[email protected]/Operating_System IE310, 2-17, [email protected] Shanghai Jiao Tong University 2.1 中央处理机(处理器状态及特权指令) 2. 特权指令 指令系统被分作两个部分:特权指令和非特权指令。 所谓特权指令是指那些只能在系统态下才能正常执行 的指令,一般提供给操作系统的核心程序使用,如启 动I/O设备、设置时钟、允许/禁止中断、加载PSW、 CPU暂停Halt指令、改变处理器状态等。 用户程序运行在用户态,只能执行非特权指令(指令 系统的一部分)。 操作系统运行在系统态,可执行全部指令(特权指令 和非特权指令)。 比如,一个房间在由客人借住的状态下,客人的使用 方式将有较大的限制,不可以打开保险箱。 ftp://xqfang:[email protected]/Operating_System IE310, 2-18, [email protected] Shanghai Jiao Tong University 2.1 中央处理机(处理器状态及特权指令) 3. 处理器状态的转换 从用户态向系统态转换,有三种情况: 一是用户程序运行期间产生硬件中断,CPU转而执行中断服 务程序; 二是用户程序使用系统调用(软件中断之陷阱)来请求操作系 统服务,系统调用通过访管中断使CPU转入系统态,转而执 行操作系统的中断服务程序; 三是用户程序出错或者出现非法指令、特权指令(软件中断 之异常),使CPU转入系统态,转而执行操作系统的中断处理 程序。 作为前面所述的操作系统中断服务程序的最后一条语 句,必然是一条特权指令——中断返回,它使得CPU 从系统态返回到用户态。 ftp://xqfang:[email protected]/Operating_System IE310, 2-19, [email protected] Shanghai Jiao Tong University 2.1 中央处理机 2.1.3 保护模式下的主要特点 32位x86 CPU提供了以下三种工作模式: 实模式(Real Mode) 保护模式(Protected Mode) 16位模式 地址线只有低20位有效,只能寻址第1个1MB的内存空间 无保护功能,不支持分页 全部地址线都可以用来寻址 支持动态分页和分段机制 使用描述符表中的段描述符来表示32位段基地址、段长度以及访问权限(属性)。 段寄存器的值包含标明处理机态(核态或用户态等)的信息、TI一个指向描 述符表的选择符,而地址转换所需要的地址高位则放在该描述符表中。 利用CS段寄存器,首先要确定当前程序处于哪个保护级别,在允许访问的情况 下才能进一步完成地址映射,否则将产生中断/拒绝访问。 虚拟86模式(Virtual Mode) ftp://xqfang:[email protected]/Operating_System IE310, 2-20, [email protected] Shanghai Jiao Tong University 2.1 中央处理机(保护模式下的主要特点) 32位x86CPU三种工作模式的确定: 由CPU中的控制寄存器CR0的PG和PE两位的状 态值决定: PE PG 工作模式 0 0 实模式 0 1 V86模式,不支持分段,支持分页 1 0 保护模式,支持分段,不支持分页 1 1 保护模式,支持分段,支持分页 ftp://xqfang:[email protected]/Operating_System IE310, 2-21, [email protected] Shanghai Jiao Tong University 2.1 中央处理机(保护模式下的主要特点) 80386有8个32位通用寄存器EAX、EBX、ECX、EDX、 ESI、EDI、EBP和ESP,都可分别以32位或16位寄存器 使用,用于16位时,其名称前面不加E,比如AX、BX等。 80386有6个16位段寄存器,分别是:CS、DS、ES、SS、 FS、GS,其中CS是代码段,SS是堆栈段,其余是数据 段。每个16位段寄存器都有一个与之对应的64位段描述 符高速缓冲器,对用户是不可见。每个16位段寄存器的: 最低两位为特权级标志RPL,00(0级)最高,11(3级)最低 第2位为段描述符表的指示开关TI,为1表示选择段局部描述符 表LDT,否则表示选择段全局描述符表GDT 剩余部份为段描述符索引,给出在LDT或GDT中的索引 ftp://xqfang:[email protected]/Operating_System IE310, 2-22, [email protected] Shanghai Jiao Tong University 2.1 中央处理机(保护模式下的主要特点) RPL ftp://xqfang:[email protected]/Operating_System IE310, 2-23, [email protected] Shanghai Jiao Tong University 2.1 中央处理机(保护模式下的主要特点) 标志寄存器EFLAGS是一个32位寄存器, 其低16位为FLAGS,用于实模式方式,与 8086兼容。 IOPL:I/O特权值,用于指明在保护模式 下不产生异常中断13而执行I/O指令所要 求的最大CPL(当前特权级)的允许值 VM:V86模式标志位,该位为1表示当前 工作在虚拟86模式下。 ftp://xqfang:[email protected]/Operating_System IE310, 2-24, [email protected] Shanghai Jiao Tong University 2.1 中央处理机(保护模式下的主要特点) ftp://xqfang:[email protected]/Operating_System IE310, 2-25, [email protected] Shanghai Jiao Tong University 2.1 中央处理机(保护模式下的主要特点) 系统级寄存器包括4个段基地址寄存器GDTR、IDTR、LDTR、TR和 5个控制寄存器CR0、CR1、CR2、CR3、CR4。只能由特权级为0的 系统程序访问,这些寄存器都由操作系统核心维护和使用。 Pentium CPU维护和管理主存中的4类系统表 全局描述符表GDT,由全局描述符表寄存器GDTR中的基地址指向 中断描述符表IDT,由中断描述符表寄存器IDTR中的基地址指向 局部描述符表LDT 任务状态描述符表TSS。 LDT和TSS是每个任务各一个,系统中可以存在多个LDT和TSS。但 任何时候都只有一个GDT和一个IDT。 每个表(段)的基地址、表(段)限、属性等以描述符的形式登记在 GDT中。 当前使用的LDT和TSS分别由局部描述符表寄存器LDTR和任务寄存 器TR(各为16位),以选择符形式给出。系统以指定的选择符查找 GDT,读取相应的描述符并装入各自相应的描述符高速缓存器,就 可以得到当前任务的LDT和TSS的基地址以及界限和属性等信息。 ftp://xqfang:[email protected]/Operating_System IE310, 2-26, [email protected] Shanghai Jiao Tong University 2.1 中央处理机(保护模式下的主要特点) CR0寄存器有系统控制位,用于控制操作模式 或指示处理机正常工作的状态: PE — 保护模式允许位 PG — 分页控制位,该位为1表示允许分页工作模式, 为0则禁止分页。当PG位为1允许分页时,CR2、 CR3控制寄存器有效。 CR2控制寄存器:当产生页故障中断(缺页中断)时, 最后访问页面的32位线性地址保存于CR2控制寄 存器中。 CR3控制寄存器:其高20位是页目录表基地址的 高20位。此基地址的低12位全为0,故页目录表 基地址必须以4KB为边界。 ftp://xqfang:[email protected]/Operating_System IE310, 2-27, [email protected] Shanghai Jiao Tong University 2.1 中央处理机(保护模式下的主要特点) ftp://xqfang:[email protected]/Operating_System IE310, 2-28, [email protected] Shanghai Jiao Tong University 2.1 中央处理机(保护模式下的主要特点) Pentium具有以下三种不同的特权级(PL)描述形式: 选择符特权级RPL-也称为请求特权级,使用段选择符 中的b1和b0两位标识本次访问所要求的特权级。 描述符特权级DPL-使用段描述符中的b46和b45两位, 以此表示该段所具有的特权级。 当前特权级CPL-指当前CPU正在执行的代码段的特权 级。它既是CS寄存器(段选择符)的b1和b0两位的值, 也是当前该代码段的DPL(段描述符的b46和b45两位) 值。 Pentium特权级的最大范围为0~3级,可以表示4 个不同的保护级,其中0级最高,提供操作系统 核心使用,3级最低,提供用户进程使用。 特权级的值只能由操作系统在进程调度时予以 设置,属于特权指令。 ftp://xqfang:[email protected]/Operating_System IE310, 2-29, [email protected] Shanghai Jiao Tong University 2.2 中断技术 2.2.1 中断的概念 在计算机运行过程中,下面的事件是很常见的: 敲击键盘、点击鼠标、电源掉电、硬件故障、 蓝屏和请求操作系统服务等。 此外,在现代工业控制系统中,也必须及时将 传感器传来的温度、湿度、距离、压力等信息 送给计算机。 这些事件都可称为“中断事件”,它们会定时 或随机地出现。 所以,为了提高系统效率,处理突发事件,满 足实时要求,中断概念被提出来了。 ftp://xqfang:[email protected]/Operating_System IE310, 2-30, [email protected] 2.2 中断技术(中断的概念) Shanghai Jiao Tong University 2.2.1 中断的概念 中断是指系统运行过程中,发生某事件后使 得CPU中止当前程序,转而执行该事件的服务 程序,待处理完毕后又返回被中断点继续执 行原程序(或调度新的进程)执行的过程。 前述“中断事件”也被称为“中断源”。 中断机制的作用 中断使得计算机系统能够快速响应并处理随机事 件,使得CPU与I/O可以并行工作。 中断是现代操作系统的多道性和并发性的实现基 础之一。 ftp://xqfang:[email protected]/Operating_System IE310, 2-31, [email protected] 2.2 中断技术(中断的概念) Shanghai Jiao Tong University 2.2.1 中断的概念 引发中断的事件称为中断源 实现中断响应过程的硬件称为中断装置 处理该事件的程序称为中断服务程序 完成中断全过程的硬件和软件统称为中断系 统。 中断时程序当前刚刚执行完毕的指令地址为 断点,中断返回后继续执行的下一条指令地 址为返回点 。 ftp://xqfang:[email protected]/Operating_System IE310, 2-32, [email protected] Shanghai Jiao Tong University 2.2 中断技术 2.2.2 中断源类型 根据中断源产生的条件,可把中断分为外中 断和内中断。 外中断是指来自主机(CPU和内存)外部的中断, 包括键盘中断、鼠标中断、各种定时器引起 的时钟中断、外设中断、电源掉电等。 一般来说,中断指的就是外中断,很可能无 法预测它们什么时候会发生,往往具有随机 性。因此,主机对这些中断的反应是完全被 动的。 ftp://xqfang:[email protected]/Operating_System IE310, 2-33, [email protected] 2.2 中断技术(中断源类型) Shanghai Jiao Tong University 2.2.2 中断源类型 内中断主要指在主机内部产生的中断,又称软件中断。 一般来说,也可以理解为系统运行过程中软件(或者 具体地说程序)中发生错误或特殊事件而引起的中断。 程序错误包括地址非法、数据校验错、存取访问控制 错、算术操作溢出、数据格式非法、除数为零、非法 指令、调试程序设置的断点所引起的调试中断等; (不小心发生未曾意想到的错误异常exception) 特殊事件包括用户程序调用系统调用使系统从用户态 切换到核心态、分时系统中时间片结束以及页面失效 等,一般并没有发生错误。 (主动投怀送抱、期望陷入其中陷阱trap) ftp://xqfang:[email protected]/Operating_System IE310, 2-34, [email protected] 2.2 中断技术(中断源类型) Shanghai Jiao Tong University 2.2.2 中断源类型(根据产生的条件,中断一般如下划分为) 外中断-指来自主机(CPU和内存)外部的中断--往往具有随机性 电源掉电 各种定时器引起的时钟中断 键盘中断 鼠标中断 其它外设引起的外部硬件中断 一般不单独划分出 “机器故障中断”类 型 内中断-在主机内部产生的中断,也就是软件中断 异常--不小心发生未曾意想到的错误 地址非法 数据校验错 存取访问控制错 算术操作溢出 数据格式非法 除数为零 非法指令 单步调试断点 陷阱--主动投怀送抱、期望陷入其中、一般并没有发生错误 系统调用 时间片结束 缺页中断 ftp://xqfang:[email protected]/Operating_System IE310, 2-35, [email protected] Shanghai Jiao Tong University 2.2 中断技术 2.2.3 中断请求响应处理过程 1. 中断请求处理硬件 每个能发出(外)中断请求的硬件设备控制 器皆有一条中断请求线IRQ(interrupt request)。 这些请求线连接到中断控制器。 在Intel结构下常用的就是Intel 8259A。 ftp://xqfang:[email protected]/Operating_System IE310, 2-36, [email protected] Shanghai Jiao Tong University 2.2 中断技术(中断请求响应处理过程) 1. 中断请求处理硬件 两片Intel 8259A级联 从片的INT连接到主片的IRQ2 主片的INT连接到CPU 两片8259A监视中断源,识别为中断向量 向量值存储在中断控制器的I/O端口寄存器中, 使CPU稍后可以读取到此向量值 主片置INT信号有效,向CPU发出中断请求 等待CPU响应,清除INT信号 ftp://xqfang:[email protected]/Operating_System IE310, 2-37, [email protected] Shanghai Jiao Tong University 2.2 中断技术(中断请求响应处理过程) 2. 中断响应 采用了中断向量表 一个中断向量可能同时为多个外设服务。 此时需要采用中断链表(interrupt chaining) 。这 里,每个向量的记录都指向一个链表,一个中断 向量可以挂接多个中断服务程序。 当中断发生时,逐个检查,选出适合的程序。 每个具体的中断服务程序:首先,一开始都是检 查各自的中断源,如读取相应设备的中断状态寄 存器,看是否有中断请求,如果没有就立刻返回, 这一过程只有几条机器指令;其次,每个队列中 的服务程序一般不会太多。 ftp://xqfang:[email protected]/Operating_System IE310, 2-38, [email protected] Shanghai Jiao Tong University 2.2 中断技术(中断请求响应处理过程) 3. 中断处理过程 1)当发中断事件时,检查响应中断的条件是否满足。 若有中断请求,并且CPU允许中断,则继续处理,否 则不响应。 2)CPU关中断,使其进入不可再次响应中断的状态。 3)保存现场。中断装置将PSW和指令指针(IP)等寄存器 的内容存放到主存缺省单元,比如压入堆栈。 4)确定中断处理例程。在多个中断请求同时发生时,从 优先级最高的中断开始处理。 5)转向中断处理例程。正式进行中断处理。 6)退出中断,恢复被中断进程的现场或调度新进程占据 CPU。此过程与3)相反,一般是将暂存在主存单元的 PSW和指令指针(IP)等寄存器的内容存回相关寄存器。 7)开中断,CPU继续执行。 ftp://xqfang:[email protected]/Operating_System IE310, 2-39, [email protected] Shanghai Jiao Tong University 2.2 中断技术 2.2.4 中断的优先级和多重中断 1. 中断的优先级 在计算机执行的每一瞬间,可能有几个中断事件 同时发生。例如,由非法指令引起程序性中断的 同时可能发生外部中断要求。 这时,中断装置如何来响应这些同时发生的中断 呢? 一般说,中断装置按照预定的顺序来响应,这个 预定的顺序称为中断的优先级,中断装置首先响 应优先级高的中断事件。 ftp://xqfang:[email protected]/Operating_System IE310, 2-40, [email protected] Shanghai Jiao Tong University 2.2 中断技术(中断的优先级和多重中断) 2. 中断的屏蔽 中断源据此可以分成两类,一类是不可屏蔽 中断,如电源掉电,CPU不能禁止响应,在任 何情况下,发生这些中断,CPU都要响应; 另一类是可屏蔽中断,通常PSW的一些位指 示某个可屏蔽中断源是否被禁止,也即该中 断源是否被屏蔽,CPU可据此来确定是否给予 响应。 ftp://xqfang:[email protected]/Operating_System IE310, 2-41, [email protected] Shanghai Jiao Tong University 2.2 中断技术(中断的优先级和多重中断) 3. 多重中断事件的处理 (1)正在处理一个中断时,禁止再发生中断, 也即CPU对任何新的中断请求信号都不予理睬。 如果发生了中断,一般只将它挂起,直到CPU 再次允许中断时,再由CPU检查有没有挂起的 中断并进行分析来决定是否响应; (2)中断嵌套。通过对中断设定优先级,允许 高优先级的中断可以再次中断已经开始执行 的低优先级的中断处理程序。直到高优先级 的中断处理结束后,再回过来继续低优先级 的中断处理。 ftp://xqfang:[email protected]/Operating_System IE310, 2-42, [email protected] Shanghai Jiao Tong University 简述(硬)中断、陷阱(和异常)、软中断(信号Signal以后出现于进程间通信) 之间的异同。 (硬)中断一般即指外中断,指来自处理机和内存外部的中断,包括I/O设备 发出的I/O中断、外部硬件设备中断、各种定时器引起的时钟中断等。 陷阱(和异常)即内中断,主要指在处理机和内存内部产生的中断。它包括 程序运算引起的各种错误以及调试程序中设置的断点。 软中断是通信进程之间用来模拟(硬)中断的一种信号Signal通信方式。 (硬)中断和陷阱(和异常)的主要区别: 2.2 中断技术 1、陷阱(和异常)通常由处理机正在执行的现行指令引起,而(硬)中断则是由与 现行指令无关的中断源引起的。 2、陷阱(和异常)处理程序提供的服务为当前进程所用,而(硬)中断处理程序提 供的服务则往往不是为了当前进程的。 3、CPU在执行完一条指令之后,下一条指令开始之前响应(硬)中断,而在一条 指令执行中也可以响应陷阱(和异常) 。 4、在有的系统中,陷阱(和异常)处理程序被规定在各自的进程上下文中执行, 而(硬)中断处理程序则在系统上下中执行。 软中断与(硬)中断的比较: 相同点:中断源发中断请求或软中断信号后,CPU或接收进程在适当的时机自 动进行中断处理,完成软中断信号所对应的功能。 不同点:接收软中断信号的进程在接收时不一定正好占有处理机,而相应的处 理必须等到该接收进程得到处理机之后才能进行(每次上班后必须立刻处理的第 一件事)。 ftp://xqfang:[email protected]/Operating_System IE310, 2-43, [email protected] Shanghai Jiao Tong University 2.5 存储器与系统堆栈 2.5.1 存储器体系结构 存储器的层次结构与它的设计目标有关。 目标一般可分解为三个:容量、速度和价格。 容量,可以从0到无限大,只要有容量,就能开发出应用程序来 使用; 速度问题,一般而言,应该能尽量跟得上CPU的速度,也就是 说,不希望CPU因等待指令或数据而暂停太长的时间; 价格也是一个实际的问题,应该尽量合理(即可以承受)。 通常,速度越快的存储介质,单位容量的价格越高。如果预算 一定,选择速度快的,容量太少;选择价格低的,容量要大, 则速度太慢。 这时,解决方案是:不依赖于某一种介质,而是建立存储器体 系,用少量价格高、速度快的与大量价格低、速度相对较慢的 存储器相结合,以求得性能的平衡:尽量接近最快的存储器的 速度,同时保证存储器的总容量足够大。 不太恰当的例子,一个大公司里面有很多不同档次的车辆。 ftp://xqfang:[email protected]/Operating_System IE310, 2-44, [email protected] Shanghai Jiao Tong University 2.5 存储器与系统堆栈(存储器体系结构) 典型的存储器层次体系结构。 ftp://xqfang:[email protected]/Operating_System IE310, 2-45, [email protected] Shanghai Jiao Tong University 2.5 存储器与系统堆栈(存储器体系结构) 一般地,讨论任意两级相邻的存储器,定义命 中率(hit ratio)H表示在CPU存取数据时,有多少 内容能直接在一级存储器内找到而不必存取二 级存储器。 假设一级存取一个字的时间为1ns,二级存取一 个字的时间为10ns,H为90%,则有 90%*1ns+(1-90%)*(1+10)ns=2ns。 表示,命中率大于90%时,该存储器存取速度 可以小于2ns。 ftp://xqfang:[email protected]/Operating_System IE310, 2-46, [email protected] Shanghai Jiao Tong University 2.5 存储器与系统堆栈(存储器体系结构) CPU内部存储器 寄存器 片内高速缓冲Cache 访问CPU内部存储器无须通过数据总线,访问主 存需要通过数据总线 利用访问局部性原理在CPU和主存之间设置高速 缓冲Cache,以临时存放或缓存主内存的内容, 让80-90%的数据能够在Cache中找到。 处理器内置高速缓存 缓存指令、缓存数据 ftp://xqfang:[email protected]/Operating_System IE310, 2-47, [email protected] Shanghai Jiao Tong University 2.5 存储器与系统堆栈(存储器体系结构) 板内存储器 主机板上的存储器 主板上的称为主存或内存 显示卡上的独立存储器称为显存 网卡控制器也会配置一定容量的存储 器,以缓存收发的数据 可分为RAM(DRAM/SRAM)和ROM ftp://xqfang:[email protected]/Operating_System IE310, 2-48, [email protected] Shanghai Jiao Tong University 2.5 存储器与系统堆栈(存储器体系结构) 板外存储器 长时间保存大批量数据 磁盘 光盘 离线存储器 磁带机与磁带库 大容量数据异地备份 ftp://xqfang:[email protected]/Operating_System IE310, 2-49, [email protected] Shanghai Jiao Tong University 2.5 存储器与系统堆栈 2.5.2 堆栈 堆栈是中断处理和过程调用中很重要的概念,也操 作系统中很重要的概念。 堆栈是中断和过程的调用与返回管理中的最常用技术。 堆栈是存储器中特定区域的特殊组织形式,是一个有 序的数据集合,一次只能访问一个元素,访问点称作 栈顶,栈中的元素数目,或称栈的长度是可变的。只 能在栈顶添加或删除数据项。 基于这个原因,栈也称作下推表(pushdown)或后进先 出(last-in-first-out,简称LIFO)表,好比向一个筒子里 放东西(比如网球筒/但不是羽毛球筒),当前能取到的 总是最后放进去的,而最先放进去的要最后才能取到。 ftp://xqfang:[email protected]/Operating_System IE310, 2-50, [email protected] Shanghai Jiao Tong University 2.5 存储器与系统堆栈(堆栈) 堆栈的三要素 1)栈指针,也就是栈顶地址。如果往栈中添加(push) 或删除(pop)一项,这个指针减1或加1,以指向新 的栈顶地址。 2)栈底,也就是堆栈区域保留块的始端单元的地址, 或者说往空栈添加一项时所用到的第一个单元。如 果对一个空栈进行pop操作,则发生错误。 3)栈界限,也就是堆栈区域保留块的末端单元的地 址,或者说从满栈删除一项时首先被删除的那个单 元。如果对一个满栈进行push操作,则发生错误。 ftp://xqfang:[email protected]/Operating_System IE310, 2-51, [email protected] Shanghai Jiao Tong University 2.5 存储器与系统堆栈(堆栈) 在现在的大多数计算机中, 栈底是保留的栈块的高端 地址,而栈界限是低端地 址。 这样,栈(的使用区域)往往 是从高端地址向低端地址 扩展增长的。 堆栈被用来管理中断和过 程的调用与返回,特别地, 使得交换可变数目的参数 变得非常方便。 高地址-栈底 Pop-栈指针上移 栈指针 Push-栈指针下移 低地址-栈界限 ftp://xqfang:[email protected]/Operating_System IE310, 2-52, [email protected] Shanghai Jiao Tong University 2.6 实时时钟 大部分计算机的时钟与定时器提供3种基 本功能: 提供当前时刻。 提供两个时刻之间的时间差。 设置定时器在某时间触发某操作。 ftp://xqfang:[email protected]/Operating_System IE310, 2-53, [email protected] Shanghai Jiao Tong University 2.6 实时时钟 可编程化的硬件定时器能够设置一段时间后产生中断 当一个进程连续运行时间超过一定程度时,操作系统 的调度程序就会使用该时间片(time slice)结束时所产 生的中断,强制地调度其它进程来运行 如果没有时钟,就失去了与时间有关的调度的依据和 时机 一旦某个进程陷入死循环,而又没有任何系统调用执 行,也没有外设中断,整个系统就会”死机” 只有定时中断是可以预测、必定发生的 抢占式系统 ftp://xqfang:[email protected]/Operating_System IE310, 2-54, [email protected] Shanghai Jiao Tong University 2.7 操作系统的引导过程 BIOS-Basic Input/Output System, ROM 系统自检,显卡、内存等 硬件设备检测,硬盘、CD-ROM、串口等其它标 准硬件设备 更新ESCD-Extended System Configuration Data,以备传递给操作系统 引导操作系统 硬盘主引导记录 分区表,主活动分区 分区引导记录 读取操作系统的引导文件 ftp://xqfang:[email protected]/Operating_System IE310, 2-55, [email protected] Shanghai Jiao Tong University 小结一 本章介绍了操作系统赖以活动的运行环境,即 它的硬件环境 用户和其它所有软件,均借助操作系统操作计 算机硬件环境 硬件环境提供了基本的可计算性资源,包括: 处理机 寄存器 存储器 各种I/O外部设备 中断机构 堆栈 实时时钟 … ftp://xqfang:[email protected]/Operating_System IE310, 2-56, [email protected] Shanghai Jiao Tong University 处理机提供了两种工作状态: 系统态,特权态 用户态,目标态,目态,常规态,常态 内存 外存 系统堆栈的作用: 核态 管态 在系统态下可以执行指令集中的全部的指令 在用户态下仅可以执行指令集中的一部分有限的指令 操作系统要使用一定的存储空间,分为: 小结二 保护中断现场 保存子程序调用期间需要传递的参数和返回值 时钟能够按照固定的时间间隔产生中断信号,利于操作系统实施调 度策略、实时控制和延时操作等功能 中断机构是操作系统实现并发的硬件基础,没有中断技术,也就没 有操作系统的多道程序设计技术 ftp://xqfang:[email protected]/Operating_System IE310, 2-57, [email protected] Shanghai Jiao Tong University 课后任务 (课后自行思考/下次上课课堂回答) 1. 2. 3. 4. 5. 6. 7. 8. 处理机的态最少要分为几个态?为什么? 80386 CPU提供了哪几种工作模式?如何判断CPU当 前处于何种工作模式? 什么是中断?它在操作系统中所起的作用是什么? 中断一般是如何划分的? 当打印机结束打印时产生的中断属于哪种中断?当程 序执行过程中因程序出错产生的中断又属于哪种中断? 中断过程由硬件和软件配合完成,其中硬件和软件分 别完成中断过程中的哪些部分? 堆栈的三要素是什么?为什么说堆栈是一个后进先出 表?堆栈的作用是什么? 为什么说时钟是操作系统运行必不可少的? ftp://xqfang:[email protected]/Operating_System IE310, 2-58, [email protected] Shanghai Jiao Tong University 1. 2. 3. 4. 5. 6. 7. 8. 课后课程设计任务 自学第9章Linux应用基础; 自学第10章Linux的操作命令界面与内核编译; 练习实验1 实验环境与Linux操作系统的安装 (虚拟机、红帽子Linux安装、虚拟网卡的安装); 练习实验2-1 Linux的键盘命令; 练习实验2-2 Linux的图形界面; 练习实验2-3 Linux的批处理; 练习实验3-1 Linux进程的创建与父子进程同步; 练习实验3-2 Linux子进程映像的重新加载; ftp://xqfang:[email protected]/Operating_System IE310, 2-59, [email protected] ...
View Full Document

{[ snackBarMessage ]}

Ask a homework question - tutors are online