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