操作系统知识点概览

一、 操作系统概述 (Introduction to Operating Systems)

  1. 什么是操作系统 (What is an OS)?
    • 定义:作为计算机硬件与用户/应用程序之间的中介。
    • 主要功能:资源管理者、虚拟机、用户界面。
    • 目标:方便性、有效性、可扩展性、开放性。
  2. 操作系统的发展历史和分类 (History and Types of OS):
    • 批处理系统 (Batch Systems)
    • 分时系统 (Time-Sharing Systems)
    • 实时系统 (Real-Time Systems) - 硬实时 vs 软实时
    • 分布式系统 (Distributed Systems)
    • 网络操作系统 (Network Operating Systems)
    • 移动操作系统 (Mobile Operating Systems)
  3. 操作系统结构 (Operating System Structure):
    • 单体结构 (Monolithic Structure)
    • 分层结构 (Layered Structure)
    • 微内核结构 (Microkernel Structure)
    • 模块化结构 (Modular Structure)
    • 混合内核 (Hybrid Kernel)
  4. 系统调用 (System Calls):
    • 概念:用户程序请求操作系统服务的接口。
    • 系统调用的实现机制 (陷入/中断)。
    • 常见系统调用分类 (进程控制、文件管理、设备管理、信息维护、通信)。

二、 进程管理 (Process Management)

  1. 进程概念 (Process Concept):
    • 什么是进程:程序的一次执行实例。
    • 进程与程序的区别。
    • 进程的状态:新建、就绪、运行、等待(阻塞)、终止。
    • 进程状态之间的转换。
  2. 进程控制块 (Process Control Block - PCB):
    • PCB 的作用:存储进程相关信息,是操作系统管理进程的唯一实体。
    • PCB 中包含的信息 (进程 ID, 状态, 优先级, 程序计数器, 寄存器, 内存管理信息, I/O 状态信息等)。
  3. 进程的创建与终止 (Process Creation and Termination):
    • 进程创建的原因、过程 (fork(), exec() 等系统调用)。
    • 进程终止的原因、过程 (exit() 等系统调用)。
    • 父子进程关系。
  4. 进程通信 (Inter-Process Communication - IPC):
    • IPC 的目的和方式:进程间如何交换信息。
    • 共享内存 (Shared Memory)。
    • 消息传递 (Message Passing) - 直接通信 vs 间接通信 (信箱)。
    • 管道 (Pipes) - 无名管道 vs 命名管道。
    • 信号 (Signals) - 轻量级通信。
    • 套接字 (Sockets) - 网络通信。

三、 线程管理 (Thread Management)

  1. 线程概念 (Thread Concept):
    • 什么是线程:进程内的执行单元,也称轻量级进程。
    • 线程与进程的区别与联系 (共享资源 vs 独立资源)。
    • 多线程的优势 (提高并发度、响应速度、资源利用率)。
  2. 用户级线程与内核级线程 (User-Level Threads vs. Kernel-Level Threads):
    • 实现方式、优缺点。
    • 多对一、一对一、多对多线程模型。

四、 CPU 调度 (CPU Scheduling)

  1. 调度概念与目标 (Scheduling Concepts and Goals):
    • 调度的层次 (长程调度/作业调度、中程调度/内存调度、短程调度/进程调度)。
    • 调度时机 (何时发生调度)。
    • 调度性能衡量指标:CPU 利用率、吞吐量、周转时间、等待时间、响应时间。
  2. 调度算法 (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)。
  3. 实时调度 (Real-Time Scheduling):
    • 硬实时调度 vs 软实时调度。
    • 速率单调调度 (Rate Monotonic Scheduling - RMS)。
    • 截止期最早优先调度 (Earliest Deadline First - EDF)。

