https://www.xiaogeedu.net/sys-nd/196.html 我喜欢这样性格鲜明的人
https://xiaolincoding.com/os/ 小林coding 图解系统
2024 南京大学 “操作系统:设计与实现” (蒋炎岩) bilibili > collection 2237004
xv6 项目
https://javaguide.cn/cs-basics/operating-system/operating-system-basic-questions-01.html JavaGuide 操作系统面经

操作系统八股 - 速记

プログラムはなぜ動くのか

用户态与内核态 (user / kernel mod)

User → kernel

系统调用 (trap)

中断 (interrupt)

异常 (exception)

系统调用 (syscall)

常见的系统调用按照功能分类

进程管理 进程的创建、撤销、阻塞、唤醒,进程间的通信等功能
内存管理 进程的创建、撤销、阻塞、唤醒,进程间的通信等功能
文件管理
设备管理

系统调用的过程

进程与线程 (process & thread)

进程、线程与协程

  1. 进程是系统资源分配的最小单位;线程是cpu调度的最小单位。
  2. 不同进程之间具有相对独立性,拥有不同资源和地址空间;同一进程下的不同线程共享进程的资源和地址空间,通信方便。
  3. 进程的创建、撤销、切换涉及系统资源和地址空间分配、释放、切换,开销大。线程由于共享进程地址空间和资源,创建、撤销和切换开销较小。
  4. 线程共享的内容包括:代码段,公有数据(堆,全局变量,静态变量),文件描述符,信号处理器,进程用户 ID 与进程组 ID。线程独有的内容包括:线程 ID,寄存器,栈,错误返回码,信号屏蔽码。

进程切换:

  1. 保存处理器上下文环境,包括程序计数器和其他寄存器
  2. 更新当前进程的进程控制块
  3. 将进程的进程控制块移到相应的队列(就绪、在某事件处阻塞、挂起等)
  4. 选择另一个进程执行
  5. 更新所选择进程的进程控制块