第2章 进程管理(part2)

更新时间:2023-05-29 02:40:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第二章 进 程 管 理

Department of Computer Science

第二章 进程管理2.1 进程的基本概念 2.2 进程控制 2.3 进程同步 2.4 经典进程的同步问题 2.5 管程机制 2.6 进程通信 2.7 线程Heb Nomal University1

第二章 进 程 管 理

Department of Computer Science

简单回顾1. 程序顺序执行时的特征 (1) 顺序性: (2) 封闭性: (3) 可再现性: 2. 程序并发执行时的特征 1) 间断性 2) 失去封闭性 3) 不可再现性

Heb Nomal University

第二章 进 程 管 理

Department of Computer Science

程序与进程之间的区别 进程更能真实地描述并发,而程序不能 进程更能真实地描述并发, 并发 进程是由程序 数据和控制块三部分组成的 程序, 进程是由程序,数据和控制块三部分组成的 动态的 程序是静态的,进程是动态 程序是静态的,进程是动态的 进程有生命周期 有诞生有消亡,短暂的; 生命周期, 进程有生命周期,有诞生有消亡,短暂的;而程序 是相对长久的 一个程序可对应多个进程,反之亦然 一个程序可对应多个进程, 多个进程 创建其他进程的功能 进程具有创建其他进程的功能,而程序没有 进程具有创建其他进程的功能,

Heb Nomal University

第二章 进 程 管 理

Department of Computer Science

较典型的进程定义有: 较典型的进程定义有: (1) 进程是程序的一次执行。 进程是程序的一次执行。 (2) 进程是一个程序及其数据在处理机上顺序执行时所 发生的活动。 发生的活动。 (3) 进程是程序在一个数据集合上运行的过程,它是系 进程是程序在一个数据集合上运行的过程, 统进行资源分配和调度的一个独立单位。 统进行资源分配和调度的一个独立单位。 在引入了进程实体的概念后,我们可以把传统 传统OS中的 在引入了进程实体的概念后,我们可以把传统 中的 进程定义为 进程是进程实体的运行过程, 进程定义为:“进程是进程实体的运行过程,是系统进行 资源分配和调度的一个独立单位” 资源分配和调度的一个独立单位”。

Heb Nomal University

第二章 进 程 管 理

Department of Computer Science

2. 进程的三种基本状态就绪

1)就绪 就绪(Ready)状态 就绪 状态进程占有CPU,并在CPU上运行 进程占有CPU,并在CPU上运行时间片完 I/O完成 进程调度

2) 执行状态 执行状态一个进程已经具备运行条件,但由 一个进程已经具备运行条件, 于无CPU暂时不能运行的状态 暂时不能运行的状态( 于无CPU暂时不能运行的状态(当 调度给其CPU时 立即可以运行) 调度给其CPU时,立即可以运行)

阻塞

执行 I/O请求

3) 阻塞状态又叫等待态、封锁态、睡眠态指进 又叫等待态、封锁态、 程因等

待某种事件的发生而暂时不 能运行的状态(即使CPU空闲 空闲, 能运行的状态(即使CPU空闲,该 进程也不可运行) 进程也不可运行)

图 2-5 进程的三种基本状态及其转换

Heb Nomal University

第二章 进 程 管 理

Department of Computer Science

三种进程状态三种进程状态->五状态进程模型增加: 创建状态,终止状态 增加: 创建状态,

创建( new)状态 创建(新new)状态 终止(退出exit)状态 终止(退出exit)状态 exit) –OS 已完成为创建一进程所必要的工作 OS –中止后进程移入该状态 中止后进程移入该状态 已构造了进程标识符 –它不再有执行资格 它不再有执行资格 已创建了管理进程所需的表格 –表格和其它信息暂时由辅助程序保留 表格和其它信息暂时由辅助程序保留 –但还没有允许执行该进程 (尚未同意) 但还没有允许执行该进程 尚未同意) –一旦其他进程完成了对终止态进程的信息 一旦其他进程完成了对终止态进程的信息 因为资源有限 抽取之后,系统将删除该进程。 抽取之后,系统将删除该进程。 Heb Nomal University6

