操作系统
进程 vs 线程
| 进程 | 线程 | |
|---|---|---|
| 资源 | 独立资源单位 | 共享进程资源 |
| 调度 | 开销大 | 开销小 |
| 通信 | IPC(管道、消息队列、共享内存) | 直接读写共享数据 |
| 独立性 | 互不干扰 | 一个线程崩溃可能影响整个进程 |
死锁
四个必要条件
- 互斥 — 资源一次只能被一个进程使用
- 持有并等待 — 持有资源的同时等待其他资源
- 不可剥夺 — 资源不能被强制释放
- 循环等待 — 形成进程-资源的环形等待链
处理策略
- 预防 — 破坏四个必要条件之一
- 避免 — 银行家算法
- 检测 — 资源分配图
- 恢复 — 终止进程、资源抢占
内存管理
虚拟内存
- 每个进程拥有独立的地址空间
- 通过页表映射到物理内存
- 缺页时触发缺页中断,从磁盘换入数据
页面置换算法
- FIFO — 先进先出,可能有 Belady 异常
- LRU — 最近最少使用
- LFU — 最不经常使用
- Clock — 近似 LRU