Week2-操作系统运行环境-Coursera北大操作系统课程-个人笔记


  声明:本文的图片和内容均来自Coursera课堂。

1.处理器状态

1.1 中央处理器(CPU)的组成

  CPU由运算器、控制器、一系列的寄存器以及高速缓存构成。
  上述一系列寄存器通常包括两类寄存器:
  1).用户可见寄存器
  高级语言编译器通过优化算法分配并使用之,以减少程序访问内存次数。
  2).控制和状态寄存器
  用于控制处理器的操作,通常由操作系统代码使用。

1.2 控制和状态寄存器介绍

  控制和状态寄存器是用于控制处理器的操作,并在某种特权级别下可以进行访问和修改的寄存器。
  常见的控制和状态寄存器有:
  1).程序计数器(PC, Program Counter)
  记录将要取出的指令的地址。
  2).指令寄存器(IR, Instruction Register)
  记录最近取出的指令。
  3).程序状态字(PSW, Program Status Word)
  记录处理器的运行状态,如条件码、模式、控制位等信息。

  从操作系统的特征出发,操作系统具有“并发、共享”的特征,因此,需要要求操作系统提供保护与控制的功能(保护、控制什么?应该是硬件地址中数据的读取)。
  所以,需要硬件(CPU)提供基本的运行机制:
  1).处理器具有特权级别,能在不同的特权级运行的不同指令集合,例如X86系列处理器就具有R0,R1,R2,R3四个特权级别,其中R0基本权力最高;R3最低;其他R1,R2级别则介于两者之间。不同级别能够允许的指令集合不同。目前大多数基于X86处理器的系统只用了R0和R3两个级别。
  2).硬件机制可将OS与用户程序隔离。

  处理器的状态
  现代处理器通常将CPU状态设计划分为两种、三种或四种。
  在程序状态字寄存器PSW中专门设置一位,根据运行程序对资源和指令的使用权限而设置不同的CPU状态。例如下图中的X86架构中的EFLAGS寄存器,其中的第12、13位就是控制当前运行程序的特权级别,两位共可以表示4种处理器状态。
在这里插入图片描述

1.3 特权指令和非特权指令

  操作系统需要两种CPU状态:
  1).内核态(Kernel Mode)
  运行操作系统程序。例如X86系列中的R0特权级别,相当于内核态。
  2).用户态(User Mode)
  运行用户程序。例如X86系列中的R3特权级别,相当于用户态。

  特权指令:只能由操作系统使用、用户程序不能使用的指令。
  例如:启动I/O、内存清零、修改程序状态字、设置时钟、允许/禁止中断、停机等。
  非特权指令:用户程序可以使用的指令。
  例如:控制转移(具体指什么?)、算术运算、访管指令(也叫陷入指令)、取数指令等。
  其中,访管指令(又称陷入指令)是一条特殊的非特权指令,它是提供给用户程序的接口,用于调用操作系统的功能(也就是间接调用内核态指令的接口)。因为内核态也被称为管理员模式(Supervisor mode),所以这种访问管理员模式的指令称为访管指令。例如:int、trap、syscall、sysenter

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值