《第二章 操作系统的逻辑结构.ppt》由会员分享,可在线阅读,更多相关《第二章 操作系统的逻辑结构.ppt(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第二章第二章操作系统操作系统的组织结的组织结构构2.1概述概述构成操作系统的三种结构:构成操作系统的三种结构:1、无结构:由一组互相耦合的过程组成。、无结构:由一组互相耦合的过程组成。2、层次式结构:模块化,层次化组织功、层次式结构:模块化,层次化组织功能过程。能过程。3、C/S模型:由微内核和一系列服务器模型:由微内核和一系列服务器进程组成。进程组成。大多数操作系统都采用层次式结构。大多数操作系统都采用层次式结构。2.1概述概述2.1.1操作系统虚拟机(操作系统虚拟机(VirtualMachine):):在本课程中,虚拟机是指在裸机上配置了操作在本课程中,虚拟机是指在裸机上配置了操作系统程序
2、后的环境。(图系统程序后的环境。(图2.1)另一种关于虚拟机的概念,是指通过软件来模另一种关于虚拟机的概念,是指通过软件来模拟出一种裸机环境,典型的软件有:拟出一种裸机环境,典型的软件有:vmware。2.1概述概述2.1.1操作系统虚拟机(操作系统虚拟机(VirtualMachine):):操作系统虚拟机为用户提供了一种虚拟环境,操作系统虚拟机为用户提供了一种虚拟环境,用户通过操作系统所提供的界面对计算机进行用户通过操作系统所提供的界面对计算机进行操纵。用户界面分两类:操纵。用户界面分两类:操作命令:键盘命令,作业控制语言,图形化操作命令:键盘命令,作业控制语言,图形化用户界面用户界面系统功
3、能调用:用户程序使用标准函数调用系系统功能调用:用户程序使用标准函数调用系统功能(如文件操作,网络操作等。)统功能(如文件操作,网络操作等。)2.1概述概述2.1.2操作系统逻辑结构(图操作系统逻辑结构(图2.2)系统核:初级中断处理,外部设备驱动,系统核:初级中断处理,外部设备驱动,在进程之间切换处理机,进程控制和通在进程之间切换处理机,进程控制和通信。信。系统核外:存储管理,系统核外:存储管理,I/O处理,文件存处理,文件存取等。取等。2.1概述概述以以Linux结构为例:结构为例:Linux操作系统的基本体系结构操作系统的基本体系结构 2.1概述概述Linux内核内核(代码代码)的主要子
4、系统的主要子系统:依赖体系结构的代码(依赖体系结构的代码(Arch)设备驱动程序设备驱动程序(DeviceDriver)进程管理进程管理(ProcessManagement)内存管理内存管理(MemoryManagement)虚拟文件系统虚拟文件系统(VirtualFileSystem)网络堆栈网络堆栈(Networkstack)系统调用接口系统调用接口(SystemCallInterface)以上分别可参见内核源代码。以上分别可参见内核源代码。Linux内核的一个体系结构透视图内核的一个体系结构透视图2.2基本硬件结构基本硬件结构2.2.1处理机的状态和特权指令处理机的状态和特权指令什么是处
5、理机的状态什么是处理机的状态是用来表明处理机,当前正在执行哪一类程序的一种标志。是用来表明处理机,当前正在执行哪一类程序的一种标志。处理机状态的分类处理机状态的分类思考:为什么要设置处理机的状态?思考:为什么要设置处理机的状态?原因:系统中有两类程序原因:系统中有两类程序管理程序管理程序用户程序用户程序管理系统资源提出申请使用资源管理系统资源提出申请使用资源控制程序运行控制程序运行被控制被控制目的:为操作系统建立一个保护环境,对用户程序的执行加以限制。目的:为操作系统建立一个保护环境,对用户程序的执行加以限制。实现:区分处理机的当前工作状态。实现:区分处理机的当前工作状态。2.2基本硬件结构基
6、本硬件结构(1)管态管态(Supervisormode,或系统态,内核态,或系统态,内核态)操作系统的程序执行时,处理机所处的状态。在此状态下操作系统的程序执行时,处理机所处的状态。在此状态下运行的程序:运行的程序:可执行全部指令可执行全部指令(包括一组特权指令包括一组特权指令);可使用系统的全部资源可使用系统的全部资源(包括整个存储区包括整个存储区)注意:此处不区分核态和管态的差别而统称为管态(注意:此处不区分核态和管态的差别而统称为管态(p30)。)。在核态下,操作系统可以使用一系列的特权指令,见书在核态下,操作系统可以使用一系列的特权指令,见书p30.2.2基本硬件结构基本硬件结构(2)
7、用户态用户态(Usermode,或目态,或目态)用户程序执行时,机器所处的状态。用户程序执行时,机器所处的状态。在在此此态态下下禁禁止止使使用用特特权权指指令令、及及修修改改机机器器状状态态;不能直接使用资源;不能直接使用资源;只允许访问程序自己的存储区。只允许访问程序自己的存储区。2.2基本硬件结构基本硬件结构思考:下图中思考:下图中CPU何时处于管态而何时处何时处于管态而何时处于用户态?于用户态?CPU外部外部设备设备1输入输入结束结束程序程序B打印打印输出输出键盘键盘输入输入绘图绘图输出输出输出结束输出结束输出结束输出结束程序程序A输入结束输入结束程序程序A程序程序B光标记光标记阅读输入
8、阅读输入外部外部设备设备22.2基本硬件结构基本硬件结构下一个问题:下一个问题:CPU是如何实现状态的切是如何实现状态的切换?换?CPU外部外部设备设备1输入输入结束结束程序程序B打印打印输出输出键盘键盘输入输入绘图绘图输出输出输出结束输出结束输出结束输出结束程序程序A输入结束输入结束程序程序A程序程序B光标记光标记阅读输入阅读输入外部外部设备设备22.2基本硬件结构基本硬件结构2.2.4中断中断几个要点:几个要点:中断是操作系统中最为重要的概念之一。是中断是操作系统中最为重要的概念之一。是实现多道程序并发的必要和首要条件。实现多道程序并发的必要和首要条件。中断的实现往往依赖于一定的硬件条件。
9、中断的实现往往依赖于一定的硬件条件。操作系统通过利用中断实现对计算机中最重操作系统通过利用中断实现对计算机中最重要的处理机资源的控制。要的处理机资源的控制。2.4基本硬件结构基本硬件结构一、一、中断的概念中断的概念(p35)所谓中断是指:某个事件所谓中断是指:某个事件发生时发生时(如如I/O结束、电源结束、电源掉电、定点加溢出等掉电、定点加溢出等),系统中止现行程序的运行;系统中止现行程序的运行;引出处理事件程序对该事引出处理事件程序对该事件进行处理;处理完毕后件进行处理;处理完毕后返回断点继续执行。返回断点继续执行。正在执行正在执行的的程程序序继续执行继续执行中断处中断处理程序理程序中断进入
10、中断进入中断中断返回返回中断的实现往往依赖于一定的硬件条件。下图为微机的中断的实现往往依赖于一定的硬件条件。下图为微机的8259可编程中可编程中断控制器的组成原理图。(具体可查阅计算机组成原理方面的书籍)断控制器的组成原理图。(具体可查阅计算机组成原理方面的书籍)当某个事件到来时,形成了一个中断请求当某个事件到来时,形成了一个中断请求IRQ(interruptRequest)。如间隔时。如间隔时钟到来,产生时钟中断,钟到来,产生时钟中断,IRQ信号便进入中断控制器。如果中断允许的话,中信号便进入中断控制器。如果中断允许的话,中断控制器便通过与断控制器便通过与CPU相连的相连的INTR引脚将引脚
11、将INT信号发往信号发往CPU补充材料:补充材料:CPU的组成结构及取指令过程。的组成结构及取指令过程。2.4基本硬件结构基本硬件结构正在执行正在执行的的程程序序继续执行继续执行中断处中断处理程序理程序中断进入中断进入中断中断返回返回回到中断的基本原理图,回到中断的基本原理图,当当CPU获知中断产生后获知中断产生后如如何从正在执行的程序转移何从正在执行的程序转移到中断处理程序上?到中断处理程序上?当完成了中断处理程序后,当完成了中断处理程序后,又如何从中断返回到原程又如何从中断返回到原程序?序?这涉及到几个重要的概念。这涉及到几个重要的概念。2.4基本硬件结构基本硬件结构1、中断向量(表、中断
12、向量(表2.1,中断向量地址表),中断向量地址表)存放在内存中的,某类中断处理程序的存放在内存中的,某类中断处理程序的入口地址、及处理器状态字的内容。通入口地址、及处理器状态字的内容。通常在内存的低地址端常在内存的低地址端2.4基本硬件结构基本硬件结构.保护现场和恢复现场保护现场和恢复现场(1)现场现场(context)指在中断的那一时刻,能确保程序继续运行的有指在中断的那一时刻,能确保程序继续运行的有关信息。主要包括:关信息。主要包括:后继指令的主存地址后继指令的主存地址程序运行时所处的状态程序运行时所处的状态指令的执行情况指令的执行情况各种通用寄存器中的内容各种通用寄存器中的内容2.4基本
13、硬件结构基本硬件结构(2)保护保护现场现场当中断发生时,必须立即把现场信息保存在主存中,当中断发生时,必须立即把现场信息保存在主存中,称之为保护现场。称之为保护现场。(3)恢复恢复现场现场程序重新运行之前,把被中断该程序的现场信息,程序重新运行之前,把被中断该程序的现场信息,从主存送至原有的现场环境中。称为恢复现场。从主存送至原有的现场环境中。称为恢复现场。问题:除通用寄存器外,其余的现场信息原来是在什么问题:除通用寄存器外,其余的现场信息原来是在什么地方呢?地方呢?2.4基本硬件结构基本硬件结构.程序状态字程序状态字(PSW)(图(图2.6)(1)什么是程序状态字什么是程序状态字程序状态字是
14、反映程序执行时,当前机器状态程序状态字是反映程序执行时,当前机器状态(在指令在指令一级一级)的一组代码。在一些机器上,往往通过的一组代码。在一些机器上,往往通过PC和和PS两个两个CPU寄存器存放。寄存器存放。PC:指令计数器指令计数器,存放下一条应该执行的指令的内存地址。,存放下一条应该执行的指令的内存地址。PS:处理器状态寄存器处理器状态寄存器:存放当前:存放当前CPUD各种状态量值。各种状态量值。4.中断响应:当中央处理机发现已有中断请求时,中断响应:当中央处理机发现已有中断请求时,中止现行程序执行,并自动引出中断处理程序的中止现行程序执行,并自动引出中断处理程序的过程。过程。PC进栈进
15、栈PS进栈进栈中断处理程序的中断处理程序的PC中断处理程序的中断处理程序的PS向量向量堆栈堆栈PCPS堆栈栈堆栈栈顶指针顶指针2.4基本硬件结构基本硬件结构中断响应的实质:交换指令地址及处理机的状态中断响应的实质:交换指令地址及处理机的状态信息,达到:信息,达到:保留程序断点及处理机有关信息保留程序断点及处理机有关信息 自动转入相应的中断处理程序执行自动转入相应的中断处理程序执行2.4基本硬件结构基本硬件结构中断处理:当硬件完成了中断进入过程后,由相中断处理:当硬件完成了中断进入过程后,由相应的中断处理程序得到应的中断处理程序得到CPU的控制权,进入了软的控制权,进入了软件的中断处理过程。件的
16、中断处理过程。保留被中断程序的现场保留被中断程序的现场 进入相应的中断服务例程进入相应的中断服务例程 恢复被中断程序的现场恢复被中断程序的现场中断中断返回返回中中 断断进入进入k+0现行程序现行程序k+12.4基本硬件结构基本硬件结构思考:请简述中断过程。思考:请简述中断过程。正在执行正在执行的的程程序序继续执行继续执行中断处中断处理程序理程序中断进入中断进入中断中断返回返回2.2基本硬件结构基本硬件结构2.4基本硬件结构基本硬件结构中断进入过程的总结:中断进入过程的总结:1、某一事件发生,形成中断请求。、某一事件发生,形成中断请求。2、产生中断向量、产生中断向量3、旧、旧PC、PS内容进栈内
17、容进栈4、查中断向量地址表,写新、查中断向量地址表,写新PC、PS5、执行中断服务子程序、执行中断服务子程序6、返回,恢复现场。、返回,恢复现场。2.4基本硬件结构基本硬件结构Linux下的中断机制:下的中断机制:对于对于Linux内核来说,中断信号通常分为两类,硬件中内核来说,中断信号通常分为两类,硬件中断和异常。断和异常。中断又分为外部中断又分为外部可屏蔽中断可屏蔽中断(INTR)和外部)和外部非屏蔽中非屏蔽中断断(NMI),所有),所有I/O设备产生的中断请求(设备产生的中断请求(IRQ)均)均引起可屏蔽中断,而紧急的事件(如硬件故障)引起的引起可屏蔽中断,而紧急的事件(如硬件故障)引起
18、的故障产生非屏蔽中断。故障产生非屏蔽中断。异常又分为故障(异常又分为故障(Fault)、陷阱)、陷阱(Trap)等等,它们的共,它们的共同特点是既不使用中断控制器,又不能被屏蔽。同特点是既不使用中断控制器,又不能被屏蔽。常见常见的故障有:设备故障或不可用、页面错误等。的故障有:设备故障或不可用、页面错误等。2.4基本硬件结构基本硬件结构每个中断是由每个中断是由0-255之间的一个数字标识。之间的一个数字标识。Linux中的中断向量分配情况如下:中的中断向量分配情况如下:2.4基本硬件结构基本硬件结构Linux中部分的异常中断:中部分的异常中断:2.4基本硬件结构基本硬件结构Linux中部分的I
19、/O设备中断(可通过/proc/interruption查看):2.4基本硬件结构基本硬件结构在在Linux系统初始化时,内核将建立中断描述符表系统初始化时,内核将建立中断描述符表(InterruptDescriptorTable,IDT),并对该表中),并对该表中256个描述符进行默认设置。个描述符进行默认设置。相关内核代码:相关内核代码:linux/arch/i386/kernel/i8259.clinux/arch/i386/kernel/i8253.clinux/arch/i386/kernel/head.S(负责建立负责建立IDT表,表,381行行)linux/arch/i386/k
20、ernel/entry.S(负责中断总控负责中断总控)对对Linux中断机制感兴趣者,可参考课件附带资料。中断机制感兴趣者,可参考课件附带资料。2.4基本硬件结构基本硬件结构Linux的中断调用过程(的中断调用过程(arch/i386/kernel/entry.S,610):):common_interrupt:SAVE_ALL /保护现场,寄存器入栈,保护现场,寄存器入栈,100TRACE_IRQS_OFF /停止中断的跟踪停止中断的跟踪movl%esp,%eax/把栈顶指针放入把栈顶指针放入eax寄存器寄存器call do_IRQ/执行中断处理程序,执行中断处理程序,arch/i386/k
21、ernel/irq.c jmp ret_from_intr/中断返回后的处理,中断返回后的处理,240ENDPROC(common_interrupt)2.4基本硬件结构基本硬件结构中断的类型中断的类型(1)输入输出输入输出(I/O)中断中断(2)外中断外中断(3)机器故障中断机器故障中断(4)程序性中断程序性中断(5)访管中断访管中断2.4基本硬件结构基本硬件结构1、输入输出中断:当外部设备或通道操作正常、输入输出中断:当外部设备或通道操作正常结束或发生某种错误时发生的中断。结束或发生某种错误时发生的中断。如:如:I/O传输错误,传输错误,I/O传输结束。传输结束。2.4基本硬件结构基本硬件
22、结构2、外中断:外部非通道式装置所引起的中断。、外中断:外部非通道式装置所引起的中断。如:时钟中断。如:时钟中断。2.4基本硬件结构基本硬件结构关于时钟中断的进一步讲解关于时钟中断的进一步讲解(p32,2.3.3):时钟在操作系统中的重要性:时钟在操作系统中的重要性:1、实现进程和作业调度的硬件基础、实现进程和作业调度的硬件基础2、为应用程序提供计时功能的硬件基础、为应用程序提供计时功能的硬件基础3、实现实时控制的硬件基础、实现实时控制的硬件基础2.4基本硬件结构基本硬件结构时钟分为两种,实时(绝对)时钟时钟分为两种,实时(绝对)时钟(RealTimeClock,RTC)和间隔时钟和间隔时钟(
23、ProgrammableIntervalTimer,PIT)。实时时钟提供绝对时间。在实时时钟提供绝对时间。在PC机上,机上,通过主板电池供电的通过主板电池供电的COMSTimer即为实时时钟。即为实时时钟。间隔时钟提供间隔时钟提供计数功能计数功能。在。在PC机上,多为可编程间隔机上,多为可编程间隔定时器定时器8253,它以,它以100Hz的频率(也即的频率(也即100次每秒)工作。次每秒)工作。每次计时均产生一次每次计时均产生一次时钟中断时钟中断。2.4基本硬件结构基本硬件结构2.4基本硬件结构基本硬件结构LinuxLinux中用全局变量中用全局变量jiffiesjiffies表示系统自表示
24、系统自启动以来的时钟滴答数目,在启动以来的时钟滴答数目,在LinuxLinux中,中,所有的时间应用都是建立在所有的时间应用都是建立在jiffiesjiffies基础基础之上的之上的 。Linux相关源代码:相关源代码:include/linux/jiffies.h,70kernel/time/jiffies.c2.4基本硬件结构基本硬件结构3、机器故障中断:由于硬件异常而引起、机器故障中断:由于硬件异常而引起的中断。的中断。如:内存读写错误等。如:内存读写错误等。4、程序性中断:是指在用户态下由于软、程序性中断:是指在用户态下由于软件异常而引起的中断。件异常而引起的中断。如:地址越界等。如:
25、地址越界等。2.4基本硬件结构基本硬件结构5、访管中断:用户态下的软件对操作系统提、访管中断:用户态下的软件对操作系统提出某种需求(如请求出某种需求(如请求I/O传输、建立进程等)传输、建立进程等)时所发出的中断。时所发出的中断。在在Linux中,把软件发出的系统调用(中,把软件发出的系统调用(systemcall)中断设置为)中断设置为0 x80,系统调用中断是用户,系统调用中断是用户程序使用操作系统资源的唯一界面接口。程序使用操作系统资源的唯一界面接口。当用户态下的进程执行一条当用户态下的进程执行一条int0 x80汇编指令汇编指令时,时,CPU就切换到内核态,并开始执行就切换到内核态,并
26、开始执行system_call()内核函数。内核函数。2.4基本硬件结构基本硬件结构2.2.2存储器存储器主存储器的类型:主存储器的类型:读写型存储器(读写型存储器(RAM,RamdomAccessMemory)只读型存储器(只读型存储器(ROM,ReadOnlymemory)多级存储器体系(图多级存储器体系(图2.4)存储保护存储保护本章回顾与展望本章回顾与展望本章回顾与展望本章回顾与展望2.3系统核:系统核:处理机分派程序(第处理机分派程序(第6章)章)进程通信原语(第进程通信原语(第4章)章)进程控制原语(第进程控制原语(第4章)章)初级中断处理初级中断处理2.4核外各层核外各层存储管理层(第存储管理层(第7章)章)I/O处理层(第处理层(第8章)章)文件存取层(第文件存取层(第9章)章)调度和资源分配(第调度和资源分配(第5章)章)