操作系统基础
操作系统管理 CPU、内存、磁盘等硬件资源,为用户和应用程序提供稳定友好的运行环境。
操作系统四大特性
| 特性 | 说明 |
|---|---|
| 并发性 | 多个程序在同一时间段内运行 |
| 共享性 | 多个进程共同使用系统资源 |
| 虚拟性 | 一个物理资源映射为多个逻辑资源 |
| 不确定性 | 执行顺序受调度和资源影响 |
五大核心功能
| 功能 | 说明 |
|---|---|
| 进程管理 | 调度、创建、撤销进程 |
| 存储管理 | 内存分配、地址转换、虚拟内存 |
| 文件管理 | 创建/删除文件、目录、权限 |
| 设备管理 | 管理输入输出设备 |
| 作业管理 | 组织用户提交的作业执行 |
进程管理
进程是运行中的程序实例,通过 PCB (进程控制块) 唯一标识。
进程 = PCB + 程序 + 数据三态模型
就绪 -> 运行 -> 等待
^ | |
+------+-------+| 状态 | 说明 |
|---|---|
| 就绪 | 具备运行条件,只差 CPU |
| 运行 | 正在使用 CPU 执行 |
| 等待 | 等待某事件/I/O 完成 |
五态模型在此基础上增加了就绪挂起和阻塞挂起状态,用于进程换出内存。
前驱图
表示进程之间的先后依赖关系:
A \
B - -> D -> E
C /A/B/C 可并行执行,D 需等三者完成,E 需等 D 完成。
资源分配图
P= 进程,R= 资源R → P:资源已分配给进程P → R:进程正在请求资源
形成循环等待链时可能触发死锁。
同步与互斥
| 概念 | 说明 |
|---|---|
| 互斥 | 多个进程不能同时访问临界资源(如打印机、共享变量) |
| 同步 | 进程按指定顺序协调执行(如生产者-消费者) |
信号量
通过 P/V 操作实现同步与互斥:
- P 操作 (申请资源):
S = S - 1,若S < 0则阻塞 - V 操作 (释放资源):
S = S + 1,若S <= 0则唤醒一个等待进程
死锁
死锁的四个必要条件:
- 互斥条件 — 资源一次只能被一个进程使用
- 请求并保持 — 进程已占资源并请求更多
- 不可剥夺 — 已分配资源不能强制剥夺
- 循环等待 — 进程间形成资源等待环
银行家算法
分配资源前判断系统是否处于安全状态,只有安全时才分配。核心数据结构:
Available - 当前可用资源
Max - 各进程最大需求
Allocation - 已分配资源
Need - 还需资源 (= Max - Allocation)线程
| 维度 | 进程 | 线程 |
|---|---|---|
| 资源单位 | 拥有资源的单位 | 不独立拥有资源 |
| 调度单位 | 可调度 | 最小调度单位 |
| 共享 | 进程间隔离 | 同进程线程共享内存、文件 |
存储管理
逻辑地址 vs 物理地址
逻辑地址 -> 地址转换 -> 物理地址三种存储方式
| 方式 | 特点 | 问题 |
|---|---|---|
| 分区存储 | 固定/可变分区 | 内部/外部碎片 |
| 页式存储 | 等分页,通过页表映射 | 无外部碎片 |
| 段式存储 | 按逻辑结构分段 | 有外部碎片 |
| 段页式存储 | 先分段再分页 | 地址转换复杂 |
页式存储将逻辑地址分为页号+页内地址,通过页表找到物理块号,拼接后得到物理地址。好处是无外部碎片、便于实现虚拟内存。