一、进程的基本概念
-
多道程序设计
- 允许多个程序同时进入内存并运行,其目的是为了提高系统效率 并发环境
- 一段时间间隔内,单处理器上有两个或两个以上的程序同时处于开始运行但尚未结束的状态,并且次序不是事先确定的 并发程序
- 在并发环境中执行的程序
1. 进程的定义
进程是具有独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的独立单位,又称任务
- 是程序的一次执行过程
- 是正在运行程序的抽象
- 将一个CPU变幻成多个虚拟的CPU
- 系统资源以进程为单位分配,如内存、文件、…,每个具有独立的地址空间
- 操作系统将CPU调度给需要的进程
2. 进程控制块(PCB)
PCB:Process Control Block
- 又称进程描述符、进程属性
- 操作系统用于管理控制进程的一个专门数据结构
- 记录进程的各种属性,描述进程的动态变化过程
-
PCB是系统感知进程存在的唯一标志
- 进程与PCB是一一对应的
进程表:所有进程的PCB集合
PCB包含4部分内容:
-
进程描述信息
- 进程标识符(process ID),唯一,通常是一个整数
- 进程名,通常基于可执行文件名,不唯一
- 用户标识符(user ID)
- 进程组关系 进程控制信息
- 当前状态
- 优先级(priority)
- 代码执行入口地址
- 程序的磁盘地址
- 运行统计信息(执行时间、页面调度)
- 进程间同步和通信
- 进程的队列指针
- 进程的消息队列指针 所拥有的资源和使用情况
- 虚拟地址空间的状况
- 打开文件列表 CPU现场信息
- 寄存器值(通用寄存器、程序计数器PC、程序状态字PSW、栈指针)
- 指向该进程页表的指针
Linux:task_struct
Windows:EPROCESS、KPROCESS、PEB
二、进程状态及状态转换
进程的三种基本状态:运行态、就绪态、等待态
-
运行态(Running)
- 占有CPU,并在CPU上运行 就绪态(Ready)
- 已经具备运行条件,但由于没有空闲CPU,而暂时不能运行 等待态(Waiting/Blocked)
- 因等待某一事件而暂时不能运行
进程的其他状态:创建态、终止态、挂起态
-
创建态(New)
- 已完成创建一进程所必要的工作,但尚未同意执行该进程 终止态(Terminated)
- 终止执行后,进程进入该状态,可完成一些数据统计工作,并回收资源 挂起态(Suspend)
- 用于调节负载,其进程不占用内存空间,映像交换到磁盘上