--- ## **一、操作系统概述** ### **1.1 定义与核心目标** - **定义**:操作系统(OS)是管理计算机硬件与软件资源的系统软件,作为用户与硬件之间的接口,提供任务调度、资源分配、设备控制等功能。 - **核心目标**: - **有效性**:提高资源利用率(如CPU、内存)和系统吞吐量。 - **方便性**:通过GUI、命令接口或系统调用简化用户操作。 - **可扩展性**:适应硬件和应用的升级需求(如微内核架构支持模块化扩展)。 - **开放性**:遵循国际标准,支持跨平台兼容性(如网络协议兼容)。 ### **1.2 基本功能** 1. **处理器管理**:进程调度、同步与通信。 2. **存储管理**:内存分配、虚拟内存实现。 3. **文件管理**:文件系统组织、权限控制。 4. **设备管理**:硬件驱动、I/O控制。 5. **用户接口**: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 文件管理功能** 1. **存储空间管理**:位图、空闲链表跟踪磁盘块。 2. **目录结构**:树状目录(Windows/Linux)或图形化结构(macOS)。 3. **文件操作**:创建、删除、读写、权限控制(如Linux的chmod)。 ### **4.2 文件系统类型** | **类型** | **特点** | **实例** | |------------|------------------------------|----------------| | **FAT32** | 兼容性好,单文件最大4GB。 | 早期Windows | | **NTFS** | 支持加密、压缩、大文件。 | Windows主流 | | **ext4** | 日志功能,高可靠性。 | Linux主流 | | **APFS** | 优化闪存性能,支持快照。 | macOS | --- ## **五、设备管理** ### **5.1 设备管理功能** 1. **缓冲技术**:减少CPU与设备的等待时间(如磁盘缓存)。 2. **SPOOLing**:将独占设备虚拟为共享设备(如打印机假脱机)。 3. **驱动管理**:内核模块与硬件交互(如USB驱动加载)。 ### **5.2 I/O控制方式** - **程序查询**:CPU轮询设备状态,效率低。 - **中断驱动**:设备完成操作后通知CPU。 - **DMA**:直接内存访问,减少CPU干预。 --- ## **六、系统配置与优化** ### **6.1 操作系统安装** 1. **选择系统**:根据需求选Windows(易用)、Linux(开发)或macOS(设计)。 2. **安装步骤**:制作启动盘(Rufus工具)、BIOS设置U盘启动、分区与格式化。 ### **6.2 性能优化** - **磁盘清理**:定期删除临时文件(Windows磁盘清理工具)。 - **启动项管理**:禁用非必要自启程序(msconfig或任务管理器)。 - **虚拟内存调整**:手动设置分页文件大小(避免系统自动管理延迟)。 --- ## **七、安全与保护机制** ### **7.1 安全威胁** - **恶意软件**:病毒、蠕虫、木马(需安装防病毒软件如Windows Defender)。 - **权限提升**:缓冲区溢出攻击(需代码安全审计)。 ### **7.2 保护机制** 1. **访问控制**:用户权限分级(如Linux的root与普通用户)。 2. **加密技术**:文件加密(BitLocker)、通信加密(SSL/TLS)。 3. **备份与恢复**:定期系统镜像备份(如Windows系统还原点)。 --- ## **八、操作系统发展历史** ### **8.1 发展阶段** 1. **手工操作**(1940s):无OS,直接操作硬件。 2. **批处理系统**(1950s):磁带机批量处理任务。 3. **分时系统**(1960s):多用户交互(如UNIX)。 4. **现代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位。 --- ## **十、记忆口诀与学习建议** 1. **进程状态口诀**: > “创建就绪等CPU,执行阻塞资源求,终止释放万事休。” 2. **死锁避免四策略**: > “互斥等待不可抢,循环等待破局方。” 3. **学习建议**:结合实验(如Linux内核模块编程)加深理解。 --- **参考文献与扩展阅读** - 操作系统原理与实现技术(书籍推荐) - Linux内核源码分析(如进程调度模块) - 考研真题解析与模拟题训练