进程控制块
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
P1
P2
P3
P4
图2-3输入、计算和打印这三个程序对一批作业进行处理,它们并发执行时的前趋图
前趋关系: Ii→Ci,Ii→Ii+1,Ci→Pi,Ci→Ci+1,Pi→Pi+1
对于具有下述四条语句的程序段:
S1和S2可以并发执行, 因为它们之间不存在前 趋关系!
S1: a:=x+2
S2: b:=y+4
(a) 程序的顺序执行
图 2-1 程序的顺序执行
(b) 三条语句的顺序执行
2. 程序顺序执行时的特征
顺序性Fra Baidu bibliotek封闭性
程序在封闭的环境下执行,资源的状态只有 当前程序才能改变它。当前程序执行结果不 受外界因素影响。
S1
可再现性
S2
2.1.2
前趋图(Precedence Graph)
S3 具有循环的图
执行状态
阻塞状态
就绪 时间片完 I/O 完成 进程调度
注意: 就绪——>阻塞 阻塞——>运行
阻塞
I/O 请求
执行
图2-5 进程的三种基本状态及其转换
练 习
1.在进程状态转换时,下列哪一种状态转换是不可能发生 的?
A)就绪态→运行态
B)运行态→就绪态
C)运行态→等待态(阻塞)D)阻塞态→运行态
在分析程序的顺序执行和并发执行的差别基础 上,引入进程的概念。 2.1.1 程序的顺序执行及其特征
程序的内在逻辑要求程序中的多个程序段或多条语 句之间具有顺序执行的特点,例如:
S1: a:=x+y;S2: b:=a-5;S3: c:=b+1;
I1 C1 P1 I2 C2 P2 S1 S2 S3
2.1.4 进程的特征与状态
进程的特征
结构性:程序、数据和PCB构成进程实体 动态性:最基本特征,表明进程存在生命期 并发性:引入进程的直接原因 独立性:
独立运行、独立分配资源和调度的基本单位 进程按各自独立的、 不可预知的速度向前推进
异步性:
进程定义
进程是进程实体的运行过程,是系统进行资源分配 和调度的一个独立单位。(简记:进程是程序的一 次执行过程!)
第二章 进程管理
2.1 进程的基本概念 2.2 进程控制 2.3 进程同步
2.4 2.5 2.6 经典进程的同步问题 进程通信 线程
教学目标
重点:
进程概念、进程状态及转换、进程控制
线程概念、多线程模型
进程同步概念、进程通信主要类型
难点:
使用信号量机制实现进程同步
2.1 进程的基本概念
程序B: While (true) { Print (N); N:=0; }
引入进程的原因
多道程序环境下程序的并发执行与单道 环境下程序的顺序执行相比,具有明显 的不同特征 通常的程序是不能参与并发执行的,因 为程序执行的结果是不可再现的,因而 程序的运行就失去了意义 为了能实现并发执行,需要将原来的程 序改造成进程
引入挂起状态的原因
引入挂起状态后进程状态的转换
执行
请 求 I/O
激活 活动 就绪 激活 挂起 静止 就绪
释 放
活动就绪→静止就绪 静止就绪→活动就绪 活动阻塞→静止阻塞 静止阻塞→活动阻塞
起 挂
释 放
挂起:Suspend原语
激活:Active原语
活动 阻塞
挂起
静止 阻塞
图 2-6 具有挂起状态的进程状态图
2.1.5
进程控制块(PCB)
进程控制块(Process Control Block)的作用
PCB是OS为每个进程定义的一个记录型数据结 构,它与程序、数据一起构成一个进程实体。 PCB是进程存在的惟一标志。 PCB中记录了用于描述进程的当前状态以及OS 控制进程运行的全部信息。 PCB的作用是使一个在多道程序环境下不能独 立运行的程序,成为一个能与其它进程并发执 行的进程。
2.某进程在运行过程中需要等待从磁盘上读入数据,此 时该进程的状态将( )。 A.从就绪变为运行 C.从运行变为阻塞 B.从运行变为就绪 D.从阻塞变为就绪
挂起状态
挂起状态:
暂停正在执行的进程,或暂不调度正处于就 绪状态的进程,使其处于静止的一种状态。 终端用户的请求 父进程请求 负荷调节的需要 操作系统的需要
进程与程序的对应关系
通过多次执行,一个程序可对应多个进程;通过调用关系,一 个进程可包括多个程序。
进程的三种基本状态
就绪状态
已分配到除CPU以外的所有必要资源,就缺CPU 处于就绪状态的进程可能有多个,在就绪队列中排队 正在占据CPU,CPU正执行其程序代码 只有一个 由于发生某事件而暂时无法继续执行时,便放弃处理机而处 于暂停状态 系统常根据阻塞原因的不同而把处于阻塞状态的进程排成多 个阻塞队列
前趋图是一个有向无循环图,用于描述 进程之间执行的前后关系。结点描述一 个程序段或进程,结点间的有向边表示 两个结点之间的前趋关系。
2.1.3 程序的并发执行及特征
1.程序的并发执行
I1 I2 I3 I4
在Pi-1和Ci以及Ii+1之间,可 以并发执行,因为它们之 间不存在前趋关系
C1
C2
C3
C4
S1 S3 S2
图 2-4 四条语句的前趋关系
S3: c:=a+b
S4: d:=c+b
结论:不存在前趋关系的结 点间可以并发执行!
S4
2.程序并发执行时的特征
间断性
多个程序并发执行时共享系统中的各种资源,相 互制约将导致并发程序具有“执行—暂停—执行” 这种间断性的活动规律
失去封闭性(咨询顾问面对现场咨询和电话咨询)
进程与程序的区别
进程是动态的,程序是静态的
程序是有序代码的集合;进程是程序的执行。通常进程不可在 计算机之间迁移;而程序通常对应着文件,可以复制。
进程是暂时的,程序的永久的
进程是一个状态变化的过程,有生命周期;程序可长久保存。
进程与程序的组成不同
进程的组成包括程序、数据和进程控制块(PCB);而程序是 一组指令的有序集合;
系统中资源的状态将由多个程序来改变,致使程 序的运行失去了封闭性。这样,某程序在执行时, 必然会受到其它程序的影响。
不可再现性
示例:失去了可再现性
程序A: While (true) { N:=N+1; }
三种可能: (1)N:=N+1在Print(N)和N:=0之前,此时得到的N值分别为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值分别为n,n+1,0。