操作系统 - 进程

  • 进程

    进程基本上是正在执行的程序。流程的执行必须以顺序方式进行。
    流程被定义为一个实体,它代表系统中要实现的基本工作单元。
    简单来说,我们将计算机程序写在一个文本文件中,当我们执行这个程序时,它就变成了一个执行程序中提到的所有任务的进程。
    当一个程序被加载到内存中并成为一个进程时,它可以分为四个部分——堆栈、堆、文本和数据。下图显示了主内存中进程的简化布局 -
    进程组件
    序列号 组件和说明
    1
    Stack(栈区)
    进程堆栈包含临时数据,例如方法/函数参数、返回地址和局部变量。
    2
    Heap(堆区)
    这是在运行时动态分配给进程的内存。
    3
    Text(文本段)
    这包括由 Program Counter 的值和处理器寄存器的内容表示的当前活动。
    4
    Data(数据段)
    本节包含全局变量和静态变量。
  • 程序

    程序是一段代码,可能是单行或数百万行。计算机程序通常由计算机程序员以编程语言编写。例如,这是一个用 C 编程语言编写的简单程序 -
    
    #include <stdio.h>
    int main() {
       printf("Hello, World! \n");
       return 0;
    }
    
    计算机程序是由计算机执行时执行特定任务的指令集合。当我们将程序与进程进行比较时,我们可以得出结论,进程是计算机程序的动态实例。
    执行定义明确的任务的计算机程序的一部分称为algorithm. 计算机程序、库和相关数据的集合称为software.
  • 流程生命周期

    当一个进程执行时,它会经历不同的状态。这些阶段在不同的操作系统中可能会有所不同,并且这些状态的名称也没有标准化。
    一般来说,一个进程一次可以有以下五种状态之一。
    序列号 状态和描述
    1
    Start
    这是首次启动/创建进程时的初始状态。
    2
    Ready
    该进程正在等待分配给一个处理器。就绪进程正在等待操作系统分配给它们的处理器,以便它们可以运行。进程可能会在之后进入此状态Start状态或在运行时被调度程序中断以将 CPU 分配给其他进程。
    3
    Running
    一旦 OS 调度程序将进程分配给处理器,进程状态就会设置为运行,并且处理器执行其指令。
    4
    Waiting
    如果进程需要等待资源,例如等待用户输入或等待文件变为可用,则进程进入等待状态。
    5
    Terminated or Exit
    一旦进程完成其执行,或者它被操作系统终止,它就会移动到终止状态,等待从主内存中删除。
    进程状态
  • 进程控制块 (PCB)

    进程控制块是操作系统为每个进程维护的数据结构。PCB 由整数进程 ID (PID) 标识。PCB保留了跟踪进程所需的所有信息,如下表所示 -
    序列号 信息和描述
    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 在其整个生命周期内为一个进程维护,并在进程终止后被删除。