进程
进程基本上是一个正在执行的程序。 进程的执行必须按顺序进行。
进程被定义为一个实体,它代表了系统中要实现的基本工作单元。
简单来说,我们将计算机程序写在一个文本文件中,当我们执行这个程序时,它就变成了一个进程,执行程序中提到的所有任务。
当一个程序被加载到内存中成为一个进程时,它可以分为四个部分——栈、堆、文本和数据。 下图显示了主内存中进程的简化布局 −
程序
程序是一段代码,可以是单行或数百万行。 计算机程序通常由计算机程序员以编程语言编写。 例如,这是一个用 C 编程语言编写的简单程序 −
#include <stdio.h> int main() { printf("Hello, World! \n"); return 0; }
计算机程序是由计算机执行时执行特定任务的指令的集合。 当我们将程序与进程进行比较时,我们可以得出结论,进程是计算机程序的动态实例。
执行定义明确的任务的计算机程序的一部分称为算法。 计算机程序、库和相关数据的集合称为软件。
进程生命周期
当一个进程执行时,它会经历不同的状态。 这些阶段在不同的操作系统中可能会有所不同,而且这些状态的名称也不规范。
一般来说,一个进程一次可以有以下五种状态之一。
进程控制块 (PCB)
进程控制块是操作系统为每个进程维护的数据结构。 PCB 由整数进程 ID (PID) 标识。 PCB 保留了跟踪过程所需的所有信息,如下表所示 −
PCB的架构完全依赖于操作系统,在不同的操作系统中可能包含不同的信息。 这是PCB的简化图 −
PCB 在进程的整个生命周期内都会被维护,一旦进程终止就会被删除。