在备战软考高级系统架构设计师的过程中,操作系统作为核心考点之一,需要系统性地掌握其核心原理。本文将从操作系统分类、进程状态模型、同步互斥机制、死锁问题及存储管理五大模块展开梳理,结合考试高频考点和实际案例进行解析。
一、操作系统分类
- 批处理操作系统
• 单道批处理:一次仅执行一个作业,CPU利用率低。
• 多道批处理:允许多个作业驻留内存,通过作业调度算法(如先来先服务、短作业优先)提高资源利用率。
• 特点:支持外设与CPU并行工作,但交互性差。
- 分时操作系统
• 核心机制:将CPU时间划分为时间片,轮流分配给多个终端用户。
• 优势:响应时间快,支持多用户交互(如Linux、Unix)。
- 实时操作系统
• 分类:硬实时(严格截止时间)与软实时(允许延迟)。
• 应用场景:工业控制、航空航天等对时效性要求高的领域。
- 网络操作系统
• 功能:支持网络资源共享(如文件共享、打印服务),管理网络通信。
• 典型架构:集中式、客户端/服务器模式、对等模式。
- 分布式操作系统
• 特点:无主从之分,多台计算机通过通信协同工作,可靠性高。
• 与网络操作系统的区别:分布式系统强调资源的统一管理和透明访问。
二、进程状态模型
- 三态模型
• 运行态:进程占用CPU执行。
• 就绪态:进程具备运行条件,等待CPU分配。
• 阻塞态:进程因等待I/O等事件无法执行。
• 状态转换:
运行态
↔
就绪态
(时间片用完/高优先级进程抢占)
就绪态 → 阻塞态
(等待资源)
阻塞态 → 就绪态
(资源就绪)。
- 五态模型
• 新增状态:
• 静止就绪态:进程被挂起但可被唤醒(如人为暂停任务)。
• 静止阻塞态:进程因资源不足被挂起。
• 转换路径:
活跃就绪
↔
静止就绪
(挂起/恢复)
活跃阻塞
↔
静止阻塞
(资源满足/不满足)。
三、同步与互斥机制
- 信号量与PV操作
• 信号量:整型变量,初值表示可用资源数。
• P操作:申请资源(S=S-1
,若S<0则阻塞)。
• V操作:释放资源(S=S+1
,若S≤0则唤醒等待进程)。
- 互斥控制
• 临界区保护:通过互斥信号量(初值=1)确保同一时间仅一个进程进入临界区。
P(mutex);
// 临界区代码
V(mutex);
- 同步控制
• 生产者-消费者问题:
使用两个信号量empty
(缓冲区空位)和full
(缓冲区产品数)协调生产与消费节奏。
四、死锁问题
- 死锁定义
• 多个进程因竞争资源形成循环等待,导致所有进程无法继续执行。
- 必要条件
• 互斥:资源独占使用。
• 请求与保持:进程持有资源同时申请新资源。
• 不可剥夺:资源未使用完前不可强制回收。
• 循环等待:进程间形成资源依赖环。
- 解决方法
• 预防:破坏必要条件(如一次性分配资源)。
• 避免:银行家算法动态检测资源分配安全性。
• 检测与解除:资源分配图法、进程终止/资源抢占。
银行家算法示例
• 步骤:
- 检查进程最大需求是否超过系统总资源。
- 分配资源后模拟运行,判断是否进入安全状态。
- 若安全则分配,否则等待。
五、存储管理
- 核心任务
• 内存分配与回收、地址映射、保护与共享、虚拟内存扩展。
- 地址转换
• 逻辑地址:程序生成的地址(由段号和页号组成)。
• 物理地址:实际内存地址,通过基址寄存器+偏移量计算。
- 重定位方式
• 静态重定位:程序加载时完成地址转换。
• 动态重定位:运行时通过MMU实时转换。
- 内存管理技术
• 分页:将内存划分为固定大小页,通过页表映射逻辑页到物理页。
• 分段:按程序逻辑划分段(如代码段、数据段),支持动态扩展。
• 段页式:结合分段和分页,先分段再分页,提高内存利用率。