CPU模式

来源:互联网 发布:长虹网络电视价格 编辑:程序博客网 时间:2024/04/30 07:31

1、CPU模式也称CPU状态。

通常将操作系统程序的运行状态称为内核态(或核心态、管态)。将用户程序的运行状态称为用户态(或目态)。

这样做的目的是为了确保操作系统的正常执行,程序的执行空间分为内核空间用户空间,各自按不同的权限运行。

逻辑上相互隔离,用户程序只能在用户空间中操作用户数据。许多操作系统采用硬件支持来区分各种执行模式。

---- 当CPU处于内核态时,程序可以执行全部指令包括特权指令,使用所有资源,具有改变CPU状态的能力;

---- 当CPU处于用户态时,程序只能执行非特权指令,如果用户程序执行特权指令,会导致非法执行而产生保护中断,

      继而转向操作系统的“用户非法执行特权指令”的异常处理程序进行处理。

特权指令是指只能提供给操作系统的核心程序使用的指令。如启动I/O设备、设置时钟、控制中断屏蔽位、清主存、加载程序状态字(PSW)等。

2、状态转换

导致CPU从用户态-->内核态转换的情况

1)程序请求操作系统服务,执行系统调用。

2)程序运行时,产生中断或异常事件,运行程序被中断,转向中断处理或异常处理程序工作。

两类情况都通过中断机制发生,中断和异常用户态到内核态转换仅有的途径。

当从用户态转向内核态,不仅CPU模式需要切换,而且所使用的堆栈也可能需要由用户堆栈切换到内核堆栈。

以下图说明用户态到内核态的转换:

为了从内核态转向用户态,操作系统提供一条特权指令称作加载程序状态字,用来实现从内核态返回到用户态,

将控制权交给应用进程。

=========================================

内核态具有较高的特权,能执行一切指令,访问所有寄存器和存储区,通常操作系统内核就运行在内核态

用户态是一种具有较低特权的执行状态,它只能执行规定的指令,访问规定的寄存器和存储区。通常用户程序都是运行在用户态

习题:

1)当操作系统程序退出执行,让用户程序执行时,系统会:从内核态变为用户态

2)当CPU执行操作系统内核代码时,称处理器处于:内核态

3)当CPU处于内核态时,它可以执行的指令是:计算机中的所有指令

4)当CPU处于用户态时,它可以执行的指令是:仅限于非特权指令包括访管指令

5)从用户态到内核态的转换是由硬件完成的。

A、硬件    B、内核态程序   C、用户程序    D、中断处理程序

解析:从用户态到内核态的转换是用户程序执行访管指令,引起一次中断,触发中断后,硬件中断机制将计算机状态置为用户态。

           内核态程序是指在内核态下执行的程序。

6)用户在程序中试图读取存放在硬盘中某文件的第2个逻辑块,使用操作系统提供的接口是:系统调用

解析:操作系统接口有命令接口、程序接口(或系统调用)和图形接口,访问存放在外存储器中的文件,需要内核来实现,

           用户程序只能通过系统调用来完成这一工作。

7)一般的过程调用是调用一个应用过程或者某个系统程序,它们都处于同一状态下,即用户态或内核态。

     而系统调用的调用者是运行在用户态的用户程序,被调用过程一定是系统程序,而系统程序只能在系统态下运行。

8)访管指令仅在用户态时使用,执行访管指令将用户态转换为内核态

     用户程序在执行访管指令时会产生访管中断

9)在操作系统中,读时钟指令,寄存器清零、置时钟指令和取数指令中,只能在内核态下执行的指令是置时钟指令

解析:若在用户态下执行置时钟指令,则一个用户进程可以在时间片还未到之前把时钟改回去,从而导致时间片永远不会用完。

10)内部中断是由CPU及内存的某种内部因素引起的,如运算溢出等,内部中断通常称为:自陷或陷入

11)外部中断是由CPU及内存外部的中断事件引起的,如I/O设备产生的中断。

12)通常将CPU模式分为内核态用户态,这样做的目的是:为了提高操作系统的安全性

13)中断的处理是由硬件和软件协同完成的,各中断处理程序是操作系统的重要组成部分,所以对中断的处理是在内核态在进行的。

14)如果没有中断,在单处理器环境中是否能够实现多道程序设计?为什么?

答:不能。因为一个程序一旦被调度执行,将一直执行下去,中间不可能被打断,不能达到多个进程交替执行的并发目的。

15)简述中断处理过程。

答:当中断发生时,一旦CPU响应中断,系统就开始进行中断处理。中断处理的过程如下:

(1)保护被中断进程的现场。为了在中断处理结束后能使进程正确地返回到中断点,系统必须保存当前处理器的程序状态字(PSW)

     和程序计数器(PC)等的值。

(2)分析中断原因,转去执行相应的中断处理程序。在多个中断请求同时发生时,处理优先级最高的中断源发出的中断请求。

(3)恢复被中断进程的现场,CPU继续执行原来被中断的进程。

 

0 0
原创粉丝点击