第1章 操作系统概述-2-OS的硬件结构

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2020/2/18操作系统与实验教程第1章211.6支持操作系统的基本硬件结构1.6.1处理机的态由于操作系统与用户程序并存于内存,且处于并发执行中,可能导致用户程序对系统程序的破坏。为了操作系统免遭破坏,CPU提供了保护机制。最简单的保护机制是在CPU的寄存器中设定保护级状态位,使得CPU可以在程序运行过程中,根据状态位指定的级别对当前程序的执行权限进行控制。CPU所提供的保护级称为处理机的态。处理机的态至少分为两态——系统态和用户态(目态):系统态表示当前CPU上运行的是操作系统的系统程序;用户态表示当前CPU上运行的是用户程序。有的操作系统还将系统态又细分为核态和管态,核态比管态的保护级别高,是CPU最高保护级别的态。2020/2/18操作系统与实验教程第1章221.6.1处理机的态为了实现对操作系统的保护,CPU将其指令分为特权指令和非特权指令:特权指令只能在处理机处于最高级别的态(支持核态时为核态,否则为管态)下才能访问,比如修改代码段寄存器的值等都属于特权指令。在用户态下CPU拒绝执行特权指令,因此用户态程序不能随意访问用户空间以外的物理内存。如果在用户程序中出现特权指令,则CPU会因为指令权限与态不吻合而自动产生非法指令中断,终止用户程序,交由操作系统处理。这样,将系统与用户所能执行的指令的权限加以区别,从而实现对系统的保护。在80386CPU中通过段描述符中的最低2位RPL设定保护级状态位,它可以给操作系统提供最多4种不同的处理机的态:153210段描述符索引RPL段寄存器2020/2/18操作系统与实验教程第1章231.6.2特权指令与处理机态的转换1.特权指令特权指令只能在核态或管态下执行,以下类型的指令都是特权指令:允许中断和禁止中断指令;进程切换、分配CPU,修改代码段寄存器CS和指令寄存器IP的值等指令;用于主存保护的寄存器的存取指令;执行I/O操作的指令,如IN、OUT等等;停止CPU等处理机控制指令如HALT暂停指令。2020/2/18操作系统与实验教程第1章241.6.2特权指令与处理机态的转换2.由用户态(目态)切换为系统态(核态或管态)下列情况下会发生中断,并通过中断机制完成由用户态到系统态的转换:用户程序中使用系统调用来请求操作系统服务,该系统调用执行时通过访管中断使CPU由用户态转换为系统态,详情第2章介绍;发生一次硬件中断,CPU中断当前用户程序的执行,转而执行操作系统的中断服务程序,CPU的态也由用户态转换为系统态。用户程序出错或者出现非法特权指令,都会产生中断,并通过中断机制实现CPU态转换为系统态,然后执行操作系统的中断处理程序。3.由系统态(核态或管态)切换为用户态(目态)CPU由系统态转换为用户态是通过在操作系统的服务程序中执行特权指令“中断返回”实现的。2020/2/18操作系统与实验教程第1章251.6.3时钟时钟是操作系统运行时不可缺少的硬件设施,它以固定的时间间隔产生中断信号,为操作系统实施调度、计算各用户所耗费的资源、实时控制以及实现延迟等功能提供了不可或缺的硬件支持。时钟分为绝对时钟和相对时钟:绝对时钟用于记录当前时间(年、月、日、时、分、秒)。系统有一个时钟寄存器,能够每隔一个时间单位自动加1,当计算机关机时它依然工作。其初始值可由用户修改。绝对时钟除了为用户提供绝对时间外还有定时作用,可用于定时唤醒那些预定时间要做的事件。相对时钟又称间隔时钟,也称定时器。当其初值由程序员设定后,每隔一个时间单位自动减1,直至减到0时引发时钟中断,并自动转移到相应中断处理程序,唤醒并激活该定时时钟事件。相对时钟是操作系统经常使用的一种定时机制。如分时系统,操作系统利用间隔时钟产生的信号实现时间片轮转调度算法;实时系统操作系统利用间隔时钟按照实时要求向控制设备发出及时的时间信号等等。2020/2/18操作系统与实验教程第1章261.6.4中断机制中断是计算机系统中非常重要的技术之一。正因为有了中断,计算机系统才能够及时处理随机发生的事件。计算机系统必须提供中断机制,才能使操作系统实现处理机在多道程序之间的切换,从而实现多道程序的并发执行,实现CPU与外部设备的并行。2020/2/18操作系统与实验教程第1章271.6.4中断机制1.中断的概念中断是指当某个事件(例如I/O结束、电源故障、程序出错、请求系统服务等等)发生时,CPU中断当前程序的执行,转而执行处理该事件的服务程序,处理完毕后返回被中断的程序继续执行的过程。引发中断的事件称为中断源,实现中断响应过程的硬件称为中断装置,处理该事件的程序称为中断服务程序,完成中断全过程的硬件和软件统称为中断系统。中断时程序当前执行完毕的指令地址为断点,中断返回后继续执行的下一条指令地址为返回点。2020/2/18操作系统与实验教程第1章281.中断的概念在计算机系统中,通常存在多个中断源,比如I/O设备、实时时钟、系统故障等等,可能会出现多个中断源同时发出中断请求的情况。因此,对于中断系统而言,除了要求能及时响应每个随机发生的中断外,还要求具备以下功能:能实现优先级排队根据事件的轻重缓急,中断系统能够使用中断逻辑将各种中断源分为不同的优先级,使CPU在响应多个中断源同时发出的中断请求时,首先响应优先级最高的。能实现中断嵌套当CPU在执行某个中断服务程序时,若有更高优先级的中断请求出现,则CPU要能够暂停当前中断服务程序的执行,去响应这个级别更高的中断,等该中断处理结束后再返回原来被中断的中断服务程序去执行。能辨别中断源能够使CPU在众多中断源中辨别当前响应的是哪一个中断源发来的中断请求。2020/2/18操作系统与实验教程第1章292.中断类型(1)根据中断源的不同可以将中断分为以下五种:①I/O中断当外部设备或通道I/O结束或出错时,由设备或通道通过控制总线给CPU发中断请求信号。②外部中断由控制台发来的中断信号或时钟中断信号等非通道式装置产生的中断。上述两种中断都是产生于CPU之外的外部硬件中断,由CPU通过中断控制装置发现并响应中断。③机器故障中断当机器发生故障时产生的中断,例如电源故障、通道与内存交换信息时内存出错、从内存取指令错等等,是产生于机器CPU内部的硬件中断。④程序性中断程序性中断是在程序执行过程中因CPU或内存出现了意外事件而引发的。例如:执行除法指令时除数为0,内存保护错等等。这种中断也称为异常,属于软件中断。⑤访管中断在用户程序中由于请求操作系统服务(执行系统调用)而产生的中断。这种中断也称为自陷,也属于软件中断。2020/2/18操作系统与实验教程第1章2103.中断响应中断响应是当CPU发现有中断请求时,终止当前程序的执行,并自动引出中断处理程序的过程。中断响应就是中断进入,其实质是将当前被中断程序的主要现场(在8086中是CS、IP和F标志寄存器)进栈保护起来,然后将中断服务程序的执行现场(CS和IP)加载到CPU的过程。这个过程完成处理机终止执行和将要执行的程序地址和状态的切换。而对于处理机中其它工作寄存器现场的保护则在中断服务程序中完成。为了实现在响应中断时能自动引出中断服务程序,常用的方法是使用向量中断的方式。向量中断是将将所有中断服务程序的入口地址和状态字按照各中断源的序号集中存放于一个表中。这个存放中断服务程序入口地址的表称为中断向量表。2020/2/18操作系统与实验教程第1章2113.中断响应CPU响应向量中断的过程包括以下3步:(1)接收中断,获取中断号;(2)在中断向量表中查找该中断号对应的中断服务程序地址;(3)执行该地址所指向的中断服务程序。CPU会根据不同中断类型来获取中断源的号码(中断号)并实现中断响应:若是硬件通过总线发来中断请求,则根据硬件中断逻辑装置提供的中断号,查询与系统硬件接口有关的中断向量表,其中的地址即为相关的服务程序的起始地址。若是软件中断(程序性中断、访管中断),则省去了第⑴、⑵步直接响应中断,执行操作系统的软件中断服务程序,由该程序决定需要调用操作系统的哪个服务程序。上述中断响应过程中CPU前后程序现场的切换由硬件实现。例如,在8086CPU中,当系统响应中断时,由硬件做如下处理:(1)F标志寄存器进栈;(2)置IF=0(关中断);(3)CS:IP的值进栈;(4)根据中断逻辑所得到的中断号n,从地址为0:n×4(中断向量表起始段地址为0)处取出4个字节的中断向量,依次加载到IP和CS。如果是软件中断则将软件中断服务程序的地址加载到IP和CS。(5)执行由CS:IP指定的物理地址开始的中断服务程序。其中“:”表示物理地址的形成格式。88086中,物理地址可以表示为“段地址:有效地址”,它表示物理地址=段地址×16+有效地址=20位物理地址。2020/2/18操作系统与实验教程第1章2124.中断处理与中断返回中断处理是指响应中断后,CPU执行中断服务程序对中断进行处理的过程,这个处理过程由程序(软件)实现。如图1-1中虚线中所框的部分。中断服务程序一般都由以下三步骤组成:(1)保护被中断程序的现场(除地址与状态寄存器以外);(2)中断处理或中断服务;(3)恢复被中断程序的现场,中断返回。中断过程由硬件和软件配合完成:硬件实现中断响应,软件实现中断处理。中断响应中断返回K+0K+1硬件实现现行程序保护被中断程序的现场中断服务程序恢复被中断程序的现场软件实现图1-1中断响应和处理过程2020/2/18操作系统与实验教程第1章2135.中断的禁止与开启在很多情况下,操作系统的服务程序都是原语操作,要求在执行过程中禁止被中断。为此,CPU提供了一对特权指令:关中断和开中断,来实现原语操作。例如,8086中对中断标志位的操作指令CLI关中断和STI开中断就是这样一对指令。原语操作的实现方法是:在中断服务程序开始时执行CLI,关闭中断,此后的执行过程中CPU将不再响应任何可屏蔽中断,从而实现原语操作;在中断返回之前执行STI,将中断打开,让CPU恢复对中断的响应。需要注意的是,这两条指令的功能是修改F标志寄存器的IF位。而该位的状态是开还是关只对硬件中断中的可屏蔽中断有效,对非屏蔽中断无效。2020/2/18操作系统与实验教程第1章2146.中断机制在操作系统中所起的作用中断机制的最大长处是方便处理随机事件。无论什么情况下,只要有随机事件发生,操作系统都可以通过中断机制中断当前程序的执行,转而执行处理该事件的服务程序。因此,中断给操作系统设计带来以下方便之处:(1)中断使得实时处理许多紧急事件成为可能;(2)中断可以实现处理机与外设的并行,提高处理机的执行效率;(3)中断可以实现多道程序之间的切换;(4)中断还可以让操作系统能够为用户程序提供一系列系统调用作为系统服务的支撑平台,简化操作系统和应用程序的开发设计过程。综上所述:中断是实现操作系统功能的基础,是构成多道程序运行环境的根本措施,是程序得以运行的直接或间接的“向导”,是各种事件被激活的驱动源。2020/2/18操作系统与实验教程第1章3151.6.580386的寄存器组操作系统是建立在系统提供的硬件基础上的第一层软件,因此,它所有的功能都与系统硬件有关,尤其是与CPU的结构和寻址方式有关。所以我们以80386为例,介绍有关的硬件组成,以方便后续章节的讨论。2020/2/18操作系统与实验教程第1章3161.基本结构寄存器组(1)通用寄存器80386有8个32位通用寄存器EAX、EBX、ECX、EDX、ESI、EDI、EBP和ESP,用于存放数据或地址。它们都可以分别以32位或16位寄存器使用,用于16位时,其名称前面不加E,比如AX、BX等。(2)段寄存器80386有6个16位段寄存器,分别是:CS、DS、ES、SS、FS、GS,其中CS是代码段,SS是堆栈段,其余是数据段。每个段寄存器都有一个与之对应的64位段描述符高速缓冲器,对用户是不可见。段寄存器结构如下图。其中:RPL特权级标志占2位,00(0级)最高,11(3级)最低。TI段描述符表的指示开关:TI=1

1 / 30
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功