进程的定义
- 程序:是存放在磁盘中的可执行文件,是一系列的指令集合(静态的)
- 进程(Process):是程序的一次执行过程,同一个程序可能有多个进程(动态的)
内存中同时放入多道程序,各个程序的代码、运算数据存放的位置不同。操作系统要怎么才能找到各程序的存放位置呢?
为了方便操作系统管理,完成各程序并发执行,引入了进程、进程实体(进程映像)。
程序段、数据段、PCB 三部分组成了进程实体(进程映像)。一般情况下,我们把进程实体就简称为进程,例如,所谓创建进程,实质上是创建进程实体中的 PCB;而撤销进程,实质上是撤销进程实体中的 PCB。
⚠️ 注意:PCB 是进程存在的唯一标志!
从不同的角度,进程可以有不同的定义,比较传统典型的定义有:
- 进程是程序的一次执行过程;
- 进程是一个程序及其数据在处理机上顺序执行时所发生的活动;
- 进程是具有独立功能的程序在数据集合上 运行的过程,它是系统进行资源分配和调度的一个独立单位。
⭐️ 进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
进程的组成
PCB
PCB(Process Control Block)
操作系统对进程管理工作所需的想逆袭都存放在 PCB 中。
PCB 是进程存在的唯一标志,当进程被创建时,操作系统为其创建 PCB,当进程结束时,会挥手回收其 PCB。
程序段
程序段:存放要执行的代码
数据段
数据段:存放程序运行过程中处理的各种数据(如:程序中定义的变量)
进程的组织
在一个系统中,通常有数十、数百乃至数钱个 PCB。为了能对他们加以有效的管理,应该用适当的方式把这些 PCB 组织起来。
进程的组成讨论的是一个进程内部由哪些部分构成的问题;而进程的组织讨论的是多个进程之间的组织方式问题。
链接方式:
- 执行指针(指向当前处于运行态(执行态)的进程)
- -> PCB2(单 CPU 计算机中,相同时刻只会有一个进程处于运行态)
- 就绪队列指针(指向当前处于就绪态的进程)
- PCB5 -> PCB1 -> PCB4(通常会把优先级高的进程放在队头)
- 阻塞队列指针(指向当前处于阻塞态的进程,很多操作系统还会根据阻塞原因不同,再分为多个阻塞队列)
- PCB3 -> PCB7 -> PCB6
索引方式:
特征
动态性
动态性是进程最基本的特征。
并发性
独立性
进程是资源分配、接受调度的基本单位。
异步性
异步性会导致并发程序执行结果的不确定性。