五、 内存管理 (Memory Management)

  1. 基本概念 (Basic Concepts):
    • 地址绑定 (Address Binding) - 编译时、加载时、执行时。
    • 逻辑地址 vs 物理地址。
    • 内存保护。
  2. 连续内存分配 (Contiguous Memory Allocation):
    • 分区分配 (固定分区、动态分区)。
    • 碎片问题 (内部碎片 vs 外部碎片)。
    • 动态分区分配算法 (首次适应、最佳适应、最坏适应)。
    • 紧凑 (Compaction)。
  3. 非连续内存分配 (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):
      • 联合分段和分页的优点 (逻辑分段 + 物理分页)。
      • 地址转换过程 (段号 -> 段表 -> 段基址 -> 线性地址 -> 页表 -> 物理地址)。

六、 虚拟内存 (Virtual Memory)

  1. 虚拟内存概念 (Virtual Memory Concept):
    • 目的:使程序能够使用比物理内存更大的地址空间。
    • 按需调页 (Demand Paging):只加载当前需要的页面。
  2. 缺页中断 (Page Fault):
    • 缺页中断的处理流程。
  3. 页替换算法 (Page Replacement Algorithms):
    • 何时需要页替换。
    • 最优算法 (Optimal - OPT) - 理论最优。
    • 先进先出 (First-In, First-Out - FIFO)。
    • 最近最少使用 (Least Recently Used - LRU) 及其近似实现 (时钟算法/第二次机会算法)。
    • 其他算法 (如 LFU - Least Frequently Used)。
  4. 帧分配 (Frame Allocation):
    • 如何给每个进程分配物理帧 (固定分配 vs 可变分配)。
    • 全局替换 vs 局部替换。
  5. 抖动 (Thrashing):
    • 什么是抖动,原因。
    • 工作集模型 (Working Set Model)。
    • 如何防止或缓解抖动。
  6. 内存映射文件 (Memory-Mapped Files):
    • 将文件内容直接映射到进程的虚拟地址空间。

七、 文件系统 (File Systems)

  1. 文件概念 (File Concept):
    • 文件是什么 (命名、逻辑存储单元)。
    • 文件属性、文件操作 (创建、删除、读、写、定位、截断等)。
  2. 目录结构 (Directory Structure):
    • 单级目录、两级目录。
    • 树形目录结构。
    • 无环图目录结构。
    • 通用图目录结构。
  3. 文件系统挂载 (File System Mounting):
    • 如何将文件系统连接到目录树上。
  4. 文件分配方法 (File Allocation Methods):
    • 连续分配 (Contiguous Allocation)。
    • 链式分配 (Linked Allocation)。
    • 索引分配 (Indexed Allocation) - 单级索引、多级索引、混合索引 (如 UFS)。
  5. 空闲空间管理 (Free-Space Management):
    • 位图 (Bitmap)。
    • 空闲链表。
    • 分组。
    • 计数。
  6. 目录实现 (Directory Implementation):
    • 线性列表、哈希表。
  7. 文件系统实现 (File System Implementation):
    • 文件系统层次结构 (用户接口、文件系统逻辑层、文件组织模块、基本文件系统、设备驱动)。
    • 磁盘块的组织:引导控制块、卷控制块、目录结构、文件控制块 (FCB)。
  8. 文件系统性能 (File System Performance):
    • 缓存 (Buffer Cache)。
    • 页缓存 (Page Cache)。
    • 统一缓存 (Unified Cache)。
  9. 日志文件系统 (Logging/Journaling File Systems):
    • 提高文件系统的一致性和可靠性 (如 NTFS, ext3/ext4, XFS)。

