OS 的基本概念

操作系统的四个基本特征是{c1: 并发}、{c2: 资源共享}、{c3: 虚拟}和{c4: 异步}.

在操作系统的所有基本特征中, 最基本的两个特征是{c1: 并发}和{c2: 资源共享}.

Q: 并发与并行的区别?
A: - 并发: 宏观上同时, 微观上交替执行. 关键在于一个时间段内处理多个任务.

  • 并行: 真正意义上的同时执行. 关键在于同一时刻处理多个任务 (需要多核处理器支持).

Q: 并行并发哪个才是真正意义上的同时执行?
A: 并行

Q: 操作系统的异步性指的是什么现象?
A: 指系统中的进程以不可预知的速度向前推进, 导致程序执行的顺序和时间都具有不确定性.

Q: 操作系统为用户提供的两种接口是什么
A: 命令接口(shell)
程序接口(系统调用)

操作系统的四大最基本功能是{c1: 进程管理}、{c2: 内存管理}、{c3: 文件管理}和{c4: 设备管理}.

操作系统发展历程

批处理系统

Q: 单道批处理和多道批处理最核心的区别在于, 当作业因 I/O 阻塞时, CPU 分别处于什么状态?
A: - 单道批处理: CPU 空闲等待, 造成资源浪费.

  • 多道批处理: CPU 切换到另一个作业, 提高了利用率.

多道批处理系统
当某道程序因请求 I/O 操作而暂停运行时, CPU 便立即转去运行另一道程序
这是通过{中断}机制实现的

分时操作系统

Q: 分时操作系统的定义
A: 多个用户通过终端同时共享一台主机, 这些终端连接在主机上, 用户可以同时与主机进行交互操作而互不干扰.

实时操作系统

Q: 实时操作系统的主要特点?
A: 及时性和可靠性

Q: 分时操作系统实时操作系统在设计目标上最主要的区别是什么?
A: - 分时系统: 追求对用户交互的及时响应 (交互性).

  • 实时系统: 追求对外部事件的及时处理和高可靠性 (及时性、可靠性).

系统调用

Q: 判断一条指令是否可能属于”系统调用”的一个通用准则是?
A: 它是否需要访问系统核心资源(如 I/O 设备、文件系统、进程控制块等). 因为这些资源不允许用户程序直接操作.

Q: 输入与输出指令是系统调用吗?
A: 是的
访问系统资源的指令一般都是系统调用
输入与输出指令都涉及到了系统资源的访问

{硬件}完成用户态到核心态的转换
{中断处理程序}(什么程序) 完成内核态到用户态的转换

访管指令的”访管”意为”{访问管理系统资源}”

Q: 为什么”访管指令”必须在用户态下执行, 而不能在内核态执行?
A: 因为”访管指令”的目的就是触发从用户态到内核态的转换, 以请求系统服务. 在内核态时, 程序已拥有权限, 无需再”请求”, 因此该指令在内核态没有意义.

内核态可以执行所有的指令, 除了{访管}指令

系统调用和一般过程调用的区别
系统调用需要保存 CPU 中的 {c1: PSW} 和 {c1: PC} 的值
一般过程调用需要保存 CPU 中的 {c2: PC} 的值

Q: 为什么系统调用需要保存 CPU 中的 PSW 值?
A: 因为从用户态切换到内核态, PSW 中的状态位(如中断屏蔽位、特权级位) 会发生改变. 为了在返回用户态时能恢复到原始状态, 必须提前保存.

Q: 为什么页置换 (Page Replacement) 和进程调度 (Process Scheduling) 不属于系统调用?
A: 因为它们是由操作系统内核主动执行的管理功能, 而不是由用户程序通过”访管指令”发起的请求. 系统调用是用户程序请求系统服务的接口.

系统调用与中断

Q: CPU 检测到中断信号后, 由硬件 (中断隐指令) 自动保存的是什么?
A: 被中断程序的断点, 即程序计数器 (PC) 和程序状态字寄存器 (PSW) 的内容.

Q: 硬件在完成保存断点和模式切换后, 如何找到对应的中断处理程序?
A: 硬件通过中断信号查询”中断向量表”, 从中找到对应的中断服务程序的入口地址.

Q: 中断服务程序 (软件) 开始执行后, 在处理具体中断事件之前, 需要先保存什么?
A: 需要保存”现场”

中断服务程序 (软件) 在保存现场时候具体需要保存什么
保存 {PSW}, {中断屏蔽字}和{通用寄存器}

Q: 中断处理过程由哪两大部分负责?
A: 中断隐指令 (硬件) 和中断处理程序 (软件).

Q: 在中断处理过程中, 硬件 (中断隐指令) 负责哪三个核心步骤?
A: 1. 关中断
2. 保存断点 (PC 和 PSW)
3. 识别中断源 (并转入中断服务程序)

Q: 在中断处理过程中, 软件 (中断处理程序) 负责哪些核心步骤?
A: 1. 保存现场 (通用寄存器等)
2. 中断事件处理
3. 恢复现场
4. 开中断并返回

Q: 中断隐指令需要保护通用寄存器中的内容吗?
A: 不需要这是中断处理程序的工作

Q: 中断隐指令的保存断点与中断处理程序的保存现场
分别需要保存哪些寄存器?
A: 中断隐指令: PC, PSW
中断处理程序: 通用寄存器, 指针和变址寄存器, 浮点/多媒体寄存器等等

操作系统结构

Q: 微内核拥有操作系统的四大功能中的哪两个?
A: 进程管理
内存管理
但也只有这两个的一部分

Q: 微内核 (Microkernel) 架构相比于宏内核 (Monolithic Kernel) 架构, 其主要优点是什么?
A: 可靠性、安全性和灵活性更高. 因为许多 OS 服务都在用户态作为独立的进程运行, 一个服务崩溃不会影响整个系统.

Q: 宏内核 (Monolithic Kernel) 架构相比于微内核 (Microkernel) 架构, 其主要优点是什么?
A: 性能更好. 因为内核服务之间的通信是简单的函数调用, 而非微内核中开销更大的进程间通信 (IPC).

操作系统引导

Q: 为什么操作系统初始化的过程中需要创建中断向量表?
A: 操作系统初始化的时候, 可能遇到各种情况, 发生中断
例如, 通电自检 (POST) 过程中可能出现中断信号
需要查询中断向量表, 跳转到相应的中断处理程序

Q: 中断向量表由硬件还是操作系统初始化?
A: 操作系统

虚拟机

Q: 第一类虚拟机与第二类虚拟机区别
A: - 第一类: 虚拟机管理程序直接运行在硬件上, 更高效 (如 PVE, ESXi).

  • 第二类: 虚拟机管理程序作为一个应用程序运行在宿主操作系统上 (如 VirtualBox, VMware Workstation, WSL).