【操作系统笔记】 02.进程的描述与控制

进程,就是程序的执行,也是资源分配的基本单位。

一、进程的执行

顺序执行

一个挨一个执行,独占所有资源,一旦开始执行不受外界干扰。重复执行的结果是一致的。

并发执行

多个程序一起执行,便会带来资源的抢占,相互制约、相互影响。
由于时间片的抢占,所以程序是断断续续执行的。
由于相互影响,而且不一定是谁影响谁,导致多次执行的结果不一定一样。

二、进程的描述

进程映像的组成(静态的)

  • 进程控制块(PCB):进程的标志。
  • 程序段:即代码。
  • 数据段:即初始化的数据、处理的数据,输出的结果数据。

进程的状态转换

三种基本状态:

  • 就绪(ready):获得了对应资源(除CPU),进入了就绪队列。
  • 执行(Running):获得了时间片,开始执行。
  • 阻塞(BLock):时间片用完,或者发生了某个事件(比如等待IO),进程暂停执行了,进入了阻塞队列。

就绪和阻塞:就绪状态得到时间片后能立即执行,而阻塞并不能。

在三种基础状态上,添加了两种:

  • 创建:申请了PCB,获取了部分资源,OS会根据性能(内存剩余量)来延迟就绪,即为创建状态。
  • 终止:即善后处理。释放PCB、回收资源等。

最后,添加了一组操作,挂起和激活。
挂起和激活是一种主动操作,表明我现在不想执行它,但是我待会会执行,先帮我保留现场。我会让出CPU和其他资源。

PCB的数据结构

  • 进程标识符
    包括进程ID,父进程ID,子进程ID,进程家族等信息。

  • CPU状态
    包括通用寄存器、指令计数器、程序状态字PSW,用户栈指针。

  • 进程调度信息

    • 进程的状态
    • 进程的优先级
    • 进程已等待CPU的时间、已执行时间。(调度算法使用)
    • 事件,即阻塞原因。
  • 进程控制块信息

    • 内存和外存的首地址,方便找到数据段和程序段。
    • 消息同步的信息,比如消息队列指针、信号量等。
    • 资源清单,使用了哪些资源。
    • 下一个进程PCB的地址。
原文地址:https://www.cnblogs.com/HappyTeemo/p/15354837.html