AI摘要:进程是操作系统中正在运行的程序的抽象,是资源分配的基本单位。进程由描述和组织两部分组成,描述存储在进程控制块(PCB)中,包括进程ID、内存指针、文件描述符表等。组织上,操作系统通过双向链表管理就绪队列,实现进程调度。内存管理方面,虚拟地址空间允许进程使用虚拟地址,通过操作系统和硬件转换为物理地址,实现进程间隔离。进程调度的目标是实现并行和并发,提高系统效率。
Powered by AISummary.
进程调度的基本过程
一. 什么是进程?
进程是操作系统对正在运行的程序的抽象。可以将进程视为特定时刻程序的一次执行过程。在操作系统内部,进程是资源分配的基本单位。通过进程,操作系统可以有效地管理和调度系统中的各项任务,使多个任务可以在一个处理器上交替执行,从而实现并发和并行。
二. 进程的组成与描述
1. 进程由两部分组成:描述和组织。
1.1 描述:
进程的属性被存储在进程控制块(PCB)中。PCB 可以被视为进程的档案,其中包含了关键信息,如进程ID、内存指针、文件描述符表等。
举个例子,想象你正在玩一个多人在线游戏。你是一个进程,而你的PCB就包含了你在游戏中的ID、当前所在的地图位置以及你的游戏资源状态。
1.2 组织:
操作系统通过双向链表将多个PCB连接在一起,形成了就绪队列。就绪队列中存放了等待被调度执行的所有进程。当一个进程需要被执行时,操作系统会从就绪队列中选择一个合适的进程进行调度。
举个类比,把就绪队列想象成一个电影院的排队队伍。每个PCB就像一个电影观众,等待着进入放映厅(CPU)观看电影(执行任务)。
2. PCB内部描述了进程的特征:
2.1 进程的特征
- 进程标识符(PID): 类似于每个人的身份证号码,用于唯一标识一个进程。
- 内存指针: 就像是你在地图上的位置标记,指示进程所占用的内存区域。
- 文件描述符表: 类似于你的工具箱,包含进程持有的文件和其他资源,比如硬盘上的文件。
进程调度相关属性:
- 进程状态: 就绪状态(随时可执行)、运行状态(当前正在执行)、阻塞状态(无法立即执行,如IO密集操作)。
- 优先级: 不同进程具有不同的优先级,操作系统根据优先级进行调度。就像不同等级的乘客在机场的登机顺序。
- 上下文: 在进程切换时,需要保存当前进程的执行状态,以便下次恢复时可以继续执行。这包括CPU寄存器的值,类似于暂停游戏时记录的进度,以便以后继续。
- 记账信息: 统计进程在CPU上占用的时间和执行的指令数量,影响下一阶段的调度决策。
2.2 并行和并发
调度的目标是实现分时复用,使多个进程共享处理器的时间,从而提高系统的效率。并行和并发是两种实现这一目标的不同方式:
- 并行: 多个进程在不同的处理器核心上同时执行,就像多个厨师在不同的灶台上烹饪不同的菜肴。
- 并发: 微观上,单个核心在同一时刻只能执行一个进程,但在不同进程之间快速切换执行,造成多个任务几乎同时运行的错觉。这由操作系统内核管理。
三. 内存管理:虚拟地址空间
程序获取的内存地址实际上是虚拟地址,而非物理内存地址。虚拟地址是一种抽象,通过操作系统和硬件进行虚拟地址到物理地址的转换。
进程隔离引入了虚拟地址空间的概念,程序不再直接使用真实的物理地址。虚拟地址空间解决了进程间影响的问题,但也引入了新的挑战。进程需要进行数据交互时,需要通过进程间通信来实现。通信方式多种多样,核心思想是创建一个公共空间,用于数据交换。