Operating System 简明教程

Operating System - Processes

Process

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

简单地说,我们以文本文件形式编写计算机程序,当我们执行该程序时,它将变成一个进程,执行程序中提到的所有任务。

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

process components

S.N.

Component & Description

1

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

2

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

3

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

4

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

Program

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

#include <stdio.h>

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

计算机程序是一组指令,执行时执行特定任务。如果将程序与进程进行比较,我们可以得出结论:进程是一个计算机程序的动态实例。

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

Process Life Cycle

在进程执行期间会经历不同的状态。这些状态在不同的操作系统中可能有所不同,且这些状态的名称也没有进行标准化。

一般来说,一个进程每次可以处于以下五个状态之一。

S.N.

State & Description

1

Start 进程最初启动/创建时的初始状态。

2

Ready 进程在等待分配到处理器。就绪进程在等操作系统为其分配处理器,以便它们能够运行。进程可能在此状态后或在被调度程序中断向某个其他进程分配 CPU 时进入此状态。

3

Running 进程在被操作系统调度程序分配给处理器后,进程状态将设置为正在运行,且处理器执行其指令。

4

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

5

Terminated or Exit 一旦进程完成执行,或被操作系统终止,它将转到终止状态,并在此状态下等待从主内存中移除。

process state

Process Control Block (PCB)

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

S.N.

Information & Description

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

PCB 在整个生命周期中都维护着一个进程,并在进程终止时删除。