第二章 进程管理
操作系统课件 第2章 进程
第二章 进 程 管 理
对于具有下述四条语句的程序段: S1: a∶=x+2 S2: b∶=y+4 S3: c∶=a+b S4: d∶=c+b 请画出前趋关系图。
S1 S3 S2 S4
第二章 进 程 管 理
2.2 程序并发执行时的特征
1) 间断性 相互制约性)-后面的模块等待前面的模块 间断性(相互制约性 - 相互制约性 传来的结果,然后才执行(如打印模块等待 计算模块完成)。走走停停。 2) 失去封闭性 :多个程序共享系统中的各种资源, 因而这些资源的状态将由多个程序来改变, 致使程序的运行已失去了封闭性。 结果是一个程序运行时会受到另一个程序的 结果是 影响。 3) 不可再现性 :程序在并发执行时,由于失去了封 闭性,也将导致失去其可再现性
第二பைடு நூலகம் 进 程 管 理
新进程
接纳
就绪 时间片完 I/O完成 进程调度
阻塞 I/O请求
执行
完成
结束
图 2-5 进程的三种基本状态及其转换
(教材讲5种)
第二章 进 程 管 理
作业调度
作业后备队列
阻塞队列
外存
进程就绪队列
一些 阻塞队列
内存
处理器 (CPU)
第二章 进 程 管 理
3.7五状态 五状态进程模型 五状态
第二章 进 程 管 理
3.4进程与程序的区别 进程与程序的区别
程序是静态的, 1)程序是静态的 进程是动态的; 是根本区别) 1)程序是静态的,进程是动态的;(是根本区别) 程序是有序代码的集合;进程是程序的执行。 程序是有序代码的集合;进程是程序的执行。 2)进程和程序不是一一对应的 2)进程和程序不是一一对应的 ; • 一个程序可对应多个进程 即多个进程可执行同一程序 ; 一个程序可对应多个进程,即多个进程可执行同一程序 • 一个进程可以执行一个或几个程序 3)进程是暂时的 程序的永久的:进程是一个状态变化的过程, 进程是暂时的, 3)进程是暂时的,程序的永久的:进程是一个状态变化的过程, 程序可长久保存。 程序可长久保存。 4)进程与程序的组成不同 进程的组成包括程序、 进程与程序的组成不同: 4)进程与程序的组成不同:进程的组成包括程序、数据和进程 控制块(即进程状态信息)。 控制块(即进程状态信息)。 5)进程具有创建其他进程的功能 而程序没有。 进程具有创建其他进程的功能, 5)进程具有创建其他进程的功能,而程序没有。
计算机操作系统 第二章 进程管理(2)
缺点:
(1)进程在等待进入临界区时也要耗费处理器时间, 不能实现“让权等待” (2)可能出现进程“饥饿”
2.3.2 信号量机制
新的同步工具——信号量和P、V操作。
信号量:是一种数据结构,代表可用资源实 体的数目。
信号量只能通过初始化和两个标准的原语: P(wait(S))、V((signal(S))来访问。 P原语相当于进入区操作,V原语相当于退 出区操作。
AND同步机制
AND同步机制的基本思想是:进程运行时所 需要的所有资源,要么全部分配给它,使用完 毕后一起释放;要么一个都不分配给它。实现 时,采用原子操作:要么全部分配到所有资源, 要么一个也不分配到。 称AND型信号量P原语为:
Swait(Simultaneous wait)
V原语为Ssignal(Simultaneous signal)。
SP原语描述
Swait(S1,S2,„,Sn) /* SP原语描述 */ {while(1) {if(S1>=1&&S2>=1&&„&&Sn>=1) {for(i=1;i<=n;i++) Si--; /* 先确信可满足所有资源要求再减1操作 */ berak; } else /* 资源不够时 */ {将进程放入第一个信号量小于1的阻塞队列Si.sqeue; 将PC中的地址回退到SP开始处; 阻塞进程; } } }
第二章 进程管理(2)
2.3 进程同步
多进程并发执行时,由于资源共享或进程合 作,使进程间形成间接相互制约和直接相互制 约关系,这需要用进程互斥与同步机制来协调 两种制约关系。 进程同步的主要任务:协调进程执行次序, 使并发执行的诸进程间能有效地共享资源和相 互合作,使程序的执行具有可再现性。
第2章 进程管理习题及答案
第二章进程管理习题及答案一、填空题1.进程的静态描述由三部分组成:①、②和③。
【答案】①PCB、②程序部分、③相关的数据结构集【解析】PCB是系统感知进程的唯一实体。
进程的程序部分描述了进程所要完成的功能,而数据结构集是程序在执行时必不可少的工作区和操作对象。
后两部分是进程完成所需功能的物质基础。
2.进程存在的标志是。
【答案】进程控制块PCB【解析】系统根据PCB感知进程的存在和通过PCB中所包含的各项变量的变化,掌握进程所处的状态以达到控制进程活动的目的。
3.①是现代操作系统的基本特征之一,为了更好地描述这一特征而引入了②这一概念。
【答案】①程序的并发执行,②进程【解析】程序的并发执行和资源共享是现代操行系统的基本特征。
程序的并发执行使程序失去了程序顺序执行时所具有的封闭性和可再现性。
在程序并发执行时,程序这个概念不能反映程序并发执行所具有的特性,所以引入进程概念来描述程序并发执行所具有的特点。
4.给出用于进程控制的四种常见的原语①、②、③和④。
【答案】①创建原语、②撤消原语、③阻塞原语、④唤醒原语【解析】进程控制是系统使用一些具有特定功能的程序段来创建、撤消进程以及完成进程各状态间的转换,从而达到多个过程高效率地并行执行和协调,实现资源共享的目的。
把那些在管态下执行的具有特定功能的程序段称为原语。
5.进程被创建后,最初处于①状态,然后经②选中后进入③状态。
【答案】①就绪,②进程调度程序,③运行【解析】进程的从无到有,从存在到消亡是由进程创建原语和撤消原语完成的。
被创建的进程最初处于就绪状态,即该进程获得了除处理机以外的所有资源,处于准备执行的状态;从就绪状态到运行状态的转换是由进程调度程序来完成的。
6.进程调度的方式通常有①和②方式两种。
【答案】①可剥夺、②非剥夺【解析】所谓可剥夺方式,是指就绪队列中一旦有优先级高于当前运行进程的优先级的进程存在时,便立即发生进程调度,转让处理机。
而非剥夺方式则是指:即使在就绪队列中存在有优先级高于当前运行进程的进程,当前进程仍将继续占有处理机,直到该进程完成或某种事件发生(如I/O事件)让出处理机。
第2章 进程管理课后习题解答
第题中,如果修改问题中的同步算法,要求 对写进程优先,即一旦写进程到达,后续的读者进程必须等待, 而无论是否有读者进程在读文件。写出相应进程的程序段。 semaphore fmutex=1, rmutex=1, wmutex=1;que=1;
int rcount=0, wcount=0; void main() { parbegin(reader, writer); }
12
void reader { while(1) { wait(que); wait(rmutex); if(0==readcount) wait(fmutex); readcount++; signal(rmutex); signal(que); …. begin to read wait(rmutex); readcount--; if(readcount==0) signal (fmutex); signal(rmutex); } }
读者—写者问题(读优先) 读者 写者问题(读优先) 写者问题 semaphore rmutex=1,wmutex=1; int readcount=0; = void main() { parbegin(reader,writer); }
读者进程: 读者进程: void reader() { while(1) { wait(rmutex); if (readcount==0) wait(wmutex); readcount++; signal(rmutex); … 读操作 wait(rmutex); readcount--; if (readcount==0) signal(wmutex); signal(rmutex); } }
18
chopstick[ ={1 semaphore chopstick[5]={1,1,1,1,1}; viod main() { parbegin(P0(),P1(),P2(),P3(),P4()); parbegin(P0(),P1(),P2(),P3(),P4()); } Pi() /*i=0,1,2,3,4*/ { while(1) { wait(chopstick[i]); [ ] wait(chopstick[(i+1)%5]); [ ] eating; … signal(chopstick[i]); [ ] signal(chopstick[(i+1) %5]); [ ] thinking; } }
chap2 进程管理
2· 2 进程的状态及转换
状态及其转换 静止就绪状态:表明进程具备运行条件但目前在二级存储器中,当它被 对换到主存才能被调度执行 静止阻塞状态:表明进程正在等待某一事件且在二级存储器中 ①运行或活动就绪→静止就绪,活动阻塞→静止阻塞 通过挂起操作(suspend)。 ②静止就绪→活动就绪, 静止阻塞→活动阻塞 通过激活操作(activate)。 ③静止阻塞→静止就绪: 当等待的事件发生时。 挂起进程的特征: (1)该进程不能立即执行。(2)挂起进程可能会等待事件,但所等待 事件是独立于挂起条件的,事件结束并不能导致进程具备执行条件。 (3)进程进入挂起状态是由于操作系统、父进程或进程本身阻止它 的运行。(4)结束进程挂起状态的命令只能通过操作系统或父进程 发出。
题目:
4、进程执行时的间断性,决定了进程可能具有多种状态。进程的基 本状态有三种,在分时系统中,当一个进程拥有的时间片到时, 则该进程即由[1]进入[2]。如果出现因某种原因使得处理机空闲时, 则需要从就绪队列中选择一进程,并将处理机分配给它,此时该 进程进入[3],这个过程是由[4]来完成。 供选择的答案: [1][2][3] A、就绪状态 B、静止状态 C、阻塞状态 D、运行状态 [4] A、进程控制程序 B、资源分配程序 C、进程调度程序 D、处理机分配程序 5、下列进程状态的转换中,哪一个是不正确的( )。 A. 就绪->运行 B. 运行->就绪 C. 就绪->阻塞 D. 阻塞->就绪 6、一个进程被唤醒意味着( )。 A.该进程重新占有了CPU B.进程状态变为就绪 C.它的优先权变为最大 D.其PCB移至就绪队列的队首
2· 2 进程的状态及转换
3、细分5种状态的进程状态及其转换 新建、就绪、运行、阻塞、终止 新建:对应进程刚被创建的状态,为一个新进程 创建必要的管理信息,它并没有被提交运行, 而是等待操作系统完成创建进程的必要操作。 终止:进程已完成执行就变为终止状态。进入终 止态的进程不再执行,但依然临时保留在系统 中等待善后。一旦其他进程完成了终止进程的 信息抽取后,系统将删除该进程。
操作系统原理第二章进程管理
2.1 前趋图和程序执行
例:有7个结点的前趋图。
P = { P1,P2,P3,P4,P5,P6,P7 } → = {(P1,P2),(P1,P3),(P1,P4), (P2,P5),
(P3,P5),(P4,P6),(P5,P7),(P6,P7)}
2
1 3
4
5
7 6
2.1 前趋图和程序执行
➢ 程序的顺序执行
打印三项操作。其程序段并发执行的前趋图:
I1 → I2 → I3 → I4 →
↘↘↘↘
C1 → C2 → C3 → C4 →
↘↘↘↘
P1 → P2 → P3 → P4 →
2.1 前趋图和程序执行
例2.Begin integer N:=0;
Cobegin
Program A : begin
Program B : begin
void popaddr (top) { top --; r=*top; return (r) }
void pushaddr(blk) { *top = blk; top++;
}
先执行 popaddr 的top--,接着执行pushaddr的*top=blk
2.1 前趋图和程序执行
➢ 程序并发执行过程及条件 (Bernstein条件)
果必相同。
2.1 前趋图和程序执行
➢ 程序的并发执行
➢ 程序执行环境
➢ 独立性,逻辑上是独立的。 ➢ 随机性:输入和执行开始时间都是随机的。 ➢ 资源共享:资源共享导致对进程执行速度
的制约。
2.1 前趋图和程序执行
➢ 程序的并发执行
并发执行是指两个程序执行时间上是重叠 的。凡是能由一组并发程序完成的任务,都 能由相应的单个程序完成。 例1:有一批程序,而每个程序需输入,计算,
《计算机操作系统》第2章 进程管理
2.1.3 进程的状态模型
新建
准许
准许
挂起
静止就绪
事件 发生
静止阻塞
激活 挂起
激活 挂起
活动就绪
事件 发生 活动 阻塞
分派 超时
运行
等待 事件
释放
退出
பைடு நூலகம்
图2-8 有挂起态的七状态模型
在新的状态模型中,比较重要的新转换如下: ►(1)活动阻塞→静止阻塞:当内存紧张而系统中又没有就绪进程时,一个阻塞
态进程就会被挂起。
分派
进入
非运行
运行
退出
暂停 图2-3 两状态模型
2.1.3 进程的状态模型
2. 三状态模型
三状态模型中进程的三种基本状态如下:
►(1)就绪状态(Ready)。一个进程获得了除处理机之外所需的一切资源,一 旦得到处理机即可运行。在系统中,将处于就绪状态的多个进程的PCB组织成一 个队列,或按照某种规则排在不同的队列中,这些队列称为就绪队列。
2.1.3 进程的状态模型
3. 五状态模型
新建态
进入就 绪队列
运行态
被调 度 时间片
用完
就绪态
事件
发生
退出态 等待事件 阻塞态
图2-6 五状态模型图
►为便于进程管理,有必要增加一种有用的状态,我们称为新建态,对应于刚刚创建 的进程,操作系统还没有把它加入到就绪队列中,通常是进程控制块已经创建但还 没有加载到内存中的新进程。
►同样,进程从系统中退出时,也增加一种有用的状态,进程被终止直到释放PCB所 处的状态,我们称为退出态。
2.1.3 进程的状态模型
五状态模型中的状态转换:
►(1)空→新建:创建一个程序的新进程。
第2章 进程管理3
第二章 进程管理
2.1 前趋图和程序执行 2.2 进程的描述
2.3 进程控制
2.4 进程同步
2.5 经典进程的同步问题
2.6 进程通信 2.7 线程
湖南理工学院计算机学院
第二章 进程管理
掌握内容: 掌握生产者-消费者问题、读者-写者问 题、哲学家就餐问题的P、V操作实现方法。 掌握进程同步和互斥问题的P、V操作实现 过程。
湖南理工学院计算机学院
第二章 进程管理
parend end
湖南理工学院计算机学院
第二章 进程管理
在生产者—消费者问题中应注意: (1)在每个程序中用于实现互斥的 wait(mutex) 和signal(mutex)必须成对地出现; (2) 对资源信号量 empty 和 full 的 wait 和 signal 操作,同样需要成对地出现,但它们分别处于 不同的程序中。 (3)在每个程序中的多个wait操作顺序不能颠 倒。应先执行对资源信号量的wait操作,然后再 执行对互斥信号量的wait操作。
湖南理工学院计算机学院
第二章 进程管理
假定这些生产者和消费者相互等效,只要缓 冲池未满,生产者便可将消息送入缓冲池;只要 缓冲池未空,消费者便可从缓冲池中取走一个消 息。对生产者—消费者问题可描述如下: Var mutex, empty, full:semaphore∶=1,n,0; buffer:array[0, …, n-1] of item; in, out: integer∶=0, 0; begin parbegin
湖南理工学院计算机学院
第二章 进程管理
第i位哲学家的活动可描述为: repeat wait(chopstick[i]); wait(chopstick[(i+1) mod 5]); … eat; … signal(chopstick[i]); signal(chopstick[(i+1) mod 5]); … think; until false;
进程管理
第二章进程管理2.1 进程的基本概念2.1.1 程序的顺序执行及其特征1.程序的顺序执行程序是人们要计算机完成的一些指令序列,是一个按严格次序、顺序执行的操作序列,是一个静态的概念。
我们把一个具有独立功能的程序独占处理机,直到最后结束的过程称为程序的顺序执行。
2.1.2 进程的定义与特征1.进程的定义人们对进程下过许多定义。
现列举其中的几种:⏹进程是程序的一次执行。
⏹进程是可以和别的进程并发执行的计算。
⏹进程就是一个程序在给定活动空间和初始条件下,在一个处理机上的执行过程。
⏹进程是程序在一个数据集合上的运行过程,它是系统进行资源分配和调度的一个独立单位⏹进程是动态的,有生命周期的活动。
内核可以创建一个进程,最终将由内核终止该进程使其消亡。
进程和程序是两个完全不同的概念,但又有密切的联系。
它们之间的主要区别是:⏹程序是静态的概念;而进程则是程序的一次执行过程。
它是动态的概念。
⏹进程是一个能独立运行的单位,能与其它进程并发执行;而程序是不能作为一个独立运行的单位而并发执行的。
⏹程序和进程无一一对应的关系。
⏹各个进程在并发执行过程中会产生相互制约关系,而程序本身是静态的,不存在这种异步特征。
2.1.3 进程的基本状态及转换1.进程的三个基本状态进程通常至少有三种基本状态:(1)就绪状态(ready)进程运行所需的外部条件满足,但因为其它进程已占用CPU,所以暂时不能运行。
(2)执行状态(running)外部条件满足,进程已获得CPU,其程序正在执行。
在单处理机系统中,只有一个进程处于执行状态。
(3)阻塞状态(blocked)进程因等待某种事件发生,而暂时不能运行的状态,称为阻塞状态,也称为等待状态。
系统中处于这种状态的进程可能有多个,通常将它们排成一个队列,也有的系统则根据阻塞原因的不同将这些进程排成多个队列。
2.进程状态的转换对于一个系统中处于就绪状态的进程,在调度程序为之分配了处理机之后,该进程便可执行,相应地,它由就绪态转变为执行状态。
OS--第二章
程序并发执行的前趋图 程序并发执行
2.1.2进程的描述 进程的描述
1.进程的三个基本状态 1.进程的三个基本状态
运行态/执行态(Running):当一个进程在处理 运行态/执行态(Running): ): 机上运行时,则称该进程处于运行状态。 就绪态(Ready): ):一个进程获得了除处理机外 就绪态(Ready): 的一切所需资源,一旦得到处理机即可运行, 则称此进程处于就绪状态。 阻塞态(Blocked): ):(又称挂起状态、等待状 阻塞态(Blocked): 态):一个进程正在等待某一事件发生(例如 请求I/O而等待I/O完成等)而暂时仃止运行, 这时即使把处理机分配给进程也无法运行,故 称该进程处于阻塞状态。
进程的三个基本状态转换图 P29 图2-3 进程的三个基本状态转换图
运行态 时间片已用完 进程调度 等待事件已发生 阻 塞 态 等待某一事件发生
就绪态
2.进程状态的转换
三个基本状态之间可能转换和转换原因如下: 就绪态―― 运行态:当处理机空闲时,进程调度程序必将 ――> 就绪态――>运行态 处理机分配给一个处于就绪态的进程 ,该进程便由就绪态转 换为运行态。 运行态―― 阻塞态:处于运行态的进程在运行过程中需要 ――> 运行态――>阻塞态 等待某一事件发生后(例如因I/O请求等待I/O完成后), 才能继续运行,则该进程放弃处理机,从运行态转换为阻塞 态。 阻塞态―― 就绪态:处于阻塞态的进程,若其等待的事件 ――> 阻塞态――>就绪态 已经发生,于是进程由阻塞态转换为就绪态。 运行态―― 就绪态:处于运行状态的进程在其运行过程中, ――> 运行态――>就绪态 因分给它的处理机时间片已用完,而不得不让出(被抢占) 处理机,于是进程由运行态转换为就绪态。 • 而阻塞态――>运行态和就绪态――>阻塞态这二种状态转 换不可能发生。
二章节进程管理
第二章 进 程 管 理
第一章 操作系统引论
1.1 操作系统的目标和作用 1.2 操作系统的发展过程 1.3 操作系统的基本特性 1.4 操作系统的主要功能 1.5 操作系统的结构设计
第二章 进 程 管 理
第一章 习题课
一、单选题
(1)当CPU执行操作系统代码时,称处理机处于( C )。
A.执行态 B.目态 (2)在下列性质中,( D
第二章 进 程 管 理
中断响应过程
(1)中断装置(硬件)发现中断源;置当前PSW的中断码;交换 PSW;保存“当前PSW”到约定的单元成为“旧PSW”,“新 PSW”成为“当前PSW”。 (2)中断处理程序 ①保护被中断进程的现场,通用寄存器、控制寄存器内容以 及“旧PSW”保存到PCB中; ②根据“旧PSW”分析中断原因; ③对不同性质的中断事件,转交给不同的例行程序处理。
第二章 进 程 管 理
中断类型
1. 强迫中断 (1)硬件故障中断 (2)程序中断 (3)外部中断 (4)输入输出中断
2. 自愿中断 (5)访管中断
第二章 进 程 管 理
管目态
特权指令:有少数指令是为编制系统管理程序专门设置的。如 果用户误用这些特权指令,称为非法指令,将引发故障中断。 目态:程序执行时不可使用特权指令,I/O指令、时钟设置等。 管态:程序执行时可以使用特权指令。 目态:用户态,执行用户程序。 管态:系统态,执行系统管理程序,又称核心态。
程) 2. “旧PSW”. 保护起来的被中断进程的PSW 3. “新PSW”. 中断处理程序的PSW(其中指令地址即入口地址)
第二章 进 程 管 理
中断响应
通常在处理机执行完一条指令后,硬件的中断装置立即 检查有无中断事件发生。若有中断事件发生,则暂停现行进 程的运行,而让操作系统中的相应的中断处理程序占用处理 机,这一过程称为“中断响应”。
第二章 进程管理、作业管理
27
2 调度的层次 高级调度 :又称为“长程调度”、“作 业调度”。从用户工作流程的角度,一次 提交的若干个流程,其中每个程序按照进 程调度。时间上通常是分钟、小时或天。 接纳多少作业 接纳哪些作业 调度算法
29
低级调度:又称为“短程调度”、“进程或线 程”。从CPU资源的角度,执行的单位。时间上 通常是毫秒。因为执行频繁,要求在实现时达到 高效率。 两种调度方式: 非抢占方式 抢占方式 时间片 优先权 短作业(进程)优先 中级调度:又称为“中程调度”,内外存交换。 从存储器资源的角度。将进程的部分或全部换出 到外存上,将当前所需部分换入到内存。指令和 数据必须在内存里才能被CPU直接访问。
平均周转时间T 平均带权周转时间(带权周转时间W是 T(周转)/T(CPU 执行)〕
31
响应时间:用户输入一个请求(如击键)到系统 给出首次响应(如屏幕显示)的时间--分时系 统 截止时间:开始截止时间和完成截止时间--实 时系统,与周转时间有些相似。 优先权:可以使关键任务达到更好的指标。 不因作业或进程本身的特性而使上述指标过分恶 化。如长作业等待很态、寄存 器上下文和栈 同样具有就绪、阻塞和执行三种基本状态
16
线程与进程
one process one thread
one process multiple threads
multiple processes one thread per process
multiple processes multiple threads per process
第二章 进程管理、作业管理
2.1 基本概念
第2章_进程管理
系统用PCB来描述进程的基本情况以及运行 变化的过程,PCB是进程存在的唯一标志。
进程的创建:为该进程生成一个PCB; 进程的终止:回收它的PCB; 进程的组织管理:通过对PCB的组织管理来实现;
PCB存放在哪? 进程的状态转换:……?
22
两个进程的状态转换 运行 | 就绪 运行 | 阻塞 阻塞 | 就绪 就绪 | 运行
12
从技术上来说,只有一种创建进程的方法,
即在一个已经存在的进程(用户进程或系统
进程)当中,通过系统调用来创建一个新的 进程。 Unix:fork函数; Windows:CreateProcess函数;
13
2.1.5 进程的终止
在以下四种情形下,进程终止:
• 正常退出(自愿的);
• 错误退出(自愿的);
如何实现逻辑PC?
(本图摘自Andrew S. Tanenbaum: “Modern Operating Systems‖)
四个进程在并发地运行
11
2.1.4 进程的创建
引起进程创建的四个主要事件:
• 系统初始化时; • 在一个正在运行的进程当中,执行了 创建进程的系统调用; • 用户请求创建一个新进程; • 初始化一个批处理作业。
在并运行。
3
multi-programming
4
Why processes? (Cont.)
在多道程序系统中,各个程序之间是并发执 行的,共享系统资源。CPU需要在各个运行 的程序之间来回地切换,这样的话,要想描 述这些多道的并发活动过程就变得很困难。
5
程序1 MOV AX, 0040
程序2
POP
描述进程的数据结构:进程控制块
(Process Control Block,PCB)。
第2章 进程的描述和控制
引 起 阻 塞 和 唤 醒 的 事 件
请求系统服务
启动某种操作
新数据尚未到 无新工作可做
• 进程阻塞过程 –正在执行的进程,发生上述事件时, 自身调用有关阻塞原语,进入等待队 列。进程的主动性行为。 –进程由运行态变为阻塞态 –引起处理机调度。 –例如UNIX:暂停一段时间sleep;暂停 并等待信号pause;等待子进程暂停或 终止wait。
1 2 3
• 顺序执行的特征: – 顺序性:按照程序结构所指定的次序 执行(可能有分支或循环) – 封闭性:独占全部资源,计算机的状 态只由于该程序的控制逻辑所决定, 结果不受外界因素的影响 – 可再现性:初始条件相同则结果相同。
2)程序的并发执行
• 引入并发执行的目的是为了提高资源利用率。 • 并发执行的特征(在不加入任何系统控制情况 下): – 间断性:表现为“走走停停”,一个程序可 能走到中途停下来,失去原有的时序关系; – 失去封闭性:共享资源,受其他程序的控制 逻辑的影响。如:一个程序写到存储器中的 数据可能被另一个程序修改,失去原有的不 变特征。 – 失去可再现性:失去封闭性 ->失去可再现 性;外界环境在程序的两次执行期间发生变 化,失去原有的可重复特征。
执行指针 就绪队列指针
PCB1 PCB2 PCB3 PCB4 PCB5 PCB6 PCB7 PCB8 PCB9 4 3 0 8
阻塞队列指针 空闲队列指针
7 9 0 0
索引方式
执行指针
PCB1 PCB2
PCB3
就绪表指针
PCB4 PCB5 PCB6
阻塞表指针
PCB7
2.2
进程控制
• 进程管理中最基本功能是进程控制 • 进程控制任务: – 进程的创建、终止、进程状态的转变等 • 进程控制一般由OS内核的原语(primitive)来 实现。 – 原语:由若干条指令构成的“原子操作 (atomic operation)”过程,作为一个整 体而不可分割--要么全都完成,要么全 都不做。 – 许多系统调用是原语。但并不是所有的系 统调用都是原语
操作系统教程第2章复习
S3
(a) 程序的顺序执行
(b) 三条语句的顺序执行
图 2-1
程序的顺序执行
第二章 进 程 管 理 2. 程序顺序执行时的特征 (1) 顺序性:处理机的操作严格按照程序所规定的顺序 执行,即每一操作必须在上一个操作结束之后开始。 (2) 封闭性:程序是在封闭的环境下执行的,即程序运 行时独占全机资源,资源的状态(除初始状态外)只有本程序 才能改变它。程序一旦开始执行,其执行结果不受外界因素 影响。 (3) 可再现性:只要程序执行时的环境和初始条件相同, 当程序重复执行时,不论它是从头到尾不停顿地执行,还是 “停停走走”地执行,都将获得相同的结果。 程序顺序执行时的特性,为程序员检测和校正程序的错 误带来了很大的方便。
第二章 进 程 管 理
2.1.2.前趋图
• 为了描述一个程序的各部分(程序段 或语句)间的依赖关系,或者是一个 大的计算的各个子任务间的因果关 系,我们常常采用前趋图方式。
图2-2 九个结点的前趋图
第二章 进 程 管 理
前趋图(续)
• P1为初始结点,P9为终止结点每个结点 还具有一个重量。 • 该前趋图,存在下面的前趋关系: P1→P2 , P1→P3 , P1→P4 , P2→P5 , P3→P5 , P4→P6 , P4→P7 , P5→P8 , P6→P8,P7→P9,P8→P9;或表示为: • P ={P1,P2,P3,P4,P5,P6,P7,P8,P9} ={(P1,P2),(P1,P3),(P1,P4), (P2,P5),(P3,P5),(P4,P6), (P4,P7),(P5,P8),(P6,P8), (P7,P9),(P8,P9)}
第二章 进 程 管 理 或者说,OS是根据PCB来对并发执行的进程进行控制和 管理的。例如,当OS要调度某进程执行时,要从该进程的 PCB中查出其现行状态及优先级;在调度到某进程后,要根据 其PCB中所保存的处理机状态信息,设置该进程恢复运行的现 场,并根据其PCB中的程序和数据的内存始址,找到其程序和 数据; 进程在执行过程中,当需要和与之合作的进程实现同 步、通信或访问文件时,也都需要访问PCB;当进程由于某种 原因而暂停执行时,又须将其断点的处理机环境保存在PCB中。 可见,在进程的整个生命期中,系统总是通过PCB对进程进行 控制的,亦即,系统是根据进程的PCB而不是任何别的什么而 感知到该进程的存在的。所以说,PCB是进程存在的惟一标志。
第二章 进程管理
第二章进程管理第一部分教材习题(P81)1、什么是前趋图?为什么要引入前趋图?2、试画出下面4条语句的前趋图:S1:a:=x+y;S2:b:=z+1;S3: c:=a-b;S4: w:=c+1;【解】前趋图如下:3、为什么程序并发执行会产生间断性特征?(P36)4、程序并发执行,为何会失去封闭性和可再现性?(P37)【解】程序在并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行已失去了封闭性。
同时由于失去了封闭性,也将导致其再失去可再现性。
程序在并发执行时,由于失去了封闭性,程序经过多次执行后,其计算机结果已与并发程序的执行速度有关,从而使程序的执行失去了可再现性。
5、在操作系统中为什么要引入进程概念?(P37)它会产生什么样的影响?【解】在操作系统中引入进程的概念,是为了实现多个程序的并发执行。
传统的程序不能与其他程序并发执行,只有在为之创建进程后,才能与其他程序(进程)并发执行。
这是因为并发执行的程序(即进程)是“停停走走”地执行,只有在为它创建进程后,在它停下时,方能将其现场信息保存在它的PCB中,待下次被调度执行是,再从PCB中恢复CPU现场并继续执行,而传统的程序却无法满足上述要求。
建立进程所带来的好处是使多个程序能并发执行,这极大地提高了资源利用率和系统吞吐量。
但管理进程也需付出一定的代价,包括进程控制块及协调各运行机构所占用的内存空间开销,以及为进行进程间的切换、同步及通信等所付出的时间开销。
6、试从动态性、并发性和独立性上比较进程和程序?(P37)【解】(1)动态性:进程既然是进程实体的执行过程,因此,动态性是进程最基本的特性。
动态性还表现为:“它由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤消而消亡”。
可见,进程有一定的生命期。
而程序只是一组有序指令的集合,并存放在某种介质上,本身并无运动的含义,因此,程序是个静态实体。
第二章 进程管理-答案
第二章进程管理一、单项选择题1、顺序程序和并发程序的执行相比,()。
A.基本相同B. 有点不同C.并发程序执行总体上执行时间快D.顺序程序执行总体上执行时间快2、在单一处理机上,将执行时间有重叠的几个程序称为()。
A.顺序程序B. 多道程序C.并发程序D. 并行程序3、进程和程序的本质区别是()。
A.存储在内存和外存B.顺序和非顺序执行机器指令C.分时使用和独占使用计算机资源D.动态和静态特征4、在下列特性中,不是进程的特性的是()。
A. 异步性B. 并发性C. 静态性D. 动态性5、各进程向前推进的速度是不可预知,体现出“走走停停”的特征,称为进程的()。
A.动态性B.并发性C.调度性D.异步性6、在单处理机系统中,处于运行状态的进程()。
A.只有一个B. 可以有多个C.不能被挂起D. 必须在执行完后才能被撤下7、下列进程状态的转换中,不正确的是()。
A. 就绪→运行B. 运行→就绪C. 就绪→阻塞D. 阻塞→就绪8、已经获得除()以外的所有运行所需资源的进程处于就绪状态。
A.存储器B. 打印机C. CPUD. 磁盘空间9、一个进程被唤醒意味着()。
A.该进程重新占有了CPUB.进程状态变为就绪C.它的优先权变为最大D.其PCB移至就绪队列的队首10、进程从运行状态变为阻塞状态的原因是()。
A.输入或输出事件发生B.时间片到C.输入或输出事件完成D.某个进程被唤醒11、为了描述进程的动态变化过程,采用了一个与进程相联系的(),根据它而感知进程的存在。
A.进程状态字B. 进程优先数C.进程控制块D. 进程起始地址12、操作系统中有一组常称为特殊系统调用的程序,它不能被系统中断,在操作系统中称为()。
A.初始化程序B. 原语C.子程序D. 控制模块13、进程间的基本关系为()。
A.相互独立与相互制约B.同步与互斥C.并行执行与资源共享D. 信息传递与信息缓冲14、两个进程合作完成一个任务,在并发执行中,一个进程要等待其合作伙伴发来信息,或者建立某个条件后再向前执行,这种关系是进程间的()关系。
chap2进程管理
end
S6
例题
设有一个作业由4个进程组成,这4个进程必须按下图所 示的次序运行,试用P、V操作表达4个进程的同步关系。 a
P2
P1
b
P3
c
P4
d
习题1
1. 在多进程的系统中,为了保证公共变量的完整性, 各进程应互斥地进入临界区。所谓临界区是指 ( )。 A.一个缓冲区 B.一段数据区 C.同步机制 D.一 段程序 2. 如果多个进程共享系统资源或相互合作完成一个 共同的任务,则诸进程是以( )方式运行的。对 临界资源访问时采用( )方式,对于相互合作的 进程采用( )方式以协调各进程执行的( )。 A.共享 B.独立 C.互斥 D.同步 E. 次序 F. 次数 G.异步 3. 请阐述对于互斥临界区的管理要求。
问题思考:进程和程序的区别和联系?
区别: 1)进程是指令的有序集合,是静态的,进程是程序的执行,是 动态的。 2)进程的存在是暂时的,程序的存在是永久的。 3)进程的组成应包括程序和数据。除此之外,进程还应由记录 进程状态信息的“进程控制块”组成。
联系: 程序是构成进程的组成部分之一,一个进程的运行目标是 执行它所对应的程序。如果没有程序,进程就失去了其存在的 意义。从静态的角度看,进程由程序、数据和进程控制块三部 分组成。
创建进程(调用原语Create())的主要工作
向系统申请一个空闲的PCB。 分配资源,如内存。 给PCB的各数据项臵初值(进程名,状态,CPU信息,程序 计数器,栈指针,寄存器)——故调用创建原语的进程,必须提 供PCB的有关参数。 把新的PCB插入就绪队列。
课
堂 练 习
1、进程的定义是什么?它由哪几部分组成?它最少有哪 几种状态? 答:进程是进程实体的一次执行过程。进程由程序、数据 和进程控制块组成。一个进程至少有就绪、执行和阻塞三种 状态。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.3 进程同步 主要任务
对多个相关进程在执行次序上进行协调,以使 并发执行的各进程之间能有效地共享资源和相 互合作,从而使程序的执行具有可再现性
程序A N=10; 程序B N=0; print(N); 打印结果
0 0 10
执行顺序 N=10; N=0; print(N); N=0; print(N); N=10; N=0; N=10; print(N);
退出区(exit section)
置未被访问标志
对临界资源的访问: entry section critical section; exit section remainder section;
2.3 进程同步 基本概念
同步机制应遵循的规则
空闲让进 忙则等待 有限等待 让权等待
2.3 进程同步 信号量(Semaphore)机制
2.1 进程的基本概念 进程控制块
包含的信息 程序和数据地址 进程控制信息 进程同步和通信机制 资源清单 链接指针
2.1 进程的基本概念 进程控制块
组织方式
链接方式 索引方式
2.1 进程的基本概念 链接方式
执行指针 就绪队列1指针 就绪队列2指针 阻塞队列1指针 阻塞队列2指针 空闲队列指针
PCB1 PCB2 PCB3 PCB4 PCB5 PCB6 PCB7 PCB8 PCB9 PCB10 PCB11 PCB12 PCBi PCBn
挂起
就绪
挂起
阻塞
激活
激活
挂起
静止 就绪
事件发生 如I/O完成
静止 阻塞
2.1 进程的基本概念 创建状态和终止状态
创建状态
进程刚被创建时的状态 进程已经拥有PCB,但初始化工作还未完成
终止状态ቤተ መጻሕፍቲ ባይዱ
进程执行结束后,将要退出的状态 该状态下的进程不能再被执行
2.1 进程的基本概念 创建状态和终止状态
活动空间 挂起
2.1 进程的基本概念 程序的并发执行及其特征
程序1: I1 C1
I1
P1 程序2: I2
I2 I3
C2
P2
程序3:I3
C3
P3
输入:
计算:
C1
C2
C3 时间:5个∆t
输出:
P1
P2
P3 t
t0 Δt
t1
t2
t3
t4
t5
t6
2.1 进程的基本概念 程序的并发执行及其特征
特征
间断性:程序在并发执行时,由于它们共享资源或 为完成某一项任务而合作,致使在并发程序之间存 在相互制约的关系。
记录型信号量
struct semaphore { int value; pointer_PCB L; } semaphore S; wait(S) { S.value=S.value-1; if (S.value < 0) block(S.L) } signal(S) { S.value=S.value+1; if (S.value <= 0) wakeup(S.L) }
2.2 进程控制 进程的终止
进程终止原语执行步骤
根据标识符,得到PCB 若进程为运行状态,则立即终止进程的执行,置调 度标志为真 若有子孙进程,则先终止子孙进程 回收该进程的全部资源 将PCB从所在队列中移出,进入终止状态 待一切工作完成后,收回PCB插入空闲PCB队列, 该进程消亡
2.2 进程控制 进程的阻塞
I1
P1 程序2: I2
I2
C2
I3
P2
程序3:I3
C3
P3
9个∆t 个
C1 P1 C2 P2 C3 P3
t
t3
t4
t5
t6
t7
t8
t9
t10
2.1 进程的基本概念 程序的顺序执行及其特征
特征
顺序性:处理机的操作严格按照程序所规定的顺序 执行 封闭性:程序运行时独占所有资源。程序执行得到 的最终结果由给定的初始条件决定,不受外界因素 的影响 可再现性:只要输入的初始条件相同,则无论何时 重复执行该程序都会得到相同的结果
2.1 进程的基本概念 进程的特征与定义
结构特征
进程实体(进程映像)
程序段 相关的数据段 进程控制块PCB(Process Control Block)
动态性 并发性 独立性 异步性
2.1 进程的基本概念 进程的特征与定义
定义
进程是程序的一次执行过程 进程是一个程序及其数据在处理机上顺序执行时所 发生的活动 进程是程序在一个数据集合上运行的过程,它是系 统进行资源分配和调度的一个独立单位 进程是进程实体的运行过程,是系统进行资源分配 和调度的一个独立单位
┅
2.2 进程控制 原语(Primitive)
由若干指令组成,用于完成一定功能的过程 原语是“原子操作”,即一个操作中的所有动 作要么全做,要么全不做 原语执行过程中不允许被中断 原语是在管态下执行的
2.2 进程控制 进程的创建
引起进程创建的事件
用户登录 作业调度 提供服务 应用请求
2.2 进程控制 进程的创建
2.1 进程的基本概念 程序的并发执行及其特征
不可再现性举例
程序A N=10; 程序B N=0; print(N); 打印结果
0 0 10
执行顺序 N=10; N=0; print(N); N=0; print(N); N=10; N=0; N=10; print(N);
必须采取某些措施来制约、控制各并发程序段 的执行
系统中某些资源一次只允许一个进程使用,称这样 的资源为临界资源或互斥资源
临界区(critical section)
进程中访问临界资源的那段代码称为临界区
程序A N=10; 程序B N=0; print(N);
2.3 进程同步 基本概念
进入区(entry section)
检查临界资源是否可以访问,置被访问标志
2.1 进程的基本概念 进程控制块
包含的信息 进程标识符 进程名 进程号 标识符信息 用户标识 用户名 用户号 家族联系 父进程 子进程
2.1 进程的基本概念 进程控制块
包含的信息 通用寄存器 处理机状态信息 指令计数器 程序状态字 用户栈指针
2.1 进程的基本概念 进程控制块
包含的信息 进程状态 进程调度信息 进程优先级 调度算法参数等 等待事件
进程挂起原语
找到需要挂起进程的PCB,从相应队列摘出 申请交换区,并将交换区地址记入PCB中 将内存空间归还系统 将状态修改为静止阻塞/静止就绪 如被挂起的进程为当前进程,则转进程调度
2.2 进程控制 进程的激活
进程激活原语
找到需要激活的进程的PCB,从相应队列摘出 将激活的进程从交换区写入内存,归还交换区 将状态修改为阻塞/就绪,PCB挂相应队列
2.3 进程同步 基本概念
两种形式的制约关系
间接相互制约关系
进程间由于共享同一互斥资源而产生的制约关系 如两个进程共享打印机
直接相互制约关系
进程间由于合作而产生的制约关系 如计算进程和打印进程 程序A N=10; 程序B N=0; print(N);
2.3 进程同步 基本概念
临界资源(critical resource)
I1 I2 I3
输入:
计算:
C1
C2
C3
输出:
P1
P2
P3 t
2.1 进程的基本概念 程序的并发执行及其特征
特征
间断性:程序在并发执行时,由于它们共享资源或 为完成某一项任务而合作,致使在并发程序之间存 在相互制约的关系。 失去封闭性:程序在并发执行时,是多个程序共享 系统中的各种资源,因而这些资源的状态将由多个 程序来改变,致使程序的运行失去了封闭性 不可再现性:程序在并发执行时,由于失去了封闭 性,也导致失去了可再现性
整型信号量
int S; //S的初值为该资源可用数目 原子操作wait(S)和signal(S) wait(S)和signal(S),也称P、V操作 wait(S) { while(S<=0) do no-op; S=S-1; } signal(S) { S=S+1; }
2.3 进程同步 信号量(Semaphore)机制
当被阻塞进程所期待的事件出现时,由相关进 程唤醒 进程的唤醒不能由进程自己唤醒,是由其它相 关进程唤醒
由系统进程唤醒 由事件发生进程唤醒
2.2 进程控制 进程的唤醒
进程唤醒原语
将相关的阻塞进程PCB从阻塞队列摘出 将进程状态修改为就绪状态,并插入就绪队列中 调度程序进行新的调度
2.2 进程控制 进程的挂起
2.3 进程同步 信号量的应用
利用信号量实现进程互斥
semaphore mutex=1; ProcessA while (true) { wait(mutex); N=10; critical section; signal(mutex); remainder section; ProcessB while (true) { wait(mutex); N=0; critical section; print(N); signal(mutex); remainder section; }
第二章 进程管理
第二章 进程管理 2.1 2.2 2.3 2.4 2.5 2.6 进程的基本概念 进程控制 进程同步 经典进程的同步问题 进程通信 线程
2.1 进程的基本概念 程序的顺序执行及其特征
各程序段之间按照某种先后次序顺序执行
程序1: I1 输入: 输入: 计算: 计算: 输出: 输出: t0Δt t1 t2 C1
运行
终止
终止
创建
接纳 接纳
时间 片到
调度
等待事件发生 如等待I/O