计算机操作系统(第四版)第二章进程的概念
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2
引言
处理机管理是操作系统的基本管理功能之一,它所关心 的是处理机的分配问题。也就是说把CPU(中央处理 机)的使用权分给某个程序,通常把这个正准备进入内 存的程序称为作业,当这个作业进入内存后我们把它称 为进程。处理机管理分为作业管理和进程管理两个阶段 去实现处理机的分配,常常又把直接实行处理机时间分 配的进程调度工作作为处理机管理的主要内容。 进程通常具有三种状态:运行状态(正在使用CPU)、 阻塞状态(等待输入/输出)和就绪状态(等待分配 CPU)。
1) 间断性:程序在并发执行时,由于它们共享资源或为完 成某一项任务而合作,致使在并发程序之间存在相互制约 的关系。 2) 失去封闭性:程序在并发执行时,是多个程序共享系统 中的各种资源,因而这些资源的状态将由多个程序来改变, 致使程序的运行失去了封闭性。
3) 不可再现性: 程序在并发执行时,由于失去了封闭性, 也导致失去了可再现性。
8
S1→S2→S3 S2 must complete before S3 may start S3→S2 S3 must complete before S2 may start
具有循环的图
9
例:下述四条语句的程序段画出前趋图
S1: S2: S3: S4:
a:=x+2 b:=y+4 c:=a+b d:=c+6
A、没有运行进程,有2个就绪进程,n个进程处于等待状态。 B、有1个运行进程,没有就绪进程,n-1个进程处于等待状态。 C、有1个运行进程,有1个就绪进程,n-2个进程处于等待状态。 D、有1个运行进程,n-1个就绪进程,没有进程处于等待状态。 上述情况中,不可能发生的情况是( A )。
27
进程的状态
S1
S3
S2
S4
10
程序的并发执行及其特征 1.程序的并发执行
一组逻辑上相互独立的程序或程序段在执行过程中, 其执行时间在客观上相互重叠,即一个程序段的执行,尚 未结束,另一个程序段的执行已经开始的这种执行方式。 程序的并发执行可分为两种: (1) 在计算机系统支持并行操作时,如采用多道程序 设计技术,则内存中多道程序处于并发执行状态。
如:
read(a);
read(b);
可以同时执行,也可颠倒次序执行。对于这样的语句, 同时执行不会改变顺序程序所具有的逻辑性质.
总结:一组在逻辑上互相独立的程序或程序段在执行过程 中其执行时间在客观上互相重叠,即一个程序的执行尚 未结束,另一个程序的执行已经开始的执行方式.
13
2.程序并发执行时的特征
25
进程的基本状态转换
注意的三点:
1)进程从阻塞态到执行态,必须经过就绪态; 2)进程从执行态到阻塞态,一般由进程自己主动提出的;
26
3)一个进程由执行到就绪态总是由外界事件引起的,而不是该进程自己 引起的。
进程状态间的转换 ①就绪→执行:调度 ②执行→等待:等待某个事件发生而睡眠 ③等待→就绪:因等待的事件结束而唤醒 ④执行→就绪:时间片用完 练习: 1、如果系统中有n个进程,则就绪队列中进程的个数最多 为( C )。 A、n+1 B、 n C、 n-1 D 、1 2、设系统中有关n(n>2)个进程,且当前不在执行进程调 度程序,试考虑下述四种情况:
20
思考?
进程与程序的区别? 1)进程是程序的执行过程,是一个动态的概念; 而程序是一组指令的有序集合,是一个静态的 概念; 2)进程有一个生命周期,而程序是永久的; 3)通过多次执行,一个程序可对应多个进程; 4)通过调用关系,一个进程可包括多个程序; 5)进程由程序和数据组成。
21
作业和进程的关系
18
进程的特征
1)结构特征 从结构上看,进程是由程序段、数据段及进程 控制块三部分组成。
PCB
程序段(正文段) 数据段(数据集合)
2)动态性
程序是指令的集合,进程是指令的执行过程。 动态性是进程最基本的特征。
19
进程的特征
3)并发性 这是指多个进程实体,同存于内存中,能在一段时间 内同时运行。并发性是进程的重要特征,同时也成为 OS 的 重要特征。引入进程的目的也是为了使该进程的程序能和 其它进程的程序并发执行。 4)独立性 进程实体是一个能独立运行的基本单位,同时也是系 统中独立获得资源和独立调度的基本单位。没有建立进程 的程序,不能作为一个独立的单位参加运行。 5)异步性 各进程按其各自独立的,不可预知的速度向前推进。
进程(处理器)管理
1 2 3 4 5 6 进程的基本概念 进程控制 进程同步 经典进程的同步问题 进程通信 线程
1
学习目标
在多道程序环境下,程序不能独立运行。作为资 源分配和独立运行的基本单位是进程。操作系统 所有的特征都是基于进程而体现的。所以,本章 的主要问题是:
进程的概念:进程的状态、进程的调度、进程控制与 协作、进程的特征 进程的同步:同步的概念、同步的实现 进程通信
n+1, n+1, 0
(2)N:=N+1在print(N)和N:=0之后,此时得到的N值 分别为:
n, 0, 1
(3)N:=N+1在 print(N)和N:=0之间,此时得到的N 值分别为:
15
n,
n+1, 0
例:观察者/报告者
观察者: begin repeat 报告者: begin repeat delay a time Print N ; N=0 ; until end
16
程序的并发执行:人们在硬件上引入了通道和中断 技术,使得处理器和外部设备、外部设备和外部设 备之间可以并行工作。从而使系统的多个程序同时 活动,并由统一的操作系统来管理,这就是多道程 序系统。
在单道系统中可以用程序代表顺序执行过程,但在多道系统 中,程序并行、制约等特征使程序这个静态的概念已不能描 述系统的运行情况了,为此操作系统引入了一个新的概念进 程。
17
进程的特征与状态 1.进程的定义和特征
进程:是指在系统中能独立运行并作为资源分配的基本 单位,是一个活动实体。 简单的理解为,进程是程序在数据集合上的一次运行 过程,是系统进行资源分配和调度的基本单位。 进程是一个动态的概念,是一个运行过程。它不同于程 序,但又依赖于程序。对不同的数据集合,依照一定的程 序运行处理的每一个过程是不同的进程。
1) 顺序性: 处理机的操作是严格按照程序所规定的顺序 执行的,每一操作开始都不得先于前一操作 的结束。 2) 封闭性:程序一旦开始执行,其执行结果不受外界因 素影响。 3) 确定性、可再现性:程序重复执行将获得相同结果。
5
优点:有利于程序的编制和调试; 缺点:资源的独占性,使得系统利用率很低。
前趋图
I1
4
C1
P1
I2
C2
P2来自百度文库
程序的顺序执行:一个具有独立功能的程序独占处理机直 至得到最终结果的过程称为程序的顺序执行。
S1: a:=x+y; S2: b:=a-5;//s2必须是s1执行后再执行 S3: c:=b+1;//s3必须是s2执行后再执行
S1 、S2、 S3必须按照顺序依次执行。
2.程序顺序执行时的特征
2.进程的三种基本状态
1)就绪(Ready)状态 当进程已经分配到除CPU以外的所有必要的资源后,只 要能获得处理机,就可以立即执行。这时的进程的状态称 为就绪状态。 2)执行状态(Running)(运行状态) 指进程已获得处理机,其程序正在执行。在单处理机 系统中,只能有一个进程处于执行状态。(在多处理机中, 可能有多个进程处于执行状态。)
7
前趋图示例
前趋关系 P1 → P2, P1 → P4, P3 → P5, P5 → P7,
P1 → P3 P2 → P5 P4 → P6 P6 → P7
P2
P5
P1 P3
P7 在前趋图中,把没有前趋 的结点称为初始结点(Initial P6 Node),把没有后继的结 P4 点称为终止结点(Final Node)。每个结点还具有 7个结点的前趋图 一个重量(Weight),用于 表示该结点所含有的程序 前趋图中能否有循环存在? 量或结点的执行时间。
14
例如:有两个循环程序A和B,它们共享一个变量N。程序A 每执行一次时都要做N:=N+1操作;程序B每执行一次时, 都要做print(N)操作,然后再将N臵成“0”,程序A和B以不 同的速度运行。(假定某时刻变量N的值为n)
(1)N:=N+1在print(N)和N:=0之前,此时得到的N值 分别为:
前趋图是一个有向无循环图,记为DAG (Drected Acyclic Graph),前趋图用来描述程序各部分间的依赖 关系或一个大的计算各子部之间的因果关系。 前趋图中的元素: 结 点:表示一个语句、程序段、进程; 有向边: 表示结点间的偏序关系(前趋关系) →={(Pi , Pj)|Pi must complete before Pj may start} 若(Pi , Pj) ∈→,可写成 Pi →Pj,称 Pi是 Pj的直接前 趋,而 Pj是Pi的直接后继。
wait a car go through N=N+1;
until end 初始N=n时不同执行序列: N=N+1; Print N; Print N ; Print N ; N=0 ; N=N+1 ; N=0 ; N=N+1 ; N=0 ; 结果各不相同: 打印n+1,N=0; 打印n,N=1;打印n ,N=0;
3
创建状态和终止状态 1.创建状态 是一个进程刚刚建立,但还没有将它 送入就绪队列时的状态 2.终止状态 当一个进程已经正常结束或异常结束, OS已经将它从就绪队列中移出,但还没 有将它撤消时的状态。
28
创建
许可
释放 中断或 时间片用完
终止 获得CPU 正在运行
万事具备, 只欠“东风” CPU I/O完成或 事件发生 欠缺某些条件
11
由于多道程序中Ii+1、Ci与Pi-1之间不存在前趋关系, 程序之间可以并发执行
输入 设备
2.1.2程序间并发执行
I1 I2
I3
处理机
C1
C2
C3
并发执行 后,系统 效率提高
打印机
12
t1 t2
P1
P2
P3
t3
t4
t5
程序的并发执行及其特征
(2) 并发执行是在某道程序的几个程序段中包含着一部分 可以同时执行或顺序颠倒执行的代码.
3
进程概念的引入-程序的顺序执行和并发执行
1.程序的顺序执行
一个复杂的程序一般均含若干个程序段,并按一定先 后顺序执行,每个操作必须在下一个操作开始之前结束。 也即仅当前一个操作结束之后,后继操作才开始执行,此 即程序的顺序执行性。 例如一般程序包括输入(I)、计算(C)、输出(P)三部分,而 计算须在输入完成方可开始。
23
3)阻塞状态(Block) (等待状态) 进程因发生某个事件而暂停执行时的状态(如:请求 I/O、申请缓冲空间等),也就是说,进程受到阻塞,所以 称这种暂停状态为阻塞状态,有时也称“等待”状态或“ 睡眠”状态。
24
进程的特征与状态
处于就绪态进程:一般处于就绪态的进程按照一定的算法 (如先来的进程排在前面,或采用优先权高的进程排在前 面)排成一个就绪队列。 处于运行态进程:如系统有一个处理机,则在任何一时刻, 最多只有一个进程处于运行态。 处于等待态进程:处于等待态的进程排在等待队列中。由 于等待事件原因不同,等待队列也按事件原因可分成几个 队列。
就绪
执行 终止 就绪 阻塞 就绪
22
作业是用户需要计算机完成某项任务时要求计算机所做的工 作的集合。一个作业的完成要经过作业提交、作业后备、作 业执行和作业完成四个阶段。 进程是对已提交完毕程序的执行过程的描述,是资源分配的 基本单位。他们主要区别和关联如下: (1)作业是用户向计算机提交任务的实体,而进程是完成 用户任务的实体; (2)一个作业可由多个进程组成,且必须至少由一个进程 组成。 (3)作业的概念主要用在批处理操作系统中,而进程的概 念则几乎用在所有的多道程序操作系统中。
29
就绪 进程调度
执行
I/O请求或 等待某事件 阻塞
状态转换原因图
创建
进入 就绪队列
强制放弃CPU 回到就绪队列
释放所有 资源
终止
就绪
执行
进程被释放 回到就绪队列
分配CPU使用权 进程主动放弃CPU 进入阻塞等待队列 阻塞
30
状态转换执行图
事件
创 建
动作
进入就绪队列
分配CPU 释放资源 系统剥夺CPU 进程放弃CPU 进入阻塞等待队列 进程进入就绪队 列