第二章 操作系统的逻辑结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 程序运行时所处的状态
• 指令的执行情况 • 各种通用寄存器中的内容
2.4中断机制
(2) 保护现场 称之为保护现场。 (3) 恢复现场 程序重新运行之前,把被中断该程序的现场信息, 从主存送至原有的现场环境中,称之为恢复现场。
当中断发生时,必须立即把现场信息保存在主存中,
2.4中断机制
3. 程序状态字 (程序状态寄存器),Program Status Word , PSW) (图2.10) (1) 什么是程序状态字 程序状态字是反映程序执行时,当前机器状态(在指令 一级)的一组代码。在一些机器上,往往通过PC和PS两个 CPU寄存器存放。 PC: 指令计数器,存放下一条应该执行的指令的内存地址 PS: 处理器状态寄存器:存放当前CPU的各种状态量值
• 4. 中断响应:当中央处理机发现已有中断请求时, 中止现行程序执行,并自动引出中断处理程序的 过程。
(3) PC (4) PS (2) (1) 内存
中断处理程序的PC 中断处理程序的PS
PC进栈 PS 进栈
堆栈栈 顶指针
堆栈
2.4中断机制
中断响应的实质:交换指令地址及处理机的状态 信息,达到: 保留程序断点及处理机有关ห้องสมุดไป่ตู้息 自动转入相应的中断处理程序执行
第二章 操作系统的组织结构
2.1 概述
• 构成操作系统的三种结构: • 1、无结构:由一组互相耦合的过程组成。 • 2、层次式结构:模块化,层次化组织功能 过程。 • 3、C/S模型:由微内核和一系列服务器进 程组成。 • 大多数操作系统都采用层次式结构。
2.1 概述
• 2.1.1 操作系统虚拟机(Virtual Machine): • 在本课程中,虚拟机是指在裸机上配置了操作 系统程序后的环境。(图2.1) • 另一种关于虚拟机的概念,是指通过软件来模 拟出一种裸机环境,典型的软件有:vmware。
2.1 概述
• • • • • 2.1.2 操作系统的虚拟技术: 操作系统的虚拟技术大量应用在多个方面 (1)CPU调度 (2)主存管理 (3)设备管理
2.3 处理机的状态
• 2.3.1 处理机的状态和特权指令 什么是处理机的状态 是用来表明处理机,当前正在执行哪一类程序的一种标志。 处理机状态的分类
• 思考:为什么要设置处理机的状态? • 原因:系统中有两类程序 管理程序 用户程序
管理系统资源 控制程序运行 提出申请使用资源 被控制
目的:为操作系统建立一个保护环境,对用户程序的执行加以限制
实现:区分处理机的当前工作状态。
2.3 处理机的状态
(1) 管态 (Supervisor mode,或系统态,内核态)
2.3 处理机的状态
两者区别:
管态 用户态
操作系统的管理程序执行 使用全部机器资源和全部指令 其中包括一组特权指令
用户程序执行
禁止使用特权指令
可以访问整个内存空间
只允许用户程序访问自己的存储区域
2.3 处理机的状态
• 思考:下图中CPU何时处于管态而何时处 于用户态?
程序A 程序B 输入 结束 光标记 阅读输入 键盘 输入 程序A
正在执行
的程序 中断进入 中断处 理程序
中断 返回
继续执行
2.2 基本硬件结构
2.4中断机制
• • • • • • • 中断进入过程的总结: 1、某一事件发生,形成中断请求。 2、产生中断向量 3、旧PC、PS内容进栈 4、查中断向量地址表,写新PC、PS 5、执行中断服务子程序 6、返回,恢复现场。
2.4中断机制
• (5)访管中断:用户态下的软件对操作系统提出 某种需求(如请求I/O传输、建立进程等)时 所发出的中断。
2.4中断机制
2、按中断方式分 (1) 强迫性中断:不是正在运行的程序所期待的,而 是由某种事故或外部请求信号所引起的
输入输出(I/O)中断、 外中断、机器故障中断、 程序性中断
2.4中断机制
中断的类型 1、按中断功能分 2、按中断方式分 3、按中断来源分
2.4中断机制
1、按中断功能分 (1) 输入输出(I/O)中断 (2) 外中断 (3) 机器故障中断 (4) 程序性中断
(5) 访管中断
2.4中断机制
• (1)输入输出中断:当外部设备或通道操作正常 结束或发生某种错误时发生的中断。 • 如:I/O传输错误,I/O传输结束。
2.4中断机制
• 中断处理:当硬件完成了中断进入过程后,由相 应的中断处理程序得到CPU的控制权,进入了软 件的中断处理过程。(P42 图2.12)
进入中断
自动 进入
k+0
k+1 程序 返回 现行程序
退出中断
保留被中断程序的现场 进入相应的中断服务例程 恢复被中断程序的现场
2.4中断机制
• 思考:请简述中断过程。
2.4中断机制
• 每个中断是由0-255之间的一个数字标识。Linux 中的中断向量分配情况如下:
2.4中断机制
• Linux中部分的异常中断:
2.4中断机制
• Linux中部分的I/O设备中断(可通过 /proc/interruption查看):
2.4中断机制
• 在Linux系统初始化时,内核将建立中断描述符表 (Interrupt Descriptor Table,IDT),并对该表中256 个描述符进行默认设置。 • 相关内核代码: • linux/arch/i386/kernel/i8259.c • linux/arch/i386/kernel/i8253.c • linux/arch/i386/kernel/head.S(负责建立IDT表,381行) • linux/arch/i386/kernel/entry.S(负责中断总控)
包括机器故障中断、程序性中断、 访管中断 在同时发生中断和俘获请求时,俘获总是优先得到 响应和处理,也称为高优先中断。
2. 4中断机制
• Linux下的中断机制: • 对于Linux内核来说,中断信号通常分为两类,硬件中 断和异常。 • 中断又分为外部可屏蔽中断(INTR)和外部非屏蔽中 断(NMI),所有I/O设备产生的中断请求(IRQ)均 引起可屏蔽中断,而紧急的事件(如硬件故障)引起的 故障产生非屏蔽中断。 • 异常又分为故障(Fault)、陷阱(Trap)等,它们的共同 特点是既不使用中断控制器,又不能被屏蔽。 常见的 故障有:设备故障或不可用、页面错误等。
作业: 1、 1-3 1-5 1-7 2、 2-4 2-6 2-9
中断处 理程序
• 中断的实现往往依赖于一定的硬件条件。下图为微机的8259可编程中 断控制器的组成原理图。(具体可查阅计算机组成原理方面的书籍)
• 当某个事件到来时,形成了一个中断请求IRQ(interrupt Request)。如间隔时 钟到来,产生时钟中断,IRQ信号便进入中断控制器。如果中断允许的话, 中断控制器便通过与CPU相连的INTR引脚将INT信号发往CPU
2.4中断机制
• Linux的中断调用过程(arch/i386/kernel/entry.S , 610): common_interrupt:
SAVE_ALL //保护现场,寄存器入栈,100 TRACE_IRQS_OFF //停止中断的跟踪 movl %esp,%eax //把栈顶指针放入eax寄存器 call do_IRQ //执行中断处理程序,arch/i386/kernel/irq.c jmp ret_from_intr //中断返回后的处理,240
均属于强迫性中断
(2) 自愿中断(异常):是运行程序所期待的事件,这
种事件是由于运行程序请求操作系统服务而引起的
访管中断属于自愿中断 UNIX中同时发生异常和中断时,异常总得到优先处理。
2.4中断机制
3、按中断来源分 (1)中断(外中断):由处理机外部事件引起的中断 包括I/O中断、外中断
(2)俘获(内中断):由处理机内部事件引起的中断
ENDPROC(common_interrupt)
本章回顾与展望
本章回顾与展望
• • • • • • • • • • 系统核: 处理机分派程序(第6章) 进程通信原语(第4章) 进程控制原语(第4章) 初级中断处理 核外各层 存储管理层(第7章) I/O处理层(第8章) 文件存取层(第9章) 调度和资源分配(第5章)
• 补充材料:CPU的组成结构及取指令过程。
2.4 中断机制
• 回到中断的基本原理图, 当CPU获知中断产生后如 正在执行 何从正在执行的程序转移 的程序 中断进入 到中断处理程序上? • 当完成了中断处理程序后, 又如何从中断返回到原程 中断 返回 序? 继续执行 • 这涉及到几个重要的概念。
2.4 中断机制
• 2.4.1 中断 • 几个要点: • 中断是操作系统中最为重要的概念之一。 是实现多道程序并发的必要和首要条件。 • 中断的实现往往依赖于一定的硬件条件。 • 操作系统通过利用中断实现对计算机中最重 要的处理机资源的控制。
2.4 中断机制
一、中断的概念(p35) • 所谓中断是指:某个事件 正在执行 发生时(如I/O结束、电源 的 程 序 中断进入 掉电、定点加法溢出等) , 系统中止现行程序的运行、 引出处理事件程序对该事 中断 返回 件进行处理,处理完毕后 继续执行 返回断点继续执行。
程序B
CPU
外部 设备1 外部 设备2
打印 输出
绘图 输出 输入结束
输出结束
输出结束
2.3 处理机的状态
• 下一个问题:CPU是如何实现状态的切 换?
程序A
程序B 输入 结束 光标记 阅读输入 键盘 输入 程序A 程序B
CPU
外部 设备1 外部 设备2
打印 输出 绘图 输出 输入结束
输出结束
输出结束
2.1 概述
• 2.1.1 操作系统虚拟机(Virtual Machine): • 操作系统虚拟机为用户提供了一种虚拟环境, 用户通过操作系统所提供的界面对计算机进行 操纵。用户界面分两类: • 操作命令:键盘命令,作业控制语言,图形化 用户界面 • 系统功能调用:用户程序使用标准函数调用系 统功能(如文件操作,网络操作等。)
2.4中断机制
• (2)外中断:外部非通道式装置所引起的中断。 • 如:时钟中断。
2.4中断机制
• 关于时钟中断的进一步讲解:
• • • • 时钟在操作系统中的重要性: 1、实现进程和作业调度的硬件基础 2、为应用程序提供计时功能的硬件基础 3、实现实时控制的硬件基础
2.4中断机制
• 时钟分为两种,实时(绝对)时钟 (Real Time Clock, RTC)和间隔(相 对)时钟(Programmable Interval Timer ,PIT)。 • 实时时钟提供绝对时间。在PC机上, 通过主板电池供电的COMS Timer 即为实时时钟。
• 间隔时钟提供计数功能。在PC机上,多为可编程间隔 定时器8253,它以100Hz的频率(也即100次每秒)工 作。每次计时均产生一次时钟中断。
2.4中断机制
2.4中断机制
• (3)机器故障中断:由于硬件异常而引起 的中断。 • 如:内存读写错误等。 • (4)程序性中断:是指在用户态下由于软 件异常而引起的中断。 • 如:地址越界等。
中断处 理程序
2.4中断机制
1、中断向量 (P39-40 表2.1,中断向量地址表) 存放在内存中的,某类中断处理程序的入 口地址、及处理器状态字的内容。通常在 内存的低地址端。
2.4中断机制
2. 保护现场和恢复现场
(1) 现场(context) 指在中断的那一时刻,能确保程序继续运行的 有关信息。主要包括: • 后继指令的主存地址
操作系统的管理程序执行时,处理机所处的状态。
在此状态下运行的程序: 可执行全部指令(包括一组特权指令); 可使用系统的全部资源(包括整个存储区) 注意:此处不区分核态和管态的差别而统称为管态(p34) 在核态下,操作系统可以使用一系列的特权指令(p34).
2.3 处理机的状态
(2) 用户态(User mode,或目态) 用户程序执行时,机器所处的状态。 在此态下禁止使用特权指令、修改机器状态; 不能直接使用资源; 只允许访问程序自己的存储区。