资源预览内容
第1页 / 共47页
第2页 / 共47页
第3页 / 共47页
第4页 / 共47页
第5页 / 共47页
第6页 / 共47页
第7页 / 共47页
第8页 / 共47页
第9页 / 共47页
第10页 / 共47页
亲,该文档总共47页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第二章 操作系统的组织结构2.1 概述 构成操作系统的三种结构: 1、无结构:由一组互相耦合的过程组成。 2、层次式结构:模块化,层次化组织功能 过程。 3、C/S模型:由微内核和一系列服务器进 程组成。 大多数操作系统都采用层次式结构。2.1 概述 2.1.1 操作系统虚拟机(Virtual Machine): 在本课程中,虚拟机是指在裸机上配置了操作 系统程序后的环境。(p27 图2.1) 另一种关于虚拟机的概念,是指通过软件来模 拟出一种裸机环境, 典型的软件有:vmware、vbox等。2.1 概述 2.1.1 操作系统虚拟机(Virtual Machine): 操作系统虚拟机为用户提供了一种虚拟环境, 用户通过操作系统所提供的界面对计算机进行 操纵。用户界面分两类: 操作命令:键盘命令,作业控制语言,图形化 用户界面 系统功能调用:用户程序使用标准函数调用系 统功能(如文件操作,网络操作等。)2.1 概述 2.1.2 操作系统的虚拟技术: 操作系统的虚拟技术大量应用在多个方面 (1)CPU调度 (2)主存管理 (3)设备管理2.3 处理机的状态 2.3.1 处理机的状态和特权指令什么是处理机的状态是用来表明处理机,当前正在执行哪一类程序的一种标志。 处理机状态的分类 思考:为什么要设置处理机的状态? 原因:系统中有两类程序 管理程序 用户程序管理系统资源 提出申请使用资源控制程序运行 被控制 目的:为操作系统建立一个保护环境,对用户程序的执行加以限制实现:区分处理机的当前工作状态。(1) 管态 (Supervisor mode,或系统态,内核态) 操作系统的管理程序执行时,处理机所处的状态。在此状态下运行的程序:可执行全部指令(包括一组特权指令);可使用系统的全部资源(包括整个存储区)注意:此处不区分核态和管态的差别而统称为管态(p34)在核态下,操作系统可以使用一系列的特权指令(p34).2.3 处理机的状态2.3 处理机的状态(2) 用户态(User mode,或目态)用户程序执行时,机器所处的状态。在此态下禁止使用特权指令、修改机器状态;不能直接使用资源;只允许访问程序自己的存储区。 2.3 处理机的状态两者区别:管态态用户态户态操作系统统的管理程序执执行用户户程序执执行使用全部机器资资源和全部指令 其中包括一组组特权权指令 禁止使用特权权指令可以访问访问 整个内存空间间只允许许用户户程序访问访问 自己的存 储储区域2.3 处理机的状态 思考:下图中CPU何时处于管态而何时处 于用户态?CPU外部 设备1输入 结束程序B打印 输出键盘 输入绘图 输出输出结束输出结束程序A输入结束程序A程序B光标记 阅读输入外部 设备22.3 处理机的状态 下一个问题:CPU是如何实现状态的切 换?CPU外部 设备1输入 结束程序B打印 输出键盘 输入绘图 输出输出结束输出结束程序A输入结束程序A程序B光标记 阅读输入外部 设备22.4 中断机制 2.4.1 中断 几个要点: 中断是操作系统中最为重要的概念之一。是实现多道程序并发的必要和首要条件。 中断的实现往往依赖于一定的硬件条件。 操作系统通过利用中断实现对计算机中最重 要的处理机资源的控制。2.4 中断机制一、中断的概念(p35) 所谓中断是指:某个事件 发生时(如I/O结束、电源 掉电、定点加法溢出等) ,系统中止现行程序的运 行、引出处理事件程序对 该事件进行处理,处理完 毕后返回断点继续执行。正在执行的 程 序继续执行中断处 理程序中断进入中断 返回中断的实现往往依赖于一定的硬件条件。下图为微机的8259可编程中 断控制器的组成原理图。(具体可查阅计算机组成原理方面的书籍) 当某个事件到来时,形成了一个中断请求IRQ(interrupt Request)。如间隔时 钟到来,产生时钟中断,IRQ信号便进入中断控制器。如果中断允许的话,中 断控制器便通过与CPU相连的INTR引脚将INT信号发往CPU补充材料:CPU的组成结构及取指令过程。2.4 中断机制正在执行的 程 序继续执行中断处 理程序中断进入中断 返回 回到中断的基本原理图, 当CPU获知中断产生后如 何从正在执行的程序转移 到中断处理程序上? 当完成了中断处理程序后 ,又如何从中断返回到原 程序? 这涉及到几个重要的概念 。2.4中断机制1、中断向量(P39-40 表2.1,中断向量地址表)存放在内存中的,某类中断处理程序的入口地址、及处理器状态字的内容。通常在内存的低地址端。2.4中断机制. 保护现场和恢复现场(1) 现场(context)指在中断的那一时刻,能确保程序继续运行的有关信息。主要包括: 后继指令的主存地址 程序运行时所处的状态 指令的执行情况 各种通用寄存器中的内容2.4中断机制(2) 保护现场当中断发生时,必须立即把现场信息保存在主存中,称之为保护现场。(3) 恢复现场 程序重新运行之前,把被中断该程序的现场信息,从主存送至原有的现场环境中,称之为恢复现场。2.4中断机制. 程序状态字 (程序状态寄存器),Program Status Word , PSW) (图2.10)(1) 什么是程序状态字程序状态字是反映程序执行时,当前机器状态(在指令 一级)的一组代码。在一些机器上,往往通过PC和PS两个 CPU寄存器存放。 PC: 指令计数器,存放下一条应该执行的指令的内存地址PS: 处理器状态寄存器:存放当前CPU的各种状态量值 4. 中断响应:当中央处理机发现已有中断请求时 ,中止现行程序执行,并自动引出中断处理程序 的过程。堆栈PC进栈PS 进栈中断处理程序的PC 中断处理程序的PS内存PCPS堆栈栈 顶指针(3 )(4 )(2 )(1 )2.4中断机制中断响应的实质:交换指令地址及处理机的状态信息,达到: 保留程序断点及处理机有关信息 自动转入相应的中断处理程序执行2.4中断机制 中断处理:当硬件完成了中断进入过程后,由相 应的中断处理程序得到CPU的控制权,进入了软 件的中断处理过程。(P42 图2.12) 保留被中断程序的现场进入相应的中断服务例程恢复被中断程序的现场程序 返回自动 进入k+0现行程序k+1进入中断退出中断2.4中断机制 思考:请简述中断过程。正在执行的 程 序继续执行中断处 理程序中断进入中断 返回2.2 基本硬件结构2.4中断机制 中断进入过程的总结: 1、某一事件发生,形成中断请求。 2、产生中断向量 3、旧PC、PS内容进栈 4、查中断向量地址表,写新PC、PS 5、执行中断服务子程序 6、返回,恢复现场。2.4中断机制中断的类型1、按中断功能分2、按中断方式分3、按中断来源分2.4中断机制1、按中断功能分(1) 输入输出(I/O)中断(2) 外中断(3) 机器故障中断(4) 程序性中断(5) 访管中断2.4中断机制 (1)输入输出中断:当外部设备或通道操作正常结 束或发生某种错误时发生的中断。 如:I/O传输错误,I/O传输结束。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中断机制 (5)访管中断:用户态下的软件对操作系统提出 某种需求(如请求I/O传输、建立进程等)时 所发出的中断。2.4中断机制2、按中断方式分(1) 强迫性中断:不是正在运行的程序所期待的,而是由某种事故或外部请求信号所引起的输入输出(I/O)中断、 外中断、机器故障中断、 程序性中断均属于强迫性中断(2) 自愿中断(异常):是运行程序所期待的事件,这种事件是由于运行程序请求操作系统服务而引起的访管中断属于自愿中断UNIX中同时发生异常和中断时,异常总得到优先处理。2.4中断机制3、按中断来源分(1)中断(外中断):由处理机外部事件引起的中断包括I/O中断、外中断(2)俘获(内中断):由处理机内部事件引起的中断包括机器故障中断、程序性中断、 访管中断在同时发生中断和俘获请求时,俘获总是优先得到响应和处理,也称为高优先中断。2. 4中断机制 Linux下的中断机制: 对于Linux内核来说,中断信号通常分为两类,硬件中 断和异常。 中断又分为外部可屏蔽中断(INTR)和外部非屏蔽中 断(NMI),所有I/O设备产生的中断请求(IRQ)均 引起可屏蔽中断,而紧急的事件(如硬件故障)引起的 故障产生非屏蔽中断。 异常又分为故障(Fault)、陷阱(Trap)等,它们的共同 特点是既不使用中断控制器,又不能被屏蔽。 常见的 故障有:设备故障或不可用、页面错误等。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的中断调用过程(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 ENDPROC(common_interrupt)本章回顾与展望本章回顾与展望 系统核: 处理机分派程序(第6章) 进程通信原语(第4章) 进程控制原语(第4章) 初级中断处理 核外各层 存储管理层(第7章) I/O处理层(第8章) 文件存取层(第9章) 调度和资源分配(第5章)作业: 2-4 2-6 2-9
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号