内核程序与用户程序
程序 | 作用 | 可否使用特权指令1 | CPU的运行状态2 |
---|---|---|---|
内核程序 | 管理用户程序 | 可以使用 | 内核态(管态、核心态) |
用户程序 | 被内核程序管理 | 不可以使用 | 用户态(目态) |
内核态和用户态
如何区别用户态和内核态
- CPU中有一个程序状态寄存器(PSW),其中有一个二进制位,1表示"内核态",0表示"用户态"
如何切换用户态和内核态
- 内核态–>用户态:执行一条特权指令来修改PSW的标志位为"用户态",这个动作意味着操作系统将主动让出CPU使用权
- 用户态–>内核态:由==“中断”==引发,硬件自动完成变态过程,触发中断信号意味着操作系统将强行夺回CPU的使用权
操作系统自身的层次结构
- 操作系统的层次结构大致分为:时钟管理、中断处理、原语、系统控制的数据结构及处理
1. 时钟管理
- 时钟的作用:
- 计时
- 通过时钟中断的管理实现进程的切换
- 时钟在三种典型的操作系统中的作用
- 批处理系统:通过时钟管理来衡量一个作业的运行程度
- 分时操作系统:对进程进行时间片轮转调度
- 实时操作系统:按截止时间控制程序运行
2. 中断处理
- 中断的应用:鼠标或键盘的输入、进程的管理和调度、系统功能的调用、设备驱动、文件访问
- 中断的地位:现代操作系统是靠中断的软件
- 中断机制:只有一小部分功能属于内核,他们负责保护和恢复中断现场的信息,转移控制权到相关的处理程序。这样可以减少中断的处理时间,提高系统的并行能力
3. 原语
- 什么是原语:其实原语也是一种程序,只是它具备以下三个特点
- 处于操作系统最底层,最接近硬件
- 具有原子性,只能一气呵成,不可以被中断
- 执行时间很短,会被频繁调用
- 怎样定义原语:
- 在程序开始时候先关闭中断,待程序执行完成再打开中断
- 开关中断指令是特权指令,因此,原语必须是内核程序
- 哪些操作可以被定义为原语
- 设备驱动、CPU切换、进程通信等功能中的部分操作
4. 系统控制的数据结构及处理
- 操作系统中用来记录状态信息的数据结构
- 作业控制块(JCB)、进程控制块(PCB)、设备控制块(DCB)、各类链表、消息队列、缓冲区、空闲区登记表、内存分配表
- 常见的操作
进程管理(第二章内容):进程管理、进程调度和分配、创建与撤销进程
存储器管理(第三章内容):存储空间的分配与回收、内存信息保护程序、代码对换程序等
设备管理(第五章内容):缓冲区管理、设备分配和回收