Operating System
操作系统的三座大山
- 虚拟化(virtualization) cpu 内存
- 并发(concurrency) cpu
- 持久性(persistence) 内存 硬盘
Operating System 看起来不知所云,为什么名称中会有 Operating 呢,叫 System 好像更合适一些。这是因为计算机不是直接从石头里蹦出来的,在计算机使用穿孔纸带
进行存储的年代,并没有足够的硬件来运行操作系统,记录在纸带上的程序也不能自动更换,这时候需要专业的人来进行程序的运行管理,而这个职位叫 Operator。
操作系统的具体工作
它取得 CPU、 内存或磁盘等物理资源 (resources),并对它们进行虚拟化(virtualize)。它处理与并发(concurrency)有关的麻烦且棘手的问题。它持久地(persistently)存储文件,从而使它们长期安全。
程序加载
操作系统必须做的准备工作:
- 将代码和静态数据读取到内存(惰性加载)
- 创建并初始化栈(stack)
- 执行I/O相关配置(比如默认文件描述符)
- 将
PC计数器
设置为程序地址让程序运行
进程状态
操作系统为正在运行的程序提供的抽象,就是所谓的进程(process)
- 运行(running) 正在处理器上运行
- 就绪(ready) 进程已经准备好了,但还没运行
- 阻塞(blocked) 执行某些不需要cpu的慢速操作,比如磁盘I/O或等待网络数据包,完成后转为就绪
在操作系统和计算机架构中,当一个中断(interrupt)或异常(exception)发生时,系统会保存当前的处理器状态,这被称为“陷阱帧”(Trap Frame)。陷阱帧用于在中断处理结束后恢复原始的执行状态,确保程序能从中断或异常发生之前的地方继续执行。
家庭作业
在随机情况下,SWITCH_ON_IO、IO_RUN_IMMEDIATE
的硬件利会明显优于其他选项,在中等随机程度上性能最佳
- SWITCH_ON_IO, the system will switch when a process issues an IO
-
SWITCH_ON_END, the system will only switch when the current process is done
-
IO_RUN_IMMEDIATE: switch to this process right now
- IO_RUN_LATER: switch to this process when it is natural to