操作系统 - 进程


进程

进程基本上是一个正在执行的程序。 进程的执行必须按顺序进行。

进程被定义为一个实体,它代表了系统中要实现的基本工作单元。

简单来说,我们将计算机程序写在一个文本文件中,当我们执行这个程序时,它就变成了一个进程,执行程序中提到的所有任务。

当一个程序被加载到内存中成为一个进程时,它可以分为四个部分——栈、堆、文本和数据。 下图显示了主内存中进程的简化布局 −

Process 进程组件
S.N. 组件 & 描述
1

Stack

进程栈包含方法/函数参数、返回地址和局部变量等临时数据。

2

Heap

这是在进程运行时动态分配的内存。

3

Text

这包括由程序计数器的值和处理器寄存器的内容表示的当前活动。

4

Data

此部分包含全局变量和静态变量。


程序

程序是一段代码,可以是单行或数百万行。 计算机程序通常由计算机程序员以编程语言编写。 例如,这是一个用 C 编程语言编写的简单程序 −

#include <stdio.h>

int main() {
   printf("Hello, World! \n");
   return 0;
}

计算机程序是由计算机执行时执行特定任务的指令的集合。 当我们将程序与进程进行比较时,我们可以得出结论,进程是计算机程序的动态实例。

执行定义明确的任务的计算机程序的一部分称为算法。 计算机程序、库和相关数据的集合称为软件


进程生命周期

当一个进程执行时,它会经历不同的状态。 这些阶段在不同的操作系统中可能会有所不同,而且这些状态的名称也不规范。

一般来说,一个进程一次可以有以下五种状态之一。

S.N. 状态 & 描述
1

Start

这是首次启动/创建进程时的初始状态。

2

Ready

进程正在等待分配给处理器。 就绪进程正在等待操作系统分配给它们的处理器,以便它们可以运行。 进程可能在 Start 状态之后或在运行时进入此状态,但被调度程序中断以将 CPU 分配给其他进程。

3

Running

一旦操作系统调度程序将进程分配给处理器,进程状态将设置为运行,处理器执行其指令。

4

Waiting

如果进程需要等待资源,例如等待用户输入或等待文件可用,则进入等待状态。

5

Terminated or Exit

一旦进程完成执行,或者被操作系统终止,它就会进入终止状态,等待从主内存中删除。

Process States 进程状态

进程控制块 (PCB)

进程控制块是操作系统为每个进程维护的数据结构。 PCB 由整数进程 ID (PID) 标识。 PCB 保留了跟踪过程所需的所有信息,如下表所示 −

S.N. 信息 & 描述
1

Process State

进程的当前状态,即它是否准备好、正在运行、等待或其他。

2

Process privileges

这是允许/禁止访问系统资源所必需的。

3

Process ID

操作系统中每个进程的唯一标识。

4

Pointer

指向父进程的指针。

5

Program Counter

程序计数器是一个指向该进程要执行的下一条指令地址的指针。

6

CPU registers

需要存储进程以执行运行状态的各种 CPU 寄存器。

7

CPU Scheduling Information

进程优先级和调度进程所需的其他调度信息。

8

Memory management information

这包括页表、内存限制、段表等信息,具体取决于操作系统使用的内存。

9

Accounting information

这包括用于进程执行的 CPU 量、时间限制、执行 ID 等。

10

IO status information

这包括分配给进程的 I/O 设备列表。

PCB的架构完全依赖于操作系统,在不同的操作系统中可能包含不同的信息。 这是PCB的简化图 −

进程控制块

PCB 在进程的整个生命周期内都会被维护,一旦进程终止就会被删除。