第 3 讲 进程的描述与控制 ¶
约 937 个字 1 张图片 预计阅读时间 5 分钟 共被读过 次
1. 进程的定义和描述 ¶
程序顺序执行:计算机系统中只有一个程序在运行,该程序独占系统中的所有资源。一个程序执行完成之后另一个程序才能开始执行。 顺序执行是单道批处理系统的执行方式,也用于简单的单片机系统。
程序的并发执行:一定时间内,系统中有两个或两个以上的程序同处于开始运行但尚未结束的状态,并且次序不是事先确定的。 引入并发执行的目的是为了提高资源利用率。
并发执行引发的问题:同步,互斥,作业调度,进程调度,内存管理。
进程 (Process) 是具有独立功能的程序在某个数据集合上的一次运行活动,是系统进行资源分配和调度的独立单位,也称任务 (Task)。
进程的组成:程序 + 数据 +PCB。
进程控制块 (PCB, Process control block) 是操作系统为了管理进程而设置的一个专门的数据结构,记录进程的外部特征,描述进程的 运动变化过程。PCB 是系统感知进程存在的唯一标志,进程与 PCB 一一对应。
PCB 中的内容:
- 进程描述信息:
- 进程标识符 (process ID),唯一,通常是一个整数
- 进程名,通常基于可执行文件名
- 用户标识符 (user ID)
- 进程组 (process group)
- 进程控制信息:
- 当前状态
- 优先级 (priority)
- 代码执行入口地址
- 程序的外存地址
- 运行统计信息 ( 执行时间、页面调度 )
- 进程间同步和通信
- 阻塞原因
- 资源占用信息:
- 虚拟地址空间的现状
- 打开文件列表
- CPU 现场信息:
- 寄存器值 ( 通用、程序计数器 PC、状态 PSW,地址包括栈指针 )
- 指向赋予该进程的段 / 页表的指针
所有 PCB 组织在一起放在内存的固定区域构成 PCB 表,或称为进程表 (process table)。PCB 表的大小决定了系统中最多可同时存在的进程个数,称为系统的并发度。
PCB 表的组织方式:
- 链接结构:同一状态的进程其 PCB 成一链表,多个状态对应多个不同的链表索引结构,如就绪链表、阻塞链表。
- 索引结构:同一状态的进程归入一个 index 表 ( 由 index 指向 PCB),多个状态对应多个不同的 index 表,如就绪索引表、阻塞索引表。
2. 进程的状态 ¶
进程的 3 种基本状态:运行,就绪,阻塞。
4 种状态转换:
- 运行 --> 阻塞:当一进程必须等待如下事件时:
- 对一资源的访问尚不能进行
- 初始化 I/O 且必须等待结果
- 等待某一进程提供输入 (IPC)
- 运行 --> 就绪:运行进程用完了时间片,或因为一高优先级进程进入就绪状态,运行进程被中断。
- 就绪 --> 运行:调度程序选择该进程运行。
- 阻塞 --> 就绪:所等待的事件发生。
我们认为不存在另外两种情况
3. 进程控制 ¶
进程控制由具有特定功能的原语完成。
原语 (primitive):由若干条指令构成的“原子操作 (atomic operation)”过程,作为一个整体而不可分割——要么全都完成,要么全都不做。许多系统调用是原语,但并非系统调用都是原语。
包括:创建、撤销、阻塞、唤醒、挂起、激活。
4. Linux 和 Windows 的进程 ¶
略。