操作系统原理是计算机科学中的核心课程,它探讨操作系统如何管理计算机硬件和软件资源,以提供高效、安全、可靠的环境供用户和应用程序使用。以下是从给定的文件内容中提炼出的相关知识点:
1. **核态与用户态**:
- 核态(Kernel Mode)是指操作系统内核运行的状态,此时处理器具有最高权限,可以执行所有指令,主要用于执行关键操作和管理系统资源。
- 用户态(User Mode)是用户程序运行时的状态,权限较低,只能执行非特权指令,若需访问敏感资源必须通过系统调用来请求操作系统服务。
2. **区分二态的原因**:
- 分为核态和用户态是为了保护操作系统免受用户程序的意外破坏,确保系统的稳定性和安全性。
- 系统通过设置处理器的状态标志来区分这两种状态,例如在某些CPU中,有专门的标志位来表示当前执行上下文是在核态还是用户态。
3. **中断类型**:
- I/O中断:发生在设备完成数据传输时。
- 外中断:通常由外部事件(如定时器或键盘)引发。
- 硬件故障中断:用于报告硬件错误。
- 程序性中断:由软件指令(如除零操作)触发。
- 访管中断:允许用户程序请求操作系统服务,从用户态切换到核态。
4. **程序状态字**:
- 程序状态字(PSW)记录了程序执行时的当前状态,包括条件码、中断禁止位、处理器状态等。
- 在微机中,PSW通常由指令计数器(PC)和处理机状态寄存器(PSR)组成。
5. **向量中断**与**中断向量**:
- 向量中断是指中断处理过程中,由中断源提供中断服务程序的地址和状态信息,引导处理器执行中断处理。
- 中断向量是存储在内存特定位置的中断服务例行程序的入口地址和处理器状态字的组合。
6. **操作系统虚拟机**:
- 操作系统虚拟机是指配置了操作系统的计算机,操作系统提供了一个抽象的硬件平台,使得用户可以使用更高级的指令集,而不仅仅是硬件直接支持的基本指令。
7. **用户与操作系统的接口**:
- 接口是用户与操作系统交互的方式,包括系统调用和操作命令。
- 分时系统通常提供系统调用和键盘命令接口,允许用户直接交互。
- 批处理系统则通过系统调用和作业控制语言(JCL)接口,处理批量任务。
8. **系统调用**:
- 系统调用是用户程序请求操作系统服务的唯一途径,它提供了对硬件和操作系统服务的受控访问。
- 系统调用与普通子程序调用的区别在于:系统调用在核态执行,涉及硬件中断机制;而子程序调用仅在用户态进行,不涉及核心功能。
9. **系统调用执行过程**:
- 用户程序将系统调用参数放入指定寄存器,执行调用指令。
- 处理器保存用户态现场,加载系统调用编号,查找并跳转到对应的系统调用处理程序。
- 系统调用处理完成后,恢复用户态现场,将结果返回给用户程序。
10. **进程概念**:
- 进程是程序在特定数据集上的执行实例,具有生命周期,包括创建、执行、暂停和终止等阶段。
- 程序是静态的指令集合,而进程是动态的运行实体,二者并非一一对应。
11. **进程与程序的区别**:
- 程序是静态的,没有执行概念,而进程是动态的,有生命周期。
- 程序作为数据存储,而进程包括程序、数据和进程控制块(PCB)。
- 进程可以并发执行,同一程序可能对应多个并发的进程。
- 进程是独立的执行单位,系统资源分配和调度的基本单位。
以上知识点涵盖了操作系统的基本原理,如处理器状态管理、中断处理、操作系统服务接口、进程的概念及其与程序的区别,以及系统调用的执行流程等。这些内容对于理解和设计操作系统至关重要。