八、 设备管理 (Device Management)

  1. I/O 硬件基础 (I/O Hardware Basics):
    • 设备控制器、端口、总线。
    • 内存映射 I/O vs. 端口映射 I/O。
  2. I/O 操作方法 (I/O Operations):
    • 程序控制 I/O (Polling)。
    • 中断驱动 I/O (Interrupt-Driven I/O)。
    • 直接内存访问 (Direct Memory Access - DMA)。
  3. 设备驱动程序 (Device Drivers):
    • 作用:硬件特定代码,操作系统与硬件交互的接口。
  4. I/O 软件层次结构 (I/O Software Stack):
    • 用户层 I/O 软件、设备无关 OS 软件、设备驱动程序、中断处理程序。
  5. 缓冲、缓存与假脱机 (Buffering, Caching, Spooling):
    • 提高 I/O 效率和解耦。
  6. 磁盘结构 (Disk Structure):
    • 扇区、磁道、柱面。
  7. 磁盘调度算法 (Disk Scheduling Algorithms):
    • 减少磁头移动时间。
    • 先来先服务 (FCFS)。
    • 最短寻道时间优先 (Shortest-Seek-Time First - SSTF)。
    • 扫描 (SCAN / 电梯算法)。
    • 循环扫描 (C-SCAN)。
    • LOOK 和 C-LOOK。
  8. RAID (Redundant Array of Independent Disks):
    • 通过磁盘冗余和条带化提高性能和可靠性。

九、 并发与同步 (Concurrency and Synchronization)

  1. 竞争条件 (Race Condition):
    • 多个进程/线程访问共享数据,结果取决于访问发生的顺序。
  2. 临界区问题 (Critical Section Problem):
    • 多个进程/线程访问共享资源的区域。
    • 解决临界区问题的要求 (互斥、进展、有限等待)。
  3. 同步机制 (Synchronization Mechanisms):
    • 锁 (Locks) - 互斥锁 (Mutex)。
    • 信号量 (Semaphores) - 二进制信号量、计数信号量。
    • 管程/监视器 (Monitors)。
    • 条件变量 (Condition Variables)。
  4. 经典同步问题 (Classic Synchronization Problems):
    • 生产者-消费者问题 (Producer-Consumer Problem)。
    • 读者-写者问题 (Readers-Writers Problem)。
    • 哲学家进餐问题 (Dining Philosophers Problem)。

十、 死锁 (Deadlocks)

  1. 死锁概念 (Deadlock Concept):
    • 多个进程相互等待对方释放资源而无法继续执行的状态。
  2. 死锁发生的四个必要条件 (Necessary Conditions for Deadlock):
    • 互斥 (Mutual Exclusion)。
    • 持有并等待 (Hold and Wait)。
    • 不可剥夺 (No Preemption)。
    • 循环等待 (Circular Wait)。
  3. 处理死锁的方法 (Methods for Handling Deadlocks):
    • 死锁预防 (Deadlock Prevention): 破坏四个必要条件之一。
    • 死锁避免 (Deadlock Avoidance): 在分配资源前检查是否会导致死锁状态 (如银行家算法 Banker’s Algorithm)。
    • 死锁检测 (Deadlock Detection): 允许系统进入死锁状态,然后检测并恢复。
    • 死锁恢复 (Deadlock Recovery): 终止进程、剥夺资源等。
  4. 资源分配图 (Resource-Allocation Graph):
    • 用于死锁的检测和可视化。

十一、 保护与安全 (Protection and Security)

  1. 保护 (Protection):
    • 系统保护域 (Protection Domain)。
    • 访问矩阵 (Access Matrix)。
    • 访问控制列表 (Access Control List - ACL)。
    • 能力列表 (Capability List)。
  2. 安全 (Security):
    • 安全目标 (机密性 Confidentiality, 完整性 Integrity, 可用性 Availability)。
    • 认证 (Authentication) 和授权 (Authorization)。
    • 常见的安全威胁 (病毒、蠕虫、拒绝服务攻击 DoS)。
    • 安全机制 (加密、防火墙 - 操作系统层面可能涉及,但更多是网络/系统架构层面)。

十二、 其他可能的知识点 (Other Potential Topics)

  • 分布式操作系统概念。
  • 实时操作系统特性。
  • 虚拟化技术与虚拟机监控器 (Hypervisor)。
  • 容器技术 (如 Docker) 在 OS 层面的实现。
  • 现代操作系统的具体实现细节 (如 Linux 内核)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值