跳转至

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