from mosaic import *
OS2023(24)
Changelog & 反馈
背景回顾:我们已经了解了应用视角的操作系统:操作系统是状态机的管理者,也为状态机提供一组系统调用 API。那么,进程 (状态机) 在操作系统内究竟是如何实现的?
本讲内容:
slideshow('24.1')
demo('thread-os', 'c/thread-os-singlecpu')
demo('large', 'v/large.c')
demo('vm', 'v/vm.c')
demo('cow-test', 'cow-test.c')
slideshow('24.2')
slideshow('24.3')
demo('sum', 'c/sum-atomic.c', libs=['thread.h'])
进程在操作系统中的实现是简单又复杂的。从简单来说,进程就是带有独立地址空间的线程;通过硬件提供的分页机制,就能给线程戴上 “VR 眼镜”,使得看到的内存并不是真实的内存。同时,进程也是复杂的:我们可以借助虚拟内存实现 demand paging、copy-on-write fork 等有趣的机制;而如何调度系统中的进程,在现代多处理器时代也显得愈加复杂。
教科书 Operating Systems: Three Easy Pieces: