第3章 进程管理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.5 进程互斥
3.5.3 信号量和P、V原语
1、信号量
信号量代表临界区的公用资源,比如:共用 两台打印机可以定义信号量:semaphore n=2;一个缓冲区有8个缓冲单元可以定义信 号量:semaphore buf=8;
3.1 进程的概念
3.1.2 进程的定义 1.进程的定义 进程是一个具有一定独立功能的程序对某个数据集在 处理机上的执行过程和资源分配的基本单位。 2.进程与程序的区别 ( 1 ) 进程是一个动态的概念,而程序是一个静态的概 念; (2)进程具有并发特征,而程序没有; ( 3 ) 进程是竞争资源的基本单位,从而其并发性受到 系统资源的制约; ( 4 ) 不同的进程可以包含同一程序,只要该程序对应 的数据集不同。
唤醒原语 流程图
3.5 进程互斥
3.5.1 资源共享所引起的制约
在计算机系统中,由于资源有限导致了进程 之间的资源竞争和共享。
如果不能控制并发进程执行的相对速度,则 并发进程在共享资源时,可能会产生与时间 有关的错误。
3.5 进程互斥
getspace: begin local g g←stack[top] --② top←top-1 end release(ad): begin top ← top+1 --① stack[top]←ad end 假设先执行①,然后执行②,会有什么结果?
3.1 进程的概念
举例: S1:a=x+y; S2:b=z+1; S3:c=a-b; S4:w=c+1。 R(s1)={x,y}, R(s2)={z},R(s3)={a,b},R(s4)={c} W(s1)={a}, W(s2)={b},W(s3)={c},W(s4)={w} S1和S2满足条件,说明S1和S2可并发,其它的任 何两个语句不能并发执行。
阻塞原语 流程图
3.4 进程控制
2、进程唤醒
பைடு நூலகம்
进程由等待状态转换到就绪状态由唤醒原语 完成。
当等待队列中的进程所等待的事件发生时, 等待该事件的所有进程都被唤醒。 一个处于阻塞状态的进程不能唤醒自己,唤 醒一个进程有两种方法:一种是由系统进程 唤醒;另一种是由事件发生进程唤醒。
3.4 进程控制
原语是在系统态下执行的具有特定功能的程 序段。
原语分为两类:一类是机器指令级的,执行 期间不允许中断;一类是功能级的,不允许 并发执行。
用于进程控制的原语有:创建原语、撤消原 语、阻塞原语、唤醒原语等。
3.4 进程控制
3.4.1 进程创建与撤销
1. 进程创建
系统调用创建原语完成进程创建,创建方式 有两种:
3.5 进程互斥
(2)当key[S]=1时,允许一个进程进入临界区, 原语lock(key[S])的实现: lock(x):begin local v repeat v ←x until v=1 x ←0 end
3.5 进程互斥
例:有多个窗口同时售票,售票进程为Ti ( i = 1, 2,… ),使用加锁方式实现进程互斥,以保 证票号是唯一的。 Ti:begin 按旅客要求找到一张票; lock(ticket); number=number+1; //生成票号 unlock(ticket); 输出一张票(票号为number); end
3.5 进程互斥
分析: W(getspace) ∩ W(release)={top}; W(getspace)∩ R(release)={Stack[top]}。 可见程序段getspace、release不满足 Bernstein条件,程序的执行失去了封闭性和可 再现性。
3.5 进程互斥
1、临界区
(1)由系统程序模块统一创建,系统统一创 建的各个进程是平等的关系。
(2)由父进程创建,父子进程之间构成树型 结构的家族关系。
进程创建原语
流程图
3.4 进程控制
2. 进程撤消
以下几种情况会导致进程被撤消:
(1) 该进程已完成所要求的功能而正常终止。 (2) 由于某种错误导致非正常终止。 (3) 父进程要求撤消某个子进程。
3.1 进程的概念
(2) 程序的并发执行所带来的影响 由于系统资源有限,程序的并发执行必然导 致资源共享和资源竞争,从而改变程序的执 行速度。 如果并发执行的各程序段中语句或指令满足 上述Bernstein的三个条件,则认为并发执 行不会对执行结果的封闭性和可再现性产生 影响。 由于程序的顺序性、静态性和孤立性,用程 序(段)作为描述程序执行过程和资源共享 的基本单位是不合适的。
(1) 各并发进程享有平等竞争公有资源的权利, 并且每一时刻至多只能一个进程使用临界区; (2) 如果并发进程中的某个进程申请进入临界区, 应在有限时间内得以进入临界区。
3.5 进程互斥
3.5.2 互斥的加锁实现
对临界区加锁实现进程互斥:当某个进程进 入临界区之后,它将锁上临界区,直到它退 出临界区时为止。
不允许多个并发进程交叉执行的一段程序称 为临界区。
临界区是由属于不同并发进程的程序段共享 公用数据或公用变量而引起的。 各并发进程的执行速度受公有资源制约称为 进程之间的间接制约。
2、间接制约
3.5 进程互斥
3、进程互斥
一组并发进程中的一个或多个程序段,因共享 某一公有资源而不能同时进入临界区,称为进 程互斥。 一组并发进程互斥执行必须满足以下准则:
3.1 进程的概念
4.程序的并发执行 (1) 什么是程序的并发执行? 由于计算机的资源是有限的,并发执行的程序 在宏观上是同时进行的,在微观上仍然是顺序 执行。 程序的并发执行可总结为:一组在逻辑上互相 独立的程序或程序段在执行过程中,其执行时 间在客观上互相重叠,即一个程序段的执行尚 未结束,另一个程序段的执行已经开始的执行 方式。
3.1 进程的概念
3.1.1 程序的并发执行
1.程序
程序是一个在时间上严格地按前后次序进行 的操作序列集合,是一个静态的概念。
程序体现了程序员要求计算机完成相应功能 所采取的顺序步骤。
3.1 进程的概念
2.程序的顺序执行
CPU通过时序脉冲来控制指令的顺序执行。 其执行过程可以描述为: Repeat IR ← M[pc] pc ← pc+1 〈 Execute (instruction in IR)〉 Until CPU halt
3.1 进程的概念
3.多道程序系统中程序执行环境的变化
多道程序系统要求计算机能够同时处理多个 具有独立功能的程序,在多道程序系统中, 程序执行的环境有如下3个特点: (1) 独立性:每道程序在逻辑上是独立的。 (2) 随机性:程序和数据的输入与执行开始时 间都是随机的。 (3) 资源共享:多道程序共享硬件和软件资源, 将导致对进程执行速度的制约。
一个具有独立功能的程序独占处理机直至最 终结束的过程称为程序的顺序执行。
3.1 进程的概念
程序的顺序执行具有如下3个特点:
(1) 顺序性 顺序地执行指令。 (2) 封闭性 程序执行得到的最终结果由给定的初始条件 决定,不受外界因素的影响。 (3) 可再现性 只要输入的初始条件相同,重复执行该程序 都会得到相同的结果。
3.2 进程的描述
(3)资源管理信息 存储器信息:占用内存大小和管理内存所用 的数据结构。 共享程序大小及起始地址。 输入输出设备信息及文件信息。 (4)CPU现场保护结构 当前进程被中断时,为了以后该进程能在被 中断处恢复执行,需要保护当前进程的CPU 现场数据。
3.2 进程的描述
3.2.2 进程上下文
并发进程在申请进入临界区时,首先测试该 临界区是否是上锁的。如果该临界区已被锁 住,则该进程要等到该临界区开锁之后才有 可能获得临界区。
3.5 进程互斥
加锁后的临界区程序描述如下: lock(key[S]) 〈临 界 区〉 unlock(key[S])
设key[S]=1时表示类名为S的临界区可用, key[S]=0时表示类名为S的临界区不可用。 (1)原语unlock(key[S])的实现: key[S]←1
3.3 进程状态及其转换
3.3.2进程状态转换 UNIX进程转换图:
3.4 进程控制
什么是进程控制?
操作系统使用一些具有特定功能的程序段对 进程进行控制,包括:创建进程、撤消进程, 完成进程各状态间的转换。
进程控制的目的:使多个进程高效率并发执 行;实现资源共享。
3.4 进程控制
什么是原语?
进程上下文是一个与进程切换和处理机状态 变化有关的概念。
我们把已执行过的指令和数据在相关寄存器 与堆栈中的内容称为上文,把正在执行的指 令和数据在寄存器与堆栈中的内容称为正文, 把等待执行的指令和数据在寄存器与堆栈的 内容称为下文。
3.2 进程的描述
进程上下文的结构由与执行该进程有关的各 种寄存器的值、程序段在经过编译之后形成 的机器指令代码集(或称正文段)、数据集 和各种堆栈值与PCB结构构成。
进程撤消原语
流程图
3.4 进程控制
3.4.2 进程阻塞与唤醒
1、进程阻塞
进程由执行状态转换到等待状态由阻塞原语 完成。 一个进程等待某一事件发生(例如等待键盘 输入数据、等待其他进程发来数据),该进 程调用阻塞原语来阻塞自己。 被阻塞进程臵“阻塞”(等待)状态后插入 等待队列中。
3.4 进程控制
3.1 进程的概念
相邻语句可以并发执行的条件 (Bernstein条件) 将程序中任一语句Si划分为两个变量的集合R(Si) 和W(Si)。其中R(Si)={a1,a2, … ,am}, aj(j=1,…,m)是语句Si在执行期间必须对其进行 读的变量;W(Si)={b1,b2, … ,bn}, bj(j=1,…,n)是语句Si在执行期间必须对其进行 修改(写)的变量; 如果对于语句S1和S2,有 ① R(S1)∩ W(S2)={∮}, ② W(S1)∩ R(S2)={∮}, ③ W(S1)∩ W(S2)={∮} 同时成立,则语句S1和S2是 可以并发执行的。
3.2 进程的描述
UNIX System Ⅴ进程上下文组成示例
3.2 进程的描述
3.2.3 进程上下文切换
当操作系统调度新进程占有处理机时,新老 进程的上下文发生切换。
3.2 进程的描述
3.2 进程的描述
3.2.4 进程空间与大小
所有程序的执行都在自己的进程空间中进行, 用户程序、进程的各种控制表格都按一定结 构存放在进程空间中。 进程空间的大小与处理机指令的地址长度有 关。
第3章 进程管理
主要内容: 1、进程的概念、描述 2、进程状态及其转换 3、进程控制 4、进程互斥、同步、进程通信 5、死锁问题 6、线程的概念及分类
3.1 进程的概念
操作系统的重要任务之一是使用户充分、 有效地利用系统资源。 采用一个什么样的概念,来描述计算机程 序的执行过程和作为资源分配的基本单位 才能充分反映操作系统的并发执行、资源 共享的特点呢?
3.2 进程的描述
在UNIX和Liunx系统中,进程空间又被分为 用户空间和系统空间两大部分,用户程序在 用户空间中执行,处理机状态处于用户态; 而系统程序则在系统空间中执行,处理机状 态处于核心态。
3.3 进程状态及其转换
3.3.1 进程状态 在进程的生命期内,一个进程至少具有 5种 基本状态:初始态、执行状态、等待状态、 就绪状态和终止状态。
在单CPU系统中,任一时刻处于执行状态的 进程只有一个。
3.3 进程状态及其转换
正在执行的进程因等待资源或等待某个事件 发生而放弃处理机进入等待状态。 使进程进入等待状态的事件主要有:等待内 存、等待设备、等待读取文件和数据。 处于就绪状态的进程已经得到除 CPU之外的 其他资源,只要得到了处理机,便可立即投 入执行。
3.2 进程的描述
进程的静态描述由三部分组成:进程控制块 PCB,有关程序段和对其进行操作的数据结 构集。 进程控制块PCB包含了有关进程的描述信息、 控制信息以及资源信息,是进程动态特征的 集中反映。 PCB是系统感知进程的唯一实体。
3.2 进程的描述
3.2.1 进程控制块PCB
(1)描述信息: 进程名或进程标识号:是唯一的。 用户名或用户标识:每个进程都隶属于某个用户。 家族信息:与该进程有关的家族关系。 (2)控制信息 进程状态:初始态、就绪态、执行态、等待状 态和终止状态。 进程优先级:占用CPU时间、占用内存的时间、 初始优先级等。