一、 操作系统概述 (Introduction to Operating Systems)
- 什么是操作系统 (What is an OS)?
- 定义:作为计算机硬件与用户/应用程序之间的中介。
- 主要功能:资源管理者、虚拟机、用户界面。
- 目标:方便性、有效性、可扩展性、开放性。
- 操作系统的发展历史和分类 (History and Types of OS):
- 批处理系统 (Batch Systems)
- 分时系统 (Time-Sharing Systems)
- 实时系统 (Real-Time Systems) - 硬实时 vs 软实时
- 分布式系统 (Distributed Systems)
- 网络操作系统 (Network Operating Systems)
- 移动操作系统 (Mobile Operating Systems)
- 操作系统结构 (Operating System Structure):
- 单体结构 (Monolithic Structure)
- 分层结构 (Layered Structure)
- 微内核结构 (Microkernel Structure)
- 模块化结构 (Modular Structure)
- 混合内核 (Hybrid Kernel)
- 系统调用 (System Calls):
- 概念:用户程序请求操作系统服务的接口。
- 系统调用的实现机制 (陷入/中断)。
- 常见系统调用分类 (进程控制、文件管理、设备管理、信息维护、通信)。
二、 进程管理 (Process Management)
- 进程概念 (Process Concept):
- 什么是进程:程序的一次执行实例。
- 进程与程序的区别。
- 进程的状态:新建、就绪、运行、等待(阻塞)、终止。
- 进程状态之间的转换。
- 进程控制块 (Process Control Block - PCB):
- PCB 的作用:存储进程相关信息,是操作系统管理进程的唯一实体。
- PCB 中包含的信息 (进程 ID, 状态, 优先级, 程序计数器, 寄存器, 内存管理信息, I/O 状态信息等)。
- 进程的创建与终止 (Process Creation and Termination):
- 进程创建的原因、过程 (fork(), exec() 等系统调用)。
- 进程终止的原因、过程 (exit() 等系统调用)。
- 父子进程关系。
- 进程通信 (Inter-Process Communication - IPC):
- IPC 的目的和方式:进程间如何交换信息。
- 共享内存 (Shared Memory)。
- 消息传递 (Message Passing) - 直接通信 vs 间接通信 (信箱)。
- 管道 (Pipes) - 无名管道 vs 命名管道。
- 信号 (Signals) - 轻量级通信。
- 套接字 (Sockets) - 网络通信。
三、 线程管理 (Thread Management)
- 线程概念 (Thread Concept):
- 什么是线程:进程内的执行单元,也称轻量级进程。
- 线程与进程的区别与联系 (共享资源 vs 独立资源)。
- 多线程的优势 (提高并发度、响应速度、资源利用率)。
- 用户级线程与内核级线程 (User-Level Threads vs. Kernel-Level Threads):
- 实现方式、优缺点。
- 多对一、一对一、多对多线程模型。
四、 CPU 调度 (CPU Scheduling)
- 调度概念与目标 (Scheduling Concepts and Goals):
- 调度的层次 (长程调度/作业调度、中程调度/内存调度、短程调度/进程调度)。
- 调度时机 (何时发生调度)。
- 调度性能衡量指标:CPU 利用率、吞吐量、周转时间、等待时间、响应时间。
- 调度算法 (Scheduling Algorithms):
- 先来先服务 (First-Come, First-Served - FCFS)。
- 短作业优先 (Shortest-Job First - SJF) - 非抢占式 vs 抢占式 (Shortest-Remaining-Time First - SRTF)。
- 优先级调度 (Priority Scheduling)。
- 时间片轮转 (Round Robin - RR)。
- 多级队列调度 (Multilevel Queue Scheduling)。
- 多级反馈队列调度 (Multilevel Feedback Queue Scheduling)。
- 实时调度 (Real-Time Scheduling):
- 硬实时调度 vs 软实时调度。
- 速率单调调度 (Rate Monotonic Scheduling - RMS)。
- 截止期最早优先调度 (Earliest Deadline First - EDF)。
五、 内存管理 (Memory Management)
- 基本概念 (Basic Concepts):
- 地址绑定 (Address Binding) - 编译时、加载时、执行时。
- 逻辑地址 vs 物理地址。
- 内存保护。
- 连续内存分配 (Contiguous Memory Allocation):
- 分区分配 (固定分区、动态分区)。
- 碎片问题 (内部碎片 vs 外部碎片)。
- 动态分区分配算法 (首次适应、最佳适应、最坏适应)。
- 紧凑 (Compaction)。
- 非连续内存分配 (Non-Contiguous Memory Allocation):
- 分页 (Paging):
- 基本原理:将地址空间划分为页,物理内存划分为帧。
- 页表 (Page Table)及其结构 (页表项 PTE)。
- 地址转换 (虚拟地址 -> 物理地址)。
- 内部碎片。
- 页表过大问题。
- 多级页表 (Multilevel Paging)。
- 哈希页表 (Hashed Page Tables)。
- 反向页表 (Inverted Page Tables)。
- 快表 (Translation Lookaside Buffer - TLB):页表缓存,加速地址翻译。
- 分段 (Segmentation):
- 基本原理:按逻辑单元划分地址空间为段。
- 段表 (Segment Table)。
- 地址转换 (逻辑地址 -> 物理地址)。
- 外部碎片。
- 易于保护和共享。
- 段页式内存管理 (Segmented Paging):
- 联合分段和分页的优点 (逻辑分段 + 物理分页)。
- 地址转换过程 (段号 -> 段表 -> 段基址 -> 线性地址 -> 页表 -> 物理地址)。
- 分页 (Paging):
六、 虚拟内存 (Virtual Memory)
- 虚拟内存概念 (Virtual Memory Concept):
- 目的:使程序能够使用比物理内存更大的地址空间。
- 按需调页 (Demand Paging):只加载当前需要的页面。
- 缺页中断 (Page Fault):
- 缺页中断的处理流程。
- 页替换算法 (Page Replacement Algorithms):
- 何时需要页替换。
- 最优算法 (Optimal - OPT) - 理论最优。
- 先进先出 (First-In, First-Out - FIFO)。
- 最近最少使用 (Least Recently Used - LRU) 及其近似实现 (时钟算法/第二次机会算法)。
- 其他算法 (如 LFU - Least Frequently Used)。
- 帧分配 (Frame Allocation):
- 如何给每个进程分配物理帧 (固定分配 vs 可变分配)。
- 全局替换 vs 局部替换。
- 抖动 (Thrashing):
- 什么是抖动,原因。
- 工作集模型 (Working Set Model)。
- 如何防止或缓解抖动。
- 内存映射文件 (Memory-Mapped Files):
- 将文件内容直接映射到进程的虚拟地址空间。
七、 文件系统 (File Systems)
- 文件概念 (File Concept):
- 文件是什么 (命名、逻辑存储单元)。
- 文件属性、文件操作 (创建、删除、读、写、定位、截断等)。
- 目录结构 (Directory Structure):
- 单级目录、两级目录。
- 树形目录结构。
- 无环图目录结构。
- 通用图目录结构。
- 文件系统挂载 (File System Mounting):
- 如何将文件系统连接到目录树上。
- 文件分配方法 (File Allocation Methods):
- 连续分配 (Contiguous Allocation)。
- 链式分配 (Linked Allocation)。
- 索引分配 (Indexed Allocation) - 单级索引、多级索引、混合索引 (如 UFS)。
- 空闲空间管理 (Free-Space Management):
- 位图 (Bitmap)。
- 空闲链表。
- 分组。
- 计数。
- 目录实现 (Directory Implementation):
- 线性列表、哈希表。
- 文件系统实现 (File System Implementation):
- 文件系统层次结构 (用户接口、文件系统逻辑层、文件组织模块、基本文件系统、设备驱动)。
- 磁盘块的组织:引导控制块、卷控制块、目录结构、文件控制块 (FCB)。
- 文件系统性能 (File System Performance):
- 缓存 (Buffer Cache)。
- 页缓存 (Page Cache)。
- 统一缓存 (Unified Cache)。
- 日志文件系统 (Logging/Journaling File Systems):
- 提高文件系统的一致性和可靠性 (如 NTFS, ext3/ext4, XFS)。
八、 设备管理 (Device Management)
- I/O 硬件基础 (I/O Hardware Basics):
- 设备控制器、端口、总线。
- 内存映射 I/O vs. 端口映射 I/O。
- I/O 操作方法 (I/O Operations):
- 程序控制 I/O (Polling)。
- 中断驱动 I/O (Interrupt-Driven I/O)。
- 直接内存访问 (Direct Memory Access - DMA)。
- 设备驱动程序 (Device Drivers):
- 作用:硬件特定代码,操作系统与硬件交互的接口。
- I/O 软件层次结构 (I/O Software Stack):
- 用户层 I/O 软件、设备无关 OS 软件、设备驱动程序、中断处理程序。
- 缓冲、缓存与假脱机 (Buffering, Caching, Spooling):
- 提高 I/O 效率和解耦。
- 磁盘结构 (Disk Structure):
- 扇区、磁道、柱面。
- 磁盘调度算法 (Disk Scheduling Algorithms):
- 减少磁头移动时间。
- 先来先服务 (FCFS)。
- 最短寻道时间优先 (Shortest-Seek-Time First - SSTF)。
- 扫描 (SCAN / 电梯算法)。
- 循环扫描 (C-SCAN)。
- LOOK 和 C-LOOK。
- RAID (Redundant Array of Independent Disks):
- 通过磁盘冗余和条带化提高性能和可靠性。
九、 并发与同步 (Concurrency and Synchronization)
- 竞争条件 (Race Condition):
- 多个进程/线程访问共享数据,结果取决于访问发生的顺序。
- 临界区问题 (Critical Section Problem):
- 多个进程/线程访问共享资源的区域。
- 解决临界区问题的要求 (互斥、进展、有限等待)。
- 同步机制 (Synchronization Mechanisms):
- 锁 (Locks) - 互斥锁 (Mutex)。
- 信号量 (Semaphores) - 二进制信号量、计数信号量。
- 管程/监视器 (Monitors)。
- 条件变量 (Condition Variables)。
- 经典同步问题 (Classic Synchronization Problems):
- 生产者-消费者问题 (Producer-Consumer Problem)。
- 读者-写者问题 (Readers-Writers Problem)。
- 哲学家进餐问题 (Dining Philosophers Problem)。
十、 死锁 (Deadlocks)
- 死锁概念 (Deadlock Concept):
- 多个进程相互等待对方释放资源而无法继续执行的状态。
- 死锁发生的四个必要条件 (Necessary Conditions for Deadlock):
- 互斥 (Mutual Exclusion)。
- 持有并等待 (Hold and Wait)。
- 不可剥夺 (No Preemption)。
- 循环等待 (Circular Wait)。
- 处理死锁的方法 (Methods for Handling Deadlocks):
- 死锁预防 (Deadlock Prevention): 破坏四个必要条件之一。
- 死锁避免 (Deadlock Avoidance): 在分配资源前检查是否会导致死锁状态 (如银行家算法 Banker’s Algorithm)。
- 死锁检测 (Deadlock Detection): 允许系统进入死锁状态,然后检测并恢复。
- 死锁恢复 (Deadlock Recovery): 终止进程、剥夺资源等。
- 资源分配图 (Resource-Allocation Graph):
- 用于死锁的检测和可视化。
十一、 保护与安全 (Protection and Security)
- 保护 (Protection):
- 系统保护域 (Protection Domain)。
- 访问矩阵 (Access Matrix)。
- 访问控制列表 (Access Control List - ACL)。
- 能力列表 (Capability List)。
- 安全 (Security):
- 安全目标 (机密性 Confidentiality, 完整性 Integrity, 可用性 Availability)。
- 认证 (Authentication) 和授权 (Authorization)。
- 常见的安全威胁 (病毒、蠕虫、拒绝服务攻击 DoS)。
- 安全机制 (加密、防火墙 - 操作系统层面可能涉及,但更多是网络/系统架构层面)。
十二、 其他可能的知识点 (Other Potential Topics)
- 分布式操作系统概念。
- 实时操作系统特性。
- 虚拟化技术与虚拟机监控器 (Hypervisor)。
- 容器技术 (如 Docker) 在 OS 层面的实现。
- 现代操作系统的具体实现细节 (如 Linux 内核)。