2 进程
type
status
date
slug
summary
tags
category
icon
password
2.1 进程的定义
并发:同时出发,交替执行(区分并行)
先保存执行现场,后切换执行现场
进程的定义
- 一个正在执行的程序(Program)
- 一个正在计算机中运行的程序实例(Instance)
- 能分配给处理器并由处理器执行的一个实体(Entity)
- 由一个顺序执行的代码段、一个当前状态和一组相关系统资源所刻画的活动单元(Unit)
进程的5个基本特征
- 动态性:动态特性表现在它因创建而产生,由调度而执行,因得不到资源而暂停执行,最后因完成或撤销而消亡(进程生命周期)
- 并发性 :引入进程的目的就是为了使多个程序并发执行,以提高资源利用率(主要是CPU)
- 独立性:进程是一个程序运行的基本单位,也是系统进行资源分配和调度的基本单位
- 异步性:进程以各自独立的、不可预知的速度向前推进。
- 交互性:进程在运行过程中,可能会与其它进程发生直接或间接的相互作用
2.1 进程的状态
- 就绪状态:在某时刻,进程已获得除处理机以外的所有资源,一旦分到了处理机就可以立即执行
- 运行状态:进程已经获得必要资源,并占有处理机运行
- 阻塞状态:正在执行的进程,由于发生某事件而暂时无法执行下去
进程三状态变迁图

阻塞态:等待某个资源可用(不包括CPU)或等待I/O完成,即使CPU空闲,该进程也不能运行。

进程五状态变迁图

- 新建状态:至少建立PCB,但进程相关的其他内容可能未调入主存(例如:Linux的写时复制 Copy on Write 技术)
- 退出状态:进程已经终止,但资源等待父进程或系统回收
进程创建的原因:新的批处理作业、交互登录、为提供服务而由操作系统创建、由现有进程派生
进程终止的原因:正常完成、超过时限、无可用内存、超出范围、保护错误、算术错误、时间超出、I/O失败、无效指令、特权指令、数据误用、操作员或操作系统干涉、父进程终止、父进程请求
进程队列:为了管理和调度进程,操作系统将具有相同属性或特征的进程保存到队列数据结构中,通常以链表队列形式实现,元素是PCB


进程七状态变迁图

挂起状态:引入主存↔外存的交换机制
挂起进程的特点:
- 该进程不能立即执行。
- 该进程可能在也可能不在等待一个事件。若等待一个事件,那么阻塞条件不依赖挂起条件,阻塞事件的发生不会使进程立即执行。
- 为阻止进程执行,可以通过代理使其置于挂起状态,代理可以是进程自己,也可以是父进程或操作系统。
- 除了代理显示地命令系统进行状态转换,否则该进程无法从这一状态转移。
进程挂起的原因:
- 交换:操作系统需要释放足够的内存空间
- 其它OS原因:进程有问题或工具进程
- 交互式用户请求
- 定时:周期性执行
- 父进程的请求:编程的需要
2.3 进程的描述
操作系统为单个进程建立“进程映像”:
- 一段可执行的程序(代码)
- 程序所需的相关数据(变量、 栈、堆、缓冲区等)
- 记录程序执行的上下文环境或运行时信息
为了管理进程和资源,操作系统构造并维护其管理和维护的每个实体的信息表:内存表、I/O表、文件表、进程表
进程控制块PCB(Process Control Block)是一个线性的数据结构,用来描述和记录进程的动态变化信息,是进程的灵魂
系统创建一个进程,就是由系统为某个程序设置一个PCB;进程执行完成时,由系统收回其PCB,该进程便消亡了。
PCB是进程存在的唯一标志,它记录了程序执行的上下文环境,通过PCB可以访问到进程的所有信息


课堂练习

C “可能”

BDDCA

A

B

D

A
2.4 进程的控制
执行模式
执行模式:特权模式(系统模式、内核模式、控制模式)、非特权模式(用户模式)
在特权模式下,软件将完全控制处理器,及其所有指令、寄存器和内存,保护操作系统或操作系统表(如PCB)不被用户程序干扰
当调用一个操作系统的服务或中断来触发系统例程的执行时,执行模式将被置为内核模式。
当从系统服务返回到用户进程时,执行模式将被置为用户模式
进程创建
进程创建:创建原语,为被创建进程形成一个PCB,并填入相应的初始值
终端用户登录系统、作业调度、系统提供服务、用户程序的应用请求
- 为新进程分配一个唯一的进程标识符
- 为进程分配空间
- 再根据父进程所提供的参数将子进程的PCB初始化
- 将此PCB插入就绪队列(或就绪挂起/新建队列)
- 创建或扩充其它数据结构
进程切换
进程切换:可在操作系统从当前运行的进程中获得控制权的任何时刻发生(中断、陷阱、系统调用)
- 保存处理器上下文
- 更新当前处于运行态的进程的进程控制块,修改状态,记录退出运行态的原因,更新记账信息等
- 把进程的PCB移动到相应的队列
- 选择另一个进程(调度问题)
- 更新内存管理数据结构
- 恢复选中进程的运行现场
进程撤销
进程撤销/终止:一个进程在完成其任务后,应予以撤销,以便及时释放其所占用的各类资源,可以指定撤销某个进程或某进程及其子孙进程

- 先从PCB集合中找到被撤销进程的PCB
- 若被撤销进程正处于运行状态,则应立即停止该进程的执行,设置调度标志,以便进程撤销后将处理机分给其他进程
- 对后一种撤销策略,若被撤销进程有子孙进程,还应将该进程的子孙进程予以撤销
- 对于被撤销进程所占有的资源,或者归还给父进程,或者归还给系统
- 最后撤销它的PCB
进程的阻塞和唤醒
进程的阻塞和唤醒:阻塞原语(执行态→阻塞态)、唤醒原语(阻塞态→就绪态)
- 由于该进程正处于执行状态,故应先中断处理机和保存该进程的CPU现场
- 然后将该进程插入到等待该事件的队列中
- 再从就绪进程队列中选择一个进程投入运行
一个进程由运行状态转变为阻塞状态,是该进程自己调用阻塞原语去完成的(主动)
而进程由阻塞状态到就绪状态,是另一个发现者进程(或中断服务程序)或OS调用唤醒原语实现的(被动)
2.5 操作系统的执行
- 无进程内核
- 操作系统例程在用户进程内运行
- 基于进程的操作系统:操作系统例程作为分离的进程执行
期末真题
2024秋
一、关于进程,回答下列问题。(8分)
1)若进程状态包含创建态、就绪态、阻塞态、运行态、终止态五种状态,列出一个进程可以从运行态切换到哪些状态,并分别给出一种可能的原因。可以画图说明。(2分)
2)什么是进程切换?结合课内实验,给出主要过程。(3分)
3)结合Linux系统实验,说明内核初始化完成后,如何跳到用户模式下运行。(3分)
2020春
一、关于进程,回答下列问题(8分)
1)操作系统进程控制块通常保存哪些信息?进程控制块有什么作用?(3分)
2)简述操作系统在进程切换时所需要做的工作?(3分)
3)模式切换与进程切换的区别(2分)
2014
一.进程状态
1)解释三种进程状态的概念:运行、就绪、阻塞。
2)三种能引发先从运行到阻塞,再从阻塞到就绪的行为。
3)如果让你定义一种状态,你会定义一种什么状态(除上述三种),为什么。
Loading...