操作系统课堂笔记(2)操作系统的硬件环境之中央处理器

简介:
专门设计了一系列基本机制:
  - 具有特权级别的处理器状态,能在不同特权级运行的各种特权指令
  - 硬件机制使得OS可以和普通程序隔离, 实现保护和控制
   1.CPU的构成与基本工作方式
  处理器由运算器、控制器、一系列的寄存器以及高速缓存构成
  运算器实现指令中的算术和逻辑运算,是计算机计算的核心
  控制器负责控制程序运行的流程,包括取指令、维护CPU状态、CPU与内存的交互等等
  处理器中的寄存器
  寄存器提供了一定的存储能力,速度比主存快得多,造价高,容量一般都很小
  两类寄存器:
  用户可见寄存器,高级语言编译器通过算法分配并使用之,以减少程序访问内存次数
  控制和状态寄存器,用于控制处理器的操作
  由OS的特权代码使用, 以控制其他程序的执行
  用户可见寄存器
  机器语言直接引用
  包括数据寄存器、地址寄存器以及条件码寄存器
  数据寄存器(data register)又称通用寄存器
  主要用于各种算术逻辑指令和访存指令
  地址寄存器(address register)用于存储数据及指令的物理地址、线性地址或者有效地址,用于某种特定方式的寻址。如index register、segment pointer、stack pointer
  条件码寄存器保存CPU操作结果的各种标记位, 如算术运算产生的溢出、符号等等
  控制和状态寄存器
  用于控制处理器的操作
  大部分对于用户是不可见的
  一部分可以在某种特权模式(由OS使用)下访问
  常见的控制和状态寄存器:
  程序计数器(PC:Program Counter),记录将要取出的指令的地址
  指令寄存器(IR:Instruction Register),包含最近取出的指令
  程序状态字(PSW:Program Status Word),记录处理器的运行模式信息等等
   2.特权指令和非特权指令
  特权指令:只能由 操作系统使用的指令
  使用多道程序设计技术的计算机指令系统必须要区分为特权指令和非特权指令
  特权指令一般引起处理器状态的切换
  处理器通过特殊的机制将处理器状态切换到操作系统运行的特权状态(管态)
  然后将处理权移交给操作系统中的一段特殊代码,这一个过程称为陷入
  CPU如何知道当前运行的是操作系统还是一般应用软件?有赖于处理器状态的标识
3.处理器的状态
  根据运行程序对资源和机器指令的使用权限将处理器设置为不同状态——程序状态字PSW
  多数系统将处理器工作状态划分为管态和目态
  管态:操作系统管理程序运行的状态,较高的特权级别,又称为特权态(特态)、核心态、系统态
  目态:用户程序运行时的状态,较低的特权级别,又称为普通态(普态)、用户态
  具体处理器将CPU状态划分为两种、三种或四种
   4.程序状态字PSW (Program Status Word )
  在PSW中专门设置一位,根据运行程序使用指令的权限而设置CPU状态
  CPU的工作状态码——指明管态还是目态,用来说明当前在CPU上执行的是操作系统还是一般用户,从而决定其是否可以使用特权指令或拥有其他的特殊权力
  条件码——反映指令执行后的结果特征
  中断屏蔽码——指出是否允许中断
  CPU状态的转换
  目态→管态
  唯一途径  是  中断(广义)
  管态→目态
  设置PSW(修改程序状态字) 可实现
  一条特殊的指令:访管指令
  供用户调用操作系统的功能(服务)
  INT,TRAP,SYSCALL   


最新内容请见作者的GitHub页:http://qaseven.github.io/
   
目录
相关文章
|
22天前
|
存储 人工智能 编译器
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
49 10
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
|
5月前
|
监控 Linux 云计算
Linux操作系统在云计算环境中的实践与优化###
【10月更文挑战第16天】 本文探讨了Linux操作系统在云计算环境中的应用实践,重点分析了其在稳定性、安全性和高效性方面的优势。通过具体案例,阐述了Linux如何支持虚拟化技术、实现资源高效分配以及与其他开源技术的无缝集成。文章还提供了针对Linux系统在云计算中的优化建议,包括内核参数调整、文件系统选择和性能监控工具的应用,旨在帮助读者更好地理解和应用Linux于云计算场景。 ###
125 3
|
5月前
|
iOS开发 MacOS
MacOS环境-手写操作系统-40-进程消息通讯 和 回车键处理
MacOS环境-手写操作系统-40-进程消息通讯 和 回车键处理
45 2
|
5月前
|
存储 API C语言
MacOS环境-手写操作系统-46,47-C语言开发应用程序
MacOS环境-手写操作系统-46,47-C语言开发应用程序
66 1
|
5月前
|
Web App开发 Shell Linux
MacOS环境-手写操作系统-41-mem 第一个控制台程序
MacOS环境-手写操作系统-41-mem 第一个控制台程序
39 1
|
5月前
|
存储 C语言 iOS开发
MacOS环境-手写操作系统-48-让内核从错误中恢复
MacOS环境-手写操作系统-48-让内核从错误中恢复
73 0
|
5月前
|
编译器 API C语言
MacOS环境-手写操作系统-45-C语言开发应用程序
MacOS环境-手写操作系统-45-C语言开发应用程序
86 0
|
5月前
|
小程序 iOS开发 MacOS
MacOS环境-手写操作系统-44-运行简单的程序
MacOS环境-手写操作系统-44-运行简单的程序
53 0
|
5月前
|
存储 Java iOS开发
MacOS环境-手写操作系统-43-dir命令的实现 和 文件写入
MacOS环境-手写操作系统-43-dir命令的实现 和 文件写入
68 0
|
5月前
|
iOS开发 MacOS
MacOS环境-手写操作系统-42-Cls清屏
MacOS环境-手写操作系统-42-Cls清屏
54 0

热门文章

最新文章