Skip to content

操作系统技术栈总览

一句话定位:操作系统 = 管理硬件与软件资源的内核程序,四大核心子系统:进程/线程管理(调度、状态、IPC)、内存管理(分页/分段、虚拟内存)、文件系统(目录、挂载、专用文件)、I/O 管理。面试主线集中在进程线程内存两大块。

子系统地图

子系统核心概念面试高频
进程/线程进程状态(三态/五态/七态)、PCB、调度算法、IPC进程 vs 线程、调度、通信、死锁
内存管理连续/非连续分配、分页/分段、快表/多级页表、虚拟内存、页面置换虚拟内存、分页 vs 分段、LRU
文件系统层次目录、挂载、专用文件(块/字符/管道)较少
I/O字符设备/块设备/网络设备较少
内核用户态/内核态、系统调用系统调用

进程 vs 线程(一句话)

进程是操作系统资源分配的最小单位,线程是处理器调度执行的最小单位。 进程有独立地址空间、切换开销大、一个崩溃不波及其他;线程共享进程地址空间、切换开销小、一个崩溃全进程死。详见 概念卡片:进程与线程

进程管理主线

  1. 状态模型:三态(就绪/执行/阻塞)→ 五态(+创建/终止)→ 七态(+挂起就绪/挂起阻塞)。
  2. 调度:FCFS(先来先服务)、SJF(短作业优先)、RR(时间片轮转)、多级反馈队列(公认较好,UNIX 采用)、优先级调度。
  3. 通信:管道/有名管道/信号/消息队列/信号量/共享内存/套接字七种。
  4. 死锁:互斥 + 请求保持 + 不可剥夺 + 循环等待四条件。

内存管理主线

  1. 分配方式:连续(块式)vs 非连续(页式/段式)。
  2. 地址转换:逻辑地址 → 物理地址,靠 MMU;快表(TLB)加速、多级页表省空间。
  3. 虚拟内存:基于局部性原理(时间/空间),定义连续虚拟地址空间,内存可超物理内存。
  4. 页面置换:OPT(理想)/FIFO/LRU/LFU。

不变量(必须成立的约束)

  • 进程 = 资源分配单位,线程 = 调度单位;线程是进程的一部分,不能独立执行。
  • 死锁必须四条件同时成立,破坏任一即可预防。
  • 虚拟内存的实现建立在离散分配基础上(请求分页/分段/段页式),依赖缺页中断 + 页面置换。
  • 用户态程序访问内核级资源必须走系统调用

常见误解

  • 以为「进程一定比线程慢所以少用进程」→ 进程更健壮,隔离性需求场景(如多服务)必须用进程。
  • 以为「虚拟内存就是拿硬盘当内存」→ 更本质是定义连续虚拟地址空间 + 内存外存两级存储
  • 以为「快表是页表的一部分」→ 快表是页表的高速缓存(TLB),存部分页表项。

关联

最近更新