Skip to content

2.2 进程的描述

目录


程序和进程的区别:

  1. 程序是静态的,可以理解为类的定义
  2. 进程是动态的,可以理解为类的生命周期

进程的特点:

  1. 动态性
  2. 并发性
  3. 独立性
  4. 异步性
时间片到 ---->【就绪】<--- 因为等待资源分配
↑ 进程调度 ---↙                 而唤醒
|  |                                ↑
|  |                                |
|  ↓                                |
【运行】--> 因为等待某个事件 ----->【阻塞】
                而阻塞

上面的模型只是简单的模拟

PCB

PCB(Process Control Block)进程控制块,用于描述进程的基本信息和运行状态。

PCB 的内容:

  1. 进程标识符:唯一标识一个进程
  2. 处理机状态:包括程序计数器、寄存器、程序状态字等
  3. 进程调度信息:包括进程的优先级、调度队列指针等
  4. 进程控制信息:包括进程的状态、进程的父子关系、进程的事件、进程的特权等
  5. 进程所拥有的资源信息:包括打开的文件列表、内存资源、I/O 资源等
  6. 与其他进程的关系:包括进程链指针、同步和通信机制等

PCB 创建:

  1. 进程进入创建状态
  2. 为进程分配一个唯一的进程标识符
  3. 为进程分配一个 PCB
  4. 初始化 PCB,包括进程的状态、进程的父子关系、进程的事件、进程的特权等
  5. 将进程的 PCB 插入到就绪队列中

PCB 销毁:

  1. 进程进入终止状态
  2. 释放进程所占用的资源
  3. 释放进程的 PCB
  4. 将进程的 PCB 从就绪/阻塞队列中移除

挂起和激活

由于各种需求,于是将挂起和对应的激活操作加入到了原语中。

                        ↗---- <挂起> -----↘
<时间片到> ----> [动态就绪] <-- <激活> <-- [静态就绪]
↑ <进程调度> ---↙    ↑                         ↑
|   |          因为等待资源分配                  |
|   |             而<唤醒>                      |
|   ↓                  ↑                        |
[运行]                 |                      <唤醒>
  |                    |                        |
  |                    |                        |
  ↓                    |                        |
因为等待某个事件 --> [动态阻塞] --> <挂起> --> [静态阻塞]
  而<阻塞>                  ↖--- <激活> -----↙

Copyright © 2022 田园幻想乡 浙ICP备2021038778号-1