第二章 进 程 管 理

Department of Computer Science

2) 进程状态的转换 执行→静止就绪。 执行 静止就绪。 静止就绪 (1) 活动就绪→静止就绪。 活动就绪 静止就绪。 静止就绪 (2) 活动阻塞 静止阻塞。 活动阻塞→静止阻塞 静止阻塞。 (3) 静止就绪 活动就绪。 静止就绪→活动就绪 活动就绪。 激活 (4) 静止阻塞 活动阻塞。 静止阻塞→活动阻塞 活动阻塞。 就绪状态 就绪状态(Ready):进程在内存且可立即进入运行状态 : 阻塞状态 阻塞状态(Blocked):进程在内存并等待某事件的出现 : 静止阻塞/阻塞挂起状态(Blocked, suspend):进程在外 ):进程在外 静止阻塞 阻塞挂起状态( 阻塞挂起状态 ): 存并等待某事件的出现 静止就绪/就绪挂起状态(Ready, suspend):进程在外 静止就绪 就绪挂起状态( ):进程在外 就绪挂起状态 ): 存,但只要进入内存,即可运行 但只要进入内存,图 2-6 具有挂起状态的进程状态图

挂起

Heb Nomal University

第二章 进 程 管 理

Department of Computer Science

*进程要素 进程程序 进程数据 栈–用于过程调用和参数传递 用于过程调用和参数传递

进程控制块PCB (进程属性) 进程控制块PCB (进程属性 进程属性)– 处于核心段 – 用户进程不能直接访问、修改自己的PCB 用户进程不能直接访问、修改自己的

Heb Nomal University

第二章 进 程 PCB的内容 PCB的内容 管 理CPU 现场 保护 信息

Department of Computer Science

进程描述信息 进程控制信息

注意:不同操作系统中对进程的控制和管理机制不一样,P

CB中的信息多少也不一样 注意:不同操作系统中对进程的控制和管理机制不一样,PCB中的信息多少也不一样

Heb Nomal University

第二章 进 程 管 理

Department of Computer Science

第二章 进程管理2.1 进程的基本概念 2.2 进程控制 2.3 进程同步 2.4 经典进程的同步问题 2.5 管程机制 2.6 进程通信 2.7 线程Heb Nomal University10

第二章 进 程 管 理

Department of Computer Science

2.2 进 程 控 制处理器管理的一个主要工作是对进程的控制, 处理器管理的一个主要工作是对进程的控制, 包括:创建进程、阻塞进程、唤醒进程、挂起进程、激活进程、 包括:创建进程、阻塞进程、唤醒进程、挂起进程、激活进程、 终止进程和撤销进程等

2.2.1 进程的创建1. 进程图(Process Graph)B

A C

D

E

F

G

H

I

J

K

L

M

图 2-9 进程树 Heb Nomal University11

第二章 进 程 管 理

Department of Computer Science

2. 引起创建进程的事件 (1) 用户登录。 在终端上交互式的登录。系统为用户创建一个进程,并插入就绪队列 用户登录。 在终端上交互式的登录。 (2) 作业调度。 提交一个批处理作业。 作业调度。 提交一个批处理作业。 (3) 提供服务。 操作系统为用户请求创建一个服务进程。 提供服务。 操作系统为用户请求创建一个服务进程。 (4) 应用请求。 存在的进程孵化(spawn)新的进程。用户进程自己 应用请求。 存在的进程孵化(spawn)新的进程。创建进程

Heb Nomal University

第二章 进 程 管 理

Department of Computer Science

3. 进程的创建 进程的创建(Creation of Progress) (1)申请空白 申请空白PCB。 申请空白 。 (2) 为新进程分配资源。 为新进程分配资源。 (3) 初始化进程控制块。 初始化进程控制块。 (4) 将新进程插入就绪队列,或直接投入运行。 将新进程插入就绪队列,或直接投入运行。

