操作系统 operating system 2
第二章 处理器管理
处理器与寄存器
处理器
上图各组件通过内部总线连接起来,构成一个不包含通用寄存器、I/O相关寄存器、地址寄存器、数据寄存器和Cache的示意图。
CPU中的各组件描述
- 算数逻辑单元:计算结束之后会将结果的标志放置到标志寄存器 Flag 中。
- 控制单元:包含重要的指令译码器 ID,而指令是放置在指令暂存器 IR 中。
- 程序计数器 PC:下一条指令的地址
- 内存地址寄存器和内存数据寄存器:用来完成对内存数据的访问。
通过系统总线来访问内存中的数据,首先设置地址和数据,然后通过控制来完成数据的读取和写回。
时钟等外部信号来反应到处理器线程中来。
寄存器
用户程序可见寄存器
- 减少访问主存储器次数,提高指令执行效率
- 所有程序可使用,包括应用程序和系统程序
- 数据寄存器:又称通用寄存器
- 地址寄存器:索引、栈指针、段地址等寄存器
程序与状态寄存器
- 用于控制处理器的操作
- 主要被具有特权的操作系统程序使用,以控制程序的执行
- 程序计数器PC:存储将取指令的地址
- 指令寄存器IR:存储最近使用的指令
- 条件码CC:CPU为指令操作结果设置的位,标志正/负/零/溢出等结果
- 标志位:中断位、中断允许位、中断屏蔽位、处理器模式位、内存保护位…等
标志位 含义 中断位 是否有中断发生了,中断源是什么 中断允许位 表示目前是否响应中断 中断屏蔽位 中断发生了,中断响应了,我们要不要屏蔽中断 处理器模式位 现在处理器是处于何种模式 内存保护位 对这段内存是只读还是读写还是不可操作
程序状态字PSW
- PSW既是操作系统的概念,指记录当前程序运行的状态信息,通常包括:
- 程序计数器、指令寄存器、条件码
- 中断字、中断允许/禁止、中断屏蔽、处理器模式、内存保护、调试控制
- PSW也是计算机系统的寄存器
指令
机器指令
机器指令是计算机系统执行的基本单位,是中央处理器执行的基本单位
指令由一个或多个字节组成,包括操作码字段、一个或多个操作数地址字段,以及一些状态字和特征码
指令完成各种算术逻辑运算、数据传输、控制流跳转
指令执行过程
- 取指:根据PC从存储器中拿到指令IR
- 解码:解译IR中的指令来决定其执行行为
- 执行:连接到CPU不见,执行运算,产生结果并写回,同时在CC里设置运算结论标志;重新设置PC
指令执行周期与指令流水线
指令执行周期
指令流水线
特权指令与非特权指令
用户程序并非能够使用全部机器指令,那些与计算机核心资源相关的特殊指令会被保护
- 特权指令:只能被操作系统内核使用的指令
- 非特权指令:能够被所有程序使用的指令
处理器模式
- 处理器模式
- 计算机通过设置处理器模式实现特权指令管理
- 计算机一般设置0、1、2、3等四种运行模式,建议分别对应:0操作系统内核、1系统调用、2共享库程序、3用户程序等保护级别
- 现代操作系统只使用0和3两种模式,对应于内核模式和用户模式
- 处理器模式的切换
- 中断、异常或系统异常等事件导致用户程序向OS内核切换
- 包括“用户模式→内核模式”和“内核模式→用户模式”的转换
- OS内核处理完成后,调用中断返回指令
栈空间
用户栈
- 用户栈是用户进程空间中开辟的一块区域,用于保存应用程序的子程序间相互调用的参数、返回值、返回点以及子程序的局部变量
- 如果只有用户栈,没有核心站,那么操作系统则很难对核心站的数据提供响应的保护措施
核心栈
- 核心栈也叫系统栈
- 或内核栈,是内存中属于操作系统空间的一块区域,其用途包含以下两种:
- 保存中断现场,嵌套中断
- 保存操作系统程序(函数)间相互调用的参数、返回值、返回点以及程序局部变量。
- 每个进程有一个核心栈:可读可写不可执行,大小有限
- 硬件栈指针只有一个
中断与中断源
中断的概念
中断是指程序执行过程中,遇到急需处理的事件时,暂时中止CPU上现行程序的运行,转去执行相应的事件处理程序,待处理完成后再返回原程序被中断处或调度其他程序执行的过程
操作系统是“中断驱动”的
中断、异常与系统异常
- 狭义的中断指来源于处理器之外的中断事件,即与当前运行指令无关的中断事件,如I/O中断、时钟中断、外部信号中断等
- 异常指当前运行指令引起的中断事件,如地址异常、算术异常、处理器硬件故障等
- 系统异常指执行陷入指令而触发系统调用引起的中断事件,如请求设备、请求I/O、创建进程等
中断源
- 处理器硬件故障中断事件
- 由处理器、存储器等硬件故障引起
- 保护现场,停止设备,停止CPU,向操作员报告,等待人工干预
- 程序性中断事件
- 处理器执行机器指令引起
- 算术异常简单处理后报告用户,也可以由用户编写中断续元程序处理
- 非法指令、用户态使用特权指令、地址越界等终止进程
- 虚拟地址异常,调整内存后重新执行指令
- 自愿性中断事件
- 处理器执行陷入指令请求OS服务引起;在操作系统中,它一般又被称作系统调用
- 请求分配外设、I/O等,陷入OS、保护现场,根据功能号查入口地址,跳转具体处理程序
- I/O中断事件
- 来源于外围设备报告I/O状态的中断事件
- 外部中断事件
- 由外围设备发出的信号引起的中断事件
- 处理器硬件故障中断事件
中断系统
- 中断系统是计算机系统中响应和处理中断的系统,包括硬件子系统和软件子系统
- 中断响应由硬件子系统完成
- 中断处理由软件子系统完成
- 在指令执行周期最后增加一个微操作,以响应中断
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 软件工程专业技术分享!
评论