操作系统-进程及其实现

文章发布时间:

最后更新时间:

2.3进程及其实现

进程的定义和性质

进程是 操作系统进行资源分配和保护的基本单位 ;是支持程序执行的系统机制,既能用来共享资源又能描述程序并发执行过程的系统基本单位。

为什么引入进程概念?

  • 刻画系统动态性
  • 发挥系统的并发性(主要原因)
  • 程序并发执行引起资源共享和竞争,执行程序不再处于封闭环境中。
  • 程序概念自身无法刻画程序的并发特征,从而引入进程概念。
  • 解决系统"共享性",正确描述程序执行状态。

进程的状态及转换

(待补充:模型图的实际理解)

进程的三态,五态模型

(上课强调:图重要需要掌握)

image-20210917200532584

三态图运行状态:

  • 运行态:进程占有处理器正在运行的状态
  • 就绪态:进程具备运行条件,等待系统分配处理器以便运行的状态
  • 等待态:指进程不具备运行条件,正在等待某个时间完成的状态。

五态模型在三态模型的基础上增加了新建态和终止态:

  • 新建态:对应于进程被创建的状态,尚未进入就绪队列
  • 终止态:指进程完成任务到达正常结束点,或者出现无法克服的错误而异常终止,或被操作系统及有终止权的进程所终止时所处的状态。

五态模型创建一个进程需要两个步骤:

  • 为新进程分配所需要的资源和建立必要的管理信息
  • 设置该进程为就绪态,并等待被调度执行

对终止态的进程的解释:

处于终止态的进程不再被调度执行,下一步将被系统撤销,最终从系统消失。

终止一个进程的两个步骤:

  • 先等待操作系统或相关的进程进行善后处理(如抽取信息)
  • 回收占用的资源,并被系统删除

img

进程七态模型——挂起

背景:三态和五态模型都是假设内存中有序不断的创建进程。系统资源不满足进程运行要求时,必须把某些进程挂起(suspend)。

挂起的目的:为了暂时不参与调度****,释放它占有资源。置于磁盘对换区,以平滑系统负荷。

带有挂起的模型即为七态模型。七态模型在五态模型基础上增加了挂起就绪态和挂起等待态:

  • 挂起就绪态:进程具备运行条件,但是在外存中,只有被对换到内存才能被调度执行。
  • 挂起等待态:标明进程正在等待某一个事件发生且在外存中。

img

挂起进程的特征

  • 该进程不能被立即执行
  • 挂起进程可能会等待一个事件,但所等待的事件是独立于挂起条件的,事件结束并不能导致进程执行条件(即:挂起的这个进程可能在等待一个事件,但是这个事件对进程没有必然的影响)
  • 进程进入挂起状态是由于操作系统,父进程或进程本身阻止它运行
  • 结束进程挂起状态的命令只能通过操作系统或父进程发出。

进程的描述和组成

进程映像(elf)

  • 进程控制块

  • 进程程序块

  • 进程核心块

  • 进程数据块

    进程->用户线程(共享用户空间)->内核线程(没有用户空间)

进程的上下文(必须掌握)

操作系统中把进程物理实体支持进程运行的环境合称为进程上下文。
新进程占有处理器时,新老进程随之发生上下文切换。进程的运行被认为是在上下文中执行。

进程控制块(PCB)

Process Control Block(PCB)- 进程控制块是操作系统用于记录和刻划进程状态及有关信息的 数据结构
包括:进程执行时的情况,进程让出处理器后所处状态,断点等信息。
其包含三类信息:

  • 标识信息
  • 现场信息
  • 控制信息

进程的队列及管理

处于同一状态的所有 PCB 链接在一起的数据结构称为进程队列。

同一状态进程的PCB既可按 先来先到 的原则排成队列,也可按照 优先数或其他原则 排队(调度,算法时会提及)

通用队列组织方式:
(需要进一步查询数据结构补全)

  • 线性方式
  • 链接方式
  • 索引方式

进程上下文切换和CPU模式切换(待补)

进程切换是让处于运行态的进程中断运行,让出处理器,这时要做一次 进程上下文切换 ,CPU(用户态到核心态)

(重要,掌握两种切换的对应)

进程切换

调度和切换时机问题

(主要一点:修改PCB信息)

处理器模式切换

进程的控制和管理

首先说明概念:

管态:管态又名特权态,系统态或核心态。

目态:又名用户态。

原语:在管态下执行,完成系统特定功能的过程

原语和机器指令类似,特点是 执行过程中不允许被中断 ,是不可分割的基本单位,是顺序的不可能并发。

进程的控制和管理包括:

  • 创建进程
  • 阻塞进程
  • 唤醒进程
  • 挂起进程
  • 激活进程
  • 终止进程
  • 撤销进程

上述功能均通过原语实现。