进程¶
Abstract
包含原书的第一部分
- 第四章:抽象:进程
非正式定义:进程就是运行中的程序。
操作系统通过让一个进程只运行一个时间片,然后切换到另一个进程,来提供存在多个虚拟 CPU 的假象。这种技术称为时分共享(time-sharing)。潜在的开销是性能损失。
时分共享和空分共享
- 时分共享:允许资源由一个实体使用一段时间,然后切换到另一个实体使用一段时间。(CPU 或网络)
- 空分共享:允许资源由多个实体共享,但是每个实体只能使用一部分资源。(磁盘)
抽象:进程¶
进程¶
进程的机器状态(machine state):程序在运行中可以读取或更新的内容。
内存是机器状态的关键组成部分,程序运行过程中,指令、数据都在内存中。进程可以访问的内存范围称为地址空间(address space)。
机器状态的另一部分是寄存器。此外,程序访问持久存储设备的 I/O 信息也是机器状态的一部分。
进程创建¶
操作系统如何启动并运行一个程序?
- 将代码和所有静态数据加载到内存中,即进程的地址空间。
- 为程序的运行时栈(runtime stack)分配内存。
- 为程序的堆(heap)分配内存。
- 执行其他初始化任务,例如 I/O。
- 启动程序,跳转到程序的入口点。