Heb Nomal University

第二章 进 程 管 理

Department of Computer Science

2.2.2 进程的终止1. 引起进程终止 引起进程终止(Termination of Process)的事件 的事件 的事件 1) 正常结束 在任何计算机系统中,都应有一个用于表示进程已经 运行完成的指示。例如,在批处理系统中,通常在程序的最后安排一条 例如,在批处理系统中,通常在程序的最后安排一条Holt指令或终止的系统 指令或终止的系统 调用。当程序运行到Holt指令时,将产生一个中断,去通知 本进程已经完 指令时, 调用。当程序运行到 指令时 将产生一个中断,去通知OS本进程已经完 在分时系统中,用户可利用Logs off去表示进程运行完毕, 此时同样可 去表示进程运行完毕, 成。 在分时系统中,用户可利用 去表示进程运行完毕 产生一个中断,去通知OS进程已

运行完毕 进程已运行完毕。 产生一个中断,去通知 进程已运行完毕。

Heb Nomal University

第二章 进 程 管 理

Department of Computer Science

2) 异常结束 异常结束 在进程运行期间, 在进程运行期间, 由于出现某些错误和故障而迫使进程 终止。这类异常事件很多,常见的有: 终止。这类异常事件很多,常见的有:越界错误。这是指程序所访问的存储区,已越出该进程的区域; ① 越界错误。这是指程序所访问的存储区,已越出该进程的区域; 保护错。进程试图去访问一个不允许访问的资源或文件, ② 保护错。进程试图去访问一个不允许访问的资源或文件,或者以不 适当的方式进行访问,例如,进程试图去写一个只读文件; 适当的方式进行访问,例如,进程试图去写一个只读文件; 非法指令。程序试图去执行一条不存在的指令。出现该错误的原因, ③ 非法指令。程序试图去执行一条不存在的指令。出现该错误的原因, 可能是程序错误地转移到数据区,把数据当成了指令; 可能是程序错误地转移到数据区,把数据当成了指令; 特权指令错。用户进程试图去执行一条只允许OS执行的指令 执行的指令; ④ 特权指令错。用户进程试图去执行一条只允许 执行的指令; 运行超时。进程的执行时间超过了指定的最大值; ⑤ 运行超时。进程的执行时间超过了指定的最大值; 等待超时。进程等待某事件的时间, 超过了规定的最大值; ⑥ 等待超时。进程等待某事件的时间, 超过了规定的最大值; 算术运算错。进程试图去执行一个被禁止的运算,例如, 除 ⑦ 算术运算错。进程试图去执行一个被禁止的运算,例如,被0除; ⑧ I/O故障。这是指在I/O过程中发生了错误等。 故障。这是指在 过程中发生了错误等。 故障 过程中发生了错误等

Heb Nomal University

第二章 进 程 管 理

Department of Computer Science

3) 外界干预 外界干预 外界干预并非指在本进程运行中出现了异常事件 , 本进程运行中出现了异常事件, 本进程运行中出现了异常事件 而是指进程应外界的请求而终止运行。 而是指进程应外界的请求而终止运行。这些干预有:操作员或操作系统干预。 由于某种原因,例如,发生了死锁, ① 操作员或操作系统干预。 由于某种原因,例如,发生了死锁, 由操作员或操作系统终止该进程; 由操作员或操作系统终止该进程; 父进程请求。 ② 父进程请求。 由于父进程具有终止自己的任何子孙进程的权 因而当父进程提出请求时,系统将终止该进程; 利, 因而当父进程提出请求时,系统将终止该进程; 父进程终止。 当父进程终止时, 也将他的

所有子孙进程终 ③ 父进程终止。 当父进程终止时,OS也将他的所有子孙进程终 止。

Heb Nomal University

第二章 进 程 管 理

Department of Computer Science

