一、操作系统概述
1.1 定义与核心目标
- 定义:操作系统(OS)是管理计算机硬件与软件资源的系统软件,作为用户与硬件之间的接口,提供任务调度、资源分配、设备控制等功能。
- 核心目标:
- 有效性:提高资源利用率(如CPU、内存)和系统吞吐量。
- 方便性:通过GUI、命令接口或系统调用简化用户操作。
- 可扩展性:适应硬件和应用的升级需求(如微内核架构支持模块化扩展)。
- 开放性:遵循国际标准,支持跨平台兼容性(如网络协议兼容)。
1.2 基本功能
- 处理器管理:进程调度、同步与通信。
- 存储管理:内存分配、虚拟内存实现。
- 文件管理:文件系统组织、权限控制。
- 设备管理:硬件驱动、I/O控制。
- 用户接口:GUI、命令行、系统调用。
1.3 基本特征
| 特征 | 描述 | 技术实现 |
|-----------|----------|--------------|
| 并发 | 多任务交替执行(单核)或并行执行(多核) | 进程/线程调度、时间片轮转 |
| 共享 | 资源被多个进程共用,分互斥共享(如打印机)和同时访问(如磁盘) | 信号量、临界区 |
| 虚拟 | 物理资源抽象为逻辑资源(如虚拟内存、虚拟CPU) | 时分复用(CPU)、空分复用(内存) |
| 异步 | 进程执行顺序不可预测,受资源竞争影响 | 进程状态管理、中断处理 |
二、进程管理
2.1 进程与线程
- 进程:资源分配的基本单位,拥有独立内存空间(PCB描述)。
- 线程:CPU调度的最小单位,共享进程资源,轻量级执行流。
- 对比:
| 对比项 | 进程 | 线程 |
|------------|------|------|
| 资源开销 | 大(独立内存) | 小(共享内存) |
| 通信成本 | 高(需IPC) | 低(共享变量) |
| 切换速度 | 慢(上下文切换) | 快(仅寄存器) |
2.2 进程状态模型
- 五状态模型:
| 状态 | 描述 |
|------------|--------------------------|
| 创建 | 分配PCB,资源未就绪。 |
| 就绪 | 仅缺CPU,等待调度。 |
| 执行 | 占用CPU运行指令。 |
| 阻塞 | 等待I/O或资源,让出CPU。 |
| 终止 | 释放资源,回收PCB。 |
2.3 进程同步与通信
- 经典问题:
- 生产者-消费者:缓冲区同步问题,需信号量控制(empty/full/mutex)。
- 哲学家进餐:死锁避免策略(如限制同时拿筷子数)。
- 同步机制:
- 互斥锁:保证临界区资源独占访问。
- 信号量:控制资源数量的计数器(P/V操作)。
- 管程:封装共享变量和操作的高级同步结构。
2.4 调度算法
| 算法 | 特点 | 适用场景 |
|----------------|----------------------------------------|--------------|
| FCFS | 非抢占,公平但平均等待时间长。 | 批处理系统 |
| SJF | 最短作业优先,减少平均等待时间。 | 短任务密集 |
| 时间片轮转 | 公平分配CPU时间片,适用于分时系统。 | 交互式系统 |
| 优先级 | 高优先级优先,可抢占或非抢占。 | 实时系统 |
三、存储管理
3.1 内存管理
- 分区分配:固定分区(易碎片) vs 动态分区(需紧凑技术)。
- 分页机制:逻辑地址分为页,物理地址分为帧,页表映射。
- 分段机制:按逻辑模块划分段,支持共享与保护。
3.2 虚拟内存
- 原理:将部分程序装入内存,其余保留在磁盘(页式/段式)。
- 页面置换算法:
- OPT:理想算法,淘汰未来最久不用的页。
- LRU:淘汰最近最少使用的页(近似实现:时钟算法)。
- FIFO:可能产生Belady异常(增加帧数反增缺页率)。
四、文件系统
4.1 文件管理功能
- 存储空间管理:位图、空闲链表跟踪磁盘块。
- 目录结构:树状目录(Windows/Linux)或图形化结构(macOS)。
- 文件操作:创建、删除、读写、权限控制(如Linux的chmod)。
4.2 文件系统类型
| 类型 | 特点 | 实例 |
|------------|------------------------------|----------------|
| FAT32 | 兼容性好,单文件最大4GB。 | 早期Windows |
| NTFS | 支持加密、压缩、大文件。 | Windows主流 |
| ext4 | 日志功能,高可靠性。 | Linux主流 |
| APFS | 优化闪存性能,支持快照。 | macOS |
五、设备管理
5.1 设备管理功能
- 缓冲技术:减少CPU与设备的等待时间(如磁盘缓存)。
- SPOOLing:将独占设备虚拟为共享设备(如打印机假脱机)。
- 驱动管理:内核模块与硬件交互(如USB驱动加载)。
5.2 I/O控制方式
- 程序查询:CPU轮询设备状态,效率低。
- 中断驱动:设备完成操作后通知CPU。
- DMA:直接内存访问,减少CPU干预。
六、系统配置与优化
6.1 操作系统安装
- 选择系统:根据需求选Windows(易用)、Linux(开发)或macOS(设计)。
- 安装步骤:制作启动盘(Rufus工具)、BIOS设置U盘启动、分区与格式化。
6.2 性能优化
- 磁盘清理:定期删除临时文件(Windows磁盘清理工具)。
- 启动项管理:禁用非必要自启程序(msconfig或任务管理器)。
- 虚拟内存调整:手动设置分页文件大小(避免系统自动管理延迟)。
七、安全与保护机制
7.1 安全威胁
- 恶意软件:病毒、蠕虫、木马(需安装防病毒软件如Windows Defender)。
- 权限提升:缓冲区溢出攻击(需代码安全审计)。
7.2 保护机制
- 访问控制:用户权限分级(如Linux的root与普通用户)。
- 加密技术:文件加密(BitLocker)、通信加密(SSL/TLS)。
- 备份与恢复:定期系统镜像备份(如Windows系统还原点)。
八、操作系统发展历史
8.1 发展阶段
- 手工操作(1940s):无OS,直接操作硬件。
- 批处理系统(1950s):磁带机批量处理任务。
- 分时系统(1960s):多用户交互(如UNIX)。
- 现代OS(1980s后):图形化界面、网络支持、多核并行。
8.2 典型操作系统
| 类型 | 特点 | 代表系统 |
|----------------|------------------------------|--------------|
| 桌面OS | 图形化交互,易用性强。 | Windows、macOS |
| 服务器OS | 高稳定性、支持多任务并发。 | Linux、Windows Server |
| 实时OS | 严格响应时间约束(如工业控制)| VxWorks、RT-Linux |
九、常见问题与真题示例
9.1 高频考点
- 进程 vs 线程:资源分配与调度的区别。
- 死锁条件:互斥、占有且等待、不可抢占、循环等待。
- 页面置换算法对比:LRU与FIFO的缺页率差异。
9.2 真题示例
题目:某系统采用分页存储管理,逻辑地址24位,页面大小4KB,页表项4B,求页表长度和逻辑地址结构。
解答:
- 页面大小=4KB=(2^{12}) → 页内偏移12位。
- 页号位数=24-12=12位 → 页表长度=(2^{12}=4096)项。
- 逻辑地址结构:页号12位 + 页内偏移12位。
十、记忆口诀与学习建议
- 进程状态口诀:
> “创建就绪等CPU,执行阻塞资源求,终止释放万事休。”
- 死锁避免四策略:
> “互斥等待不可抢,循环等待破局方。”
- 学习建议:结合实验(如Linux内核模块编程)加深理解。
参考文献与扩展阅读
- 操作系统原理与实现技术(书籍推荐)
- Linux内核源码分析(如进程调度模块)
- 考研真题解析与模拟题训练