操作系统笔记:(五)进程

本文主要讲解进程的组成,PCB,及状态模型

本文安排结构如下:

  • 进程的基本概念: 主要讲进程的是什么,特点,及与程序的区别
  • 进程控制块(Process Control Block, PCB)
  • 进程的状态模型

进程的基本概念

非正式的说法就是进程就是执行中的程序, 活动实体。

进程的组成

包含程序执行时的所有状态信息:

  • code
  • data
  • 状态寄存器(e.g.: CR0,IP)
  • 通用寄存器
  • 进程占用的系统资源(e.g: 打开的文件…)

特点

  • 动态性: 每一条指令执行之后,进程的状态信息都是会变化的
  • 并发性: 各个进程可以在操作系统中切来切去,如下图
    操作系统笔记:(五)进程_第1张图片

  • 独立性

  • 制约性,受到系统资源的制约

进程与程序的区别

  • 进程是OS 中处于执行状态的程序的抽象,是活动的
  • 程序=文件(静态的可执行文件)
  • 进程= 执行中的程序= 程序 + 执行的状态信息
  • 进程是动态的
  • 程序是静态的

进程控制块(Process Control Block, PCB)

PCB 就是保存程序执行状态信息的实体,是一个数据结构。包括:

  • 进程的标识信息
  • 处理机现场 : 进程切换需要保存
  • 进程控制信息

操作系统笔记:(五)进程_第2张图片

进程的控制信息

操作系统笔记:(五)进程_第3张图片

PCB 的组织形式

就是将同一状态的进程组织成一个队列,不同状态的进程形成多个队列,当然这个“队列”可以用 链表或者索引表实现
操作系统笔记:(五)进程_第4张图片

接下来,我们谈谈进程的状态模型

进程的状态模型

我们这里主要讲解3状态模型和挂起状态模型

三状态模型

操作系统笔记:(五)进程_第5张图片

图中有5个状态,但主要持续的状态是 就绪,等待,运行

进程刚开始启动,就处于创建态,启动完成进入就绪态,等待被处理机调度执行,被调度之后处于运行态,(remark: 运行态并不会有运行队列,单个处理器一个时刻仅能运行一个进程), 运行态结束就会退出,若运行态,需要请求外部资源,比如说,打开文件,等待网络数据到达,这样就会处于等待态,当然运行态如果被抢占或者时间片到期,就会被OS 暂时暂停,放到就绪队列,等待态等待事件到达,也会被唤醒,到达就绪队列

挂起状态模型

三状态模型主要是限制在CPU 的角度来说的,挂起模型引入了外存,就是上一讲说的,内存的管理,中提到可能会把一些进程占用的内存资源换出到外存,这就引入了挂起模型

操作系统笔记:(五)进程_第6张图片

  • 等待挂起,和就绪挂起都是在外存中的,就是处于等待状态的进程被处理机调度到外存中执行
  • 就绪挂起,在外存中,激活进入内存就可进入就绪态

下一节讲线程的基本概念

这里还有一个小问题
操作系统笔记:(五)进程_第7张图片

你可能感兴趣的:(system&software,engineer)