第二章 操作系统的逻辑结构 (一) 操作系统逻辑结构 (二) 处理机的状态 (三) 异常和中断 (四) 必要的硬件支撑
(一) 操作系统逻辑结构
(二) 处理机的状态 1. 设置处理机状态的目的 为操作系统建立一个保护环境,采用的方法是区分处理机的工作状态。 系统中有两类程序: (二) 处理机的状态 1. 设置处理机状态的目的 为操作系统建立一个保护环境,采用的方法是区分处理机的工作状态。 系统中有两类程序: 管理程序 用户程序 管理系统资源 使用资源、提出申请 控制程序运行 被控制 2. 什么是处理机的态 中央处理机的工作状态,当前它正在执行哪类程序,决定处理机的态。
3. 处理机态的类别 (1)核态(Kernel mode) 操作系统的管理程序执行时机器所处的状态。 使用全部指令(包括一组特权指令) 使用全部系统资源(包括整个存储区域) (2)管态(Supervisor mode) 管态比核态的权限低,在此状态下允许使用一些用户态下不能使用的资源,但不能使用修改CPU状态的指令。 无核态时,管态执行核态的全部功能。
用户程序执行时机器所处的状态。在此状态下禁止使用特权指令,不能直接取用资源与改机器状态,并且只允许用户程序访问自己的存储区域。 (3)用户态(User mode) 用户程序执行时机器所处的状态。在此状态下禁止使用特权指令,不能直接取用资源与改机器状态,并且只允许用户程序访问自己的存储区域。 管态 用户态 操作系统的程序执行 用户程序执行 使用全部指令 禁止使用特权指令 (包括一组特权指令) 使用全部系统资源 只允许用户程序访问 (包括整个存储区域) 自己的存储区域 处理机的状态是变化的,它有时会处于用户态,有时会处于管态。
4. 特权指令集 改变机器状态的指令 修改特殊寄存器的指令 涉及外部设备的输入/输出指令 允许和禁止中断; 在核态下操作系统可以使用所有指令,包括一组特权指令。 改变机器状态的指令 修改特殊寄存器的指令 涉及外部设备的输入/输出指令 允许和禁止中断; 在进程之间切换处理机; 存取用于内存保护的寄存器; 执行输入和输出操作; 停止一个中央处理机的工作。
(三) 异常和中断 异常——Exception 中断——Interrupt ReQuest (IRQ) i386的异常和中断 Exceptions and interrupts are both "protected control transfers," which cause the processor to switch from user to kernel mode (CPL=0) without giving the user-mode code any opportunity to interfere with the functioning of the kernel or other environments. In Intel's terminology, an interrupt is a protected control transfer that is caused by an asynchronous event usually external to the processor, such as notification of external device I/O activity. An exception, in contrast, is a protected control transfer caused synchronously by the currently running code, for example due to a divide by zero or an invalid memory access.
(三) 异常和中断(续) 异常(Exception)在i386中与trap是一个意思,但中文翻译的时候往往翻译成异常或陷阱,其实也是一个意思 异常是由于程序的行为(如除0错、缺页等)导致的同步事件,必须由计算机立刻处理。处理完成后,回到程序发生异常处继续执行。 中断是指某个事件(例如键盘输入、I/O传输结束等)发生时,系统中止现行程序的运行、引出处理事件程序对该事件进行处理,处理完毕后返回现行程序的下一条指令,继续执行。
(三) 异常和中断(续) i386的异常/中断表
(三) 异常和中断(续) 一. 中断处理
(三) 异常和中断(续) 中断源:引起中断的事件称中断源,如打印完成中断,其中断源是打印机。 断点:发生中断时正在运行的程序被暂时停止,程序的暂停点称为断点。例如,某程序正在执行0200地址的指令被中断,那么,0200地址就是断点, 在中断返回时就执行0200的下一条指令。
(三) 异常和中断(续) 中断响应:是处理机发现有中断请求时,中止现运行程序的执行并自动引出中断处理程序的过程。 中断由软硬件协同处理 中断装置:指发现中断,响应中断的硬件 中断处理程序:由软件来完成 中断系统 = 中断装置 + 中断处理程序
二. 中断类型 按中断功能分类 (1)输入输出中断: I/O传输结束或出错中断。 (2)外中断: 时钟中断、操作员控制台中断、通信中断等。 (3)访管中断(Syscall): 对操作系统提出某种需求时发出的中断称为访管中断。
二. 中断类型 按中断是否可屏蔽 (1) 不可屏蔽中断(NMI) (2)可屏蔽中断
三. 中断进入 对中断请求的整个处理过程称为中断处理,它是由软、硬件结合形成的一套中断机构实施的。
1. 保护现场和恢复现场 (1)现场 是指在中断的那一时刻能确保程序继续运行的有关信息。 主要包括—— 后继指令所在主存的单元号 程序运行所处的状态(PSW,EFLAGS in i386) 指令执行情况 以及程序执行的中间结果等
(2)保护现场 (3)恢复现场 当中断发生时,必须立即把现场信息保存在主存中,这一工作称之为保护现场。 程序重新运行之前,把保留的该程序现场信息从主存中送至相应的指令计数器、通用寄存器或一些特殊的寄存器中。完成这些工作称为恢复现场。
2. 程序状态字(PSW) (1)什么是程序状态字 程序状态字是反映程序执行时机器所处的现行状态的代码。 主要内容包括—— 程序现在应该执行哪条指令 当前指令执行情况 机器处于何种程序状态 程序在执行时应该屏蔽哪些中断 寻址方法、编址、保护键 响应中断的内容
(2)程序状态字的例子 I386 IBM370机 PDP 11系列机 CS、EIP EFLAGS (思考:CS、EFLAGS包含哪些字段?为什么要保存这些字段?) IBM370机 程序状态字内容 PSW寄存器 PDP 11系列机 程序状态字内容 PC 指令计数器 PS 处理器状态寄存器
3. 什么是中断响应 (1)什么是中断响应
中断响应是当中央处理机发现已有中断请求时,中止现行程序执行,并自动引出中断处理程序的过程。 (1)什么是中断响应 中断响应是当中央处理机发现已有中断请求时,中止现行程序执行,并自动引出中断处理程序的过程。 中断响应过程: 保留程序断点及处理机有关信息 自动转入相应的中断处理程序 (2)中断响应的实质 交换指令地址及处理机的状态信息
4. 中断向量 具有向量机制的计算机的中断向量包括: 中断处理程序的入口地址 中断处理程序的程序状态字
当硬件完成了中断进入后,转到中断处理程序,进入软件中断处理过程。这个过程主要有如下三项工作: 四. 软件的中断处理过程 当硬件完成了中断进入后,转到中断处理程序,进入软件中断处理过程。这个过程主要有如下三项工作: (1)保护现场和传递参数; (2)执行相应的中断(或自陷)处理程序; (3)恢复和退出。 注: 在中断进入时由硬件保护了被中断程序的PC和PS, 在中断处理中保护各寄存器的值和其它状态信息。
中断向量是存储某类型中断的中断服务例行程序的入口地址和处理机状态字的存储单元。 五. 向量中断 1. 中断向量 中断向量是存储某类型中断的中断服务例行程序的入口地址和处理机状态字的存储单元。 2. 中断向量表 (IDT) 主存中用于存放中断向量服务地址的一组存储单元组成的表。
(四) 必要的硬件支持 存储器 主存储器(主存、内存): 辅存储器(辅存、外存): 处理机能直接访问的存储器称为主存储器,用来存放正在或将要执行的系统和用户程序和数据以及程序执行时要求的临时存储空间。 只读存储器ROM(Read-only memory): ROM称为BIOS,用来存放基本的I/O程序。 随机访问存储器 RAM(random access memory) 辅存储器(辅存、外存): 处理机不能直接访问的存储器,如磁盘、磁带、光盘等,用来存放大量的数据信息。
DMA(Direct Memory Access) Operation of a DMA transfer
Clocks - Clock Hardware 时钟硬件(PC机中) 实时时钟(Real Time Clock,RTC) 可编程间隔定时器(Programmable Interval Timer,PIT) 时间戳计数器(Time Stamp Counter,TSC)。
Clocks - Clock Hardware A programmable interval clock
Clocks - Clock Hardware(续) Programmable interval clock的工作模式 One-shot mode Square-wave mode 时钟滴答(Clock tick) 周期性地发生时钟中断(可编程设置间隔)
Clocks - Clock Hardware (续) 实时时钟RTC 在PC机断电后仍能保存时间 通过主板上的电池供电;通常与CMOS RAM集成到一块芯片上,也称为 CMOS Timer 可在系统初启时读入 并转换为相对于某一基准时间的时钟滴答数 操作系统提供实用程序可以设置系统时钟和RTC并在二者之间同步
Clocks - Clock Hardware (续) 时间戳记数器TSC Pentium之后的CPU中包含的64位的寄存器 在每一个振荡信号到达时,该计数器递增 可为操作系统提供更准确的时间度量
第二章 小 结 1. 处理机的态,(核态)、管态、用户态,相互的区别。 2. 异常和中断。 3. 中断响应的定义、实质。 第二章 小 结 1. 处理机的态,(核态)、管态、用户态,相互的区别。 2. 异常和中断。 3. 中断响应的定义、实质。 4. 中断处理过程。 5. 必要的硬件支持。