【操作系统】进程

在多道程序环境下, 程序的执行属于并发执行, 此时他们将失去封闭性, 并具有间断性, 以及其运行结果不可再现性的特征. 因此为了程序能够并发执行, 并且可以对并发执行的程序加以描述和控制, 人们引入了进程的概念

进程的定义

  • 进程是程序的一次执行
  • 进程是一个程序及其数据在处理机上顺序执行时所发生的活动
  • 进程是系统资源分配和调度的一个独立单位

进程的特征

  1. 动态性
    进程的实质是程序在多道程序系统中的一次执行过程, 进程是动态产生, 调度和消亡的.

  2. 并发性
    多个进程实体存于内存中, 且能在一段时间内同时运行.

  3. 独立性
    进程实体是一个能独立运行,独立获取资源和独立接受调度的基本单位.

  4. 异步性
    进程按各自独立的,不可预知的速度向前推进.

进程的状态

三种基本状态:

  1. 就绪(Ready)
    指进程已经处于准备好运行的状态, 即只要再获得CPU便可立即执行, 如果存在多个就绪的进程, 则系统会按一定的策略(优先级策略)排成一个队列, 成为就绪队列.
  2. 执行(Running)
    指进程获得CPU, 正在执行的状态, 多核CPU可同时执行多个进程.
  3. 阻塞(Block)
    正在执行的进程由于获取不到某些资源而暂时无法继续执行时, OS把CPU分配给另一个就绪的进程, 而让受阻的进程处于暂停状态, 一般将这种状态称为阻塞状态.

创建状态和终止状态

  1. 创建状态
    进程的创建是一个很复杂的过程, 包括申请PCB, 申请资源, 插入就绪队列等, 如果因为申请不到资源, 或者内存不足等原因, 导致创建进程未完成, 从而进程不能被调度执行, 此时称进程所属的状态为创建状态.

  2. 终止状态
    当一个进程到达了自然结束点, 或是出现了错误 或是被操作系统中介 或是被其他进程终结, 它将进入终止状态, 进程终止后需要一些善后处理, 比如将其PCB清零返回等.

挂起操作

为了操作系统和用户观察分析进程的需要, 引入的一个重要操作

  1. 终端用户需要进程暂停下来进行研究和修改.
  2. 父进程希望挂起从而协调操作某个子进程
  3. 操作系统负荷调节
  4. 操作系统检查某个进程的资源使用或进行记账

引入挂起原语Suspend和激活原语Active后进程可能会发生以下状态的转换

  • 活动就绪 == >静止就绪
  • 静止就绪 == >活动就绪
  • 活动阻塞 == >静止阻塞
  • 静止阻塞 == >活动阻塞

进程间的状态转换

在这里插入图片描述

进程控制块PCB(Process Control Block)

  • OS为每个进程定义了一个数据结构PCB, 为了便于系统描述和管理程序的运行.
  • PCB记录了操作系统所需要的,用于描述进程状态和管理进程运行的全部信息.
  • PCB使每个程序成为一个可以独立运行的基本单位, 使其能够与其他进程并发运行.

PCB作用

1. 作为独立运行单位的标志
2. 能实现间断性的运行方式
3. 提供进程管理所需要的信息
4. 提供进程调度所需要的信息
5. 实现与其他进程的同步与通信

PCB中的信息

  1. 进程标识符
    用于唯一地标识一个进程

  2. 处理机状态
    也称为处理机的上下文, 主要由处理机的各种寄存器中的内容组成

  3. 进程调度信息
    存储有关调度的信息包括 进程状态, 进程优先级, 和进程阻塞原因等.

  4. 进程控制信息
    用于进程控制所必须的信息 包括程序和数据的地址, 进程同步和通信机制, 资源清单, 链接指针

进程控制块的组织方式

  1. 线性方式
    即将所有的PCB组织在一张线性表中, 该方式实现简单,开销小,但查找较慢, 因此适合进程数目不多的系统
  2. 链接方式
    把相同状态的PCB链接成一个队列, 可以链接就绪队列, 阻塞队列和空白队列等.
  3. 索引方式
    根据PCB的状态不同而建立记账索引表, 例如就绪索引表,阻塞索引表等

猜你喜欢

转载自blog.csdn.net/z944733142/article/details/89059656