处理器

154 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 5 天,点击查看活动详情


特权指令和非特权指令

为什么分为特权指令和非特权指令

资源管理控制程序执行的角度,必须把指令进行区分;通俗来讲因为应用程序在执行相关指令的时候,可能系统的混乱。所以把指令分为特权和非特权。

特权指令和非特权指令区别

特权指令:只能在内核态才能使用的指令 非特权指令:不能在内核态执行的指令

用户态和内核态

处理器有两种状态:内核态和用户态。

内核态:处理器可以执行全部的指令,使用所有的资源。

用户态:处理器只能执行非特权指令,不能执行特权指令

处理器状态的转换

什么情况下处理器会从用户态向内核态转换

  1. 程序请求操作系统服务,执行系统调用
  2. 程序运行过程产生中断事件
  3. 程序运行的时候发生异常

内核态怎么转换到用户态

计算机会提供一条叫做加载程序状态字的特权指令,实现内核态到用户态的转换。

用户栈和内核栈

用户栈: 用户进程空间的一片区域,用于保存应用程序间相互调用的参数、返回值以及子程序的局部变量。

内核栈: 内存中属于操作系统空间的一款区域。 其用途有两个方面:

  1. 保存操作系统程序简单的相互调用的参数、返回值以及程序的局部变量
  2. 保存中断现场信息

题目练习

为了方便操作系统对系统资源的管理与程序运行控制,一般会将指令分为以下哪两类( )

  • A. 资源指令与非资源指令
  • B. 特权指令,非特权指令
  • C. 管理指令与控制指令
  • D. 运行指令与非运行指令

我的答案:  B

从操作系统来分析,CPU有两种关键重要的状态,这是( )

  • A. 管理态与被管理态
  • B. 控制态与被控制态
  • C. 用户态与内核态
  • D. CPU态与非CPU态

我的答案:  C

( )是用户态转向内核态的唯一方法途径。

  • A. 函数调用
  • B. 操作接口
  • C. 中断机制
  • D. iret

我的答案:  C