2. 进程的终止过程 进程的终止过程 (1) 根据被终止进程的标识符,从PCB集合中找出该进 程的PCB,从中读出该进程的状态。 (2) 若被终止进程正处于执行状态,应立即终止该进程 的执行,并置调度标志为真,用于指示该进程被终止后应 重新进行调度。 (3) 若该进程还有子孙进程,还应将其所有子孙进程予 以终止,以防他们成为不可控的进程。 (4) 将被终止进程所拥有的全部资源,或者归还给其父 进程, 或者归还给系统。 (5) 将被终止进程(它的PCB)从所在队列(或链表)中移出, 将它的PCB归还到PCB池 将它的PCB归还到PCB池。17

Heb Nomal University

第二章 进 程 管 理

Department of Computer Science

2.2.3 进程的阻塞与唤醒1. 引起进程阻塞和唤醒的事件 1) 请求系统服务 2) 启动某种操作 3) 新数据尚未到达 4) 无新工作可做

Heb Nomal University

第二章 进 程 管 理

Department of Computer Science

2. 进程阻塞过程 进程阻塞过程 正在执行的进程, 当发现上述某事件时, 正在执行的进程 , 当发现上述某事件时 , 由于无法继续 执行,于是进程便通过调用阻塞原语 阻塞原语block把自己阻塞。可见, 把自己阻塞。 执行,于是进程便通过调用阻塞原语 把自己阻塞 可见, 进程的阻塞是进程自身的一种主动行为。 进程的阻塞是进程自身的一种主动行为。 进入block过程后,由于此时该进程还处于执行状态, 所 过程后,由于此时该进程还处于执行状态, 进入 过程后 以应①立即停止执行,保存现场信息到PSW; 以应① 立即停止执行 ,保存现场信息到PSW;② 把进程控制 块中的现行状态由“执行” 改为阻塞, 块中的现行状态由 “ 执行 ” 改为阻塞 , ③ 将 PCB插入阻塞队 插入阻塞队 如果系统中设置了因不同事件而阻塞的多个阻塞队列, 列。如果系统中设置了因不同事件而阻塞的多个阻塞队列,则应将本进程插入到具有相同事件的阻塞(等待 队列 程插入到具有相同事件的阻塞 等待)队列。 等待 队列。

最后,转调度程序进行重新调度, 最后 , 转调度程序进行重新调度 , 将处理机分配给另一 就绪进程,并进行切换,亦即, 就绪进程 , 并进行切换 , 亦即 , 保留被阻塞进程的处理机状 中的处理机状态设置CPU的 态(在PCB中),再按新进程的 在 中 ,再按新进程的PCB中的处理机状态设置 中的处理机状态设置 的 环境。 环境。 Heb Nomal University19

第二章 进 程 管 理

Department of Computer Science

3. 进程唤醒过程

 进程唤醒过程 当被阻塞进程所期待的事件出现时,如I/O完成或其所 期待的数据已经到达,则由有关进程(比如,用完并释放 了该I/O设备的进程)调用唤醒原语 唤醒原语wakeup( ),将等待该事 唤醒原语 件的进程唤醒。 唤醒原语执行的过程是:①首先把被阻塞的进程从 等待该事件的阻塞队列中移出,②将其PCB中的现行状态 由阻塞改为就绪,③然后再将该PCB插入到就绪队列中。

Heb Nomal University

第二章 进 程 管 理

Department of Computer Science

2.2.4 进程的挂起与激活1. 进程的挂起 进程的挂起 当出现了引起进程挂起的事件时,比如,用户进程 请求将自己挂起,或父进程请求将自己的某个子进程挂 起, 系统将利用挂起原语 挂起原语suspend( )将指定进程或处于阻 挂起原语 塞状态的进程挂起。 挂起原语的执行过程是:首先检查被挂起进程的状 态,若处于活动就绪状态,便将其改为静止就绪;对于 活动阻塞状态的进程,则将之改为静止阻塞。 为了方便 用户或父进程考查该进程的运行情况而把该进程的PCB 复制到某指定的内存区域。最后,若被挂起的进程正在 执行,则转向调度程序重新调度。

Heb Nomal University

本文来源:https://www.bwwdw.com/article/s9p4.html

Top