处理器运行模式
计算机系统中,CPU执行两种不同性质的程序:一种是操作系统内核程序;另一种是用户自编程序(即系统外层的应用程序,简称应用程序)
这两种程序的作用不同,前者是后者的管理,因此“管理程序”(内核程序)要执行一些特权指令,而“被管理系统”(用户自编程序)出于安全考虑不能执行这些指令:
- 特权指令
这类指令是不允许用户直接使用的指令,比如说I/O指令、置中断指令,存取用于内存保护的寄存器、送程序状态字到程序状态字寄存器等指令。- 非特权指令
这类指令允许用户直接使用的指令,他不能直接访问系统中的软硬件资源,仅限于访问用户的地址空间,这也是为了防止用户程序对系统造成破坏。
那么CPU是怎样去运行这些指令的呢?
- 在此之前我们要知道计算机“指令”和高级语言“代码”是不同的。通常所说的”编写代码“指的是用高级语言来编写程序。但CPU看不懂这些高级语言程序的含义,为了让这些程序能顺利执行,就需要把他们”翻译“成CPU能懂的语言,即一条条”指令“。所谓执行程序,其实就是CPU根据一条条的指令来执行一个个具体的操作。
- CPU的运行模式划分为用户态和核心态,可以将CPU内部理解为有一个小开关(开关上有0和1两个标示),当开关指向0(断电)时,CPU处于核心态,此时CPU可以执行特权指令,切换到用户态的指令也是特权指令。当开关指向1(通电)时CPU处于用户态,此时CPU可以执行非特权指令。
提示:用户自编程序运行在用户态,操作系统内核程序运行在核心态。
内核在系统处于举足轻重的作用,它可以看作是连接应用程序和硬件的一座桥梁,那么他是怎样去管理资源的呢?
- 时钟管理
时钟是计算机中最关键的设备,他的第一个功能是计时,操作系统需要通过时钟管理向用户提供标准的系统时间;第二个是时钟的中断管理,可以实现进程的切换。- 中断机制
中断系统最开始是为了提高多道程序运行环境中CPU的利用率。中断机制中,只有一小部分功能属于内核,他们负责保护和恢复中断现场的信息,转移控制权到相关的处理程序。这样可以较少中断的处理时间,提高系统的并行处理能力。- 原语
系统中的设备驱动、CPU切换、进程通信等功能中的部分操作可以定义为原语,他的目的是确保在多个进程或线程同时访问共享资源时能够实现正确的同步和互斥。原语具备下列特点
1)处于操作系统的最底层,最接近硬件。
2)具有原子性,即一个操作要么全部执行完成,要么完全不执行,不会出现执行了一半就被中断的情况。
3)运行时间短且调用频繁。- 系统控制的数据结构及处理
系统中用来登记状态信息的数据结构很多,为了实现有效的管理,系统需要一些基本的操作,常见如下:
1)进程管理:进程状态管理、进程调度和分派、创建与撤销进程控制块
2)存储器管理:存储的空间分配和回收、内存信息保护程序、代码对换程序
3)设备管理:缓冲区管理、设备分配和回收等
中断和异常的概念
这里的中断和异常就可以理解为电路当中的断路和短路,如我们上面所说的CPU中的小开关,产生了中断或异常就调到0状态,一通电就调到1状态。操作系统的发展过程大体上就是一个想方设法不断提高的资源利用率的过程,而提高资源利用率就需要在程序并未使用某种资源时,把他对那种资源的占有权释放,而这一行为就需要通过中断实现。
中断也称 外部中断;异常也称内中断;下面是中断和异常的关系:
注: 需要注意的是中断是CPU执行指令外部的事件,异常是指CPU执行指令内部的事件。且异常不能被屏蔽,一旦出现就必须立即处理。
当CPU在执行用户程序的第3条指令时检测到了一个异常事件,或者在执行第3条指令后发现一个中断请求信号,则CPU打断当前的用户程序,然后转到相应的中断或异常处理程序去执行。若中断或异常处理程序能够解决相应的问题,则CPU在中断或异常处理完成后通过返回指令继续执行第3条或第4条指令。若中断或异常处理程序发现是不可恢复的致命错误,则终止用户程序。
经典试题
- 用户程序在用户态下要使用特权指令引起的中断属于_______________.
- 处理器执行的指令被分为两类,其中有一类称为特权指令,它只允许___________使用.
- 在中断发生后,进入中断处理的程序属于___________.
- ”访管“指令在________态使用.
- 当CPU执行操作系统代码时,处理器处于___________态.
- CPU处于核心态时,它可以执行的指令是______________.