计算机操作系统课件第2章 进程管理
合集下载
第二进程管理-PPT精选.ppt

辽东学院信息技术学院
第二章 进 程 管 理
进程与程序的区别
(1)程序是指令的有序集合,其本身没有任何运行的含义,是一个 静态的概念。而进程是程序在处理机上的一次执行过程,它是一 个动态的概念。 (2)程序可以作为一种软件资料长期存在,而进程是有一定生命期 的。程序是永久的,进程是暂时的。 (3)进程更能真实地描述并发,而程序不能 (4)进程包括程序和数据+PCB两部分 (5)进程具有创建其他进程的功能,而程序没有 (6)同一程序同时运行于若干个数据集合上,它将属于若干个不同 的进程。也就是说同一程序可以对应多个进程
第二章 进 程 管 理
某时刻, N=9: 程序A
While(1) {
… n:=n+1; …
}
程序A得到的N值为:10
①
程序B
While(1) {
… print n; … …
}
程序B得到的N值为:10
辽东学院信息技术学院
第二章 进 程 管 理
某时刻, N=9:
循环程序A
While(1) {
… n:=n+1; …
(2) 失去封闭性: 资源共享
S4
(3) 不可再现性: 结果不同
辽东学院信息技术学院
第二章 进 程 管 理
不可再现性
例如,有两个程序A和B,它们共享一个变量N。程序 A每执行一次时,都要做N∶=N+1操作;程序B每执行一 次时, 都要执行Print(N)操作。程序A和B以不同的速度 运行。
辽东学院信息技术学院
2. 有没有这样的状态转换,为什么? 阻塞—运行; 就绪—阻塞
辽东学院信息技术学院
第二章 进 程 管 理
2.1.5 进程控制块
第二章 进 程 管 理
进程与程序的区别
(1)程序是指令的有序集合,其本身没有任何运行的含义,是一个 静态的概念。而进程是程序在处理机上的一次执行过程,它是一 个动态的概念。 (2)程序可以作为一种软件资料长期存在,而进程是有一定生命期 的。程序是永久的,进程是暂时的。 (3)进程更能真实地描述并发,而程序不能 (4)进程包括程序和数据+PCB两部分 (5)进程具有创建其他进程的功能,而程序没有 (6)同一程序同时运行于若干个数据集合上,它将属于若干个不同 的进程。也就是说同一程序可以对应多个进程
第二章 进 程 管 理
某时刻, N=9: 程序A
While(1) {
… n:=n+1; …
}
程序A得到的N值为:10
①
程序B
While(1) {
… print n; … …
}
程序B得到的N值为:10
辽东学院信息技术学院
第二章 进 程 管 理
某时刻, N=9:
循环程序A
While(1) {
… n:=n+1; …
(2) 失去封闭性: 资源共享
S4
(3) 不可再现性: 结果不同
辽东学院信息技术学院
第二章 进 程 管 理
不可再现性
例如,有两个程序A和B,它们共享一个变量N。程序 A每执行一次时,都要做N∶=N+1操作;程序B每执行一 次时, 都要执行Print(N)操作。程序A和B以不同的速度 运行。
辽东学院信息技术学院
2. 有没有这样的状态转换,为什么? 阻塞—运行; 就绪—阻塞
辽东学院信息技术学院
第二章 进 程 管 理
2.1.5 进程控制块
计算机操作系统第2章进程管理

或者:可并发执行的程序在一个数据集合上 的运行过程。
2021/7/15
计算机操作系统第2章进程管理
21
程序与进程之间的区别:
• 进程更能真实地描述并发,而程序不能 • 进程是由程序和数据及PCB组成的 • 程序是静态的,进程是动态的
• 进程有生命周期,有诞生有消亡,短暂 的;而程序是相对长久的
• 一个程序可对应多个进程,反之亦然
12
1)间断性 共享资源 -> 相互制约 -> 执行-暂停-执行
2)失去封闭 性 一个程序的执行受到其他程序的影响
3)不可再现性
设有两个循环程序A和B共享变量N,A每次执行N+1操作, B每次执行print(N),N置0。执行情况:
(1)N:=N+1 在print(N)和N:=0之前,得到的N值分别为n+1,
•负荷调节的需要
由活动到 静止,由 内存到外
存
2021/7/15
计算机操作系统第2章进程管理
30
2)进程状态的转换
2021/7/15
图2-12
具有挂起状态的转换图
计算机操作系统第2章进程管理
31
状态转换 (中级调度)
• 活动阻塞 -->静止阻塞 • 静止阻塞 --> 活动阻塞 • 静止就绪-->活动就绪
2021/7/15
计算机操作系统第2章进程管理
t(s) t(s)
15
(2)在并发环境下
A
CPU
DEV1
CPU
DEV2
CPU
t(s)
10
15
20
25
30
35 40
45
B
DEV1
CPU
2021/7/15
计算机操作系统第2章进程管理
21
程序与进程之间的区别:
• 进程更能真实地描述并发,而程序不能 • 进程是由程序和数据及PCB组成的 • 程序是静态的,进程是动态的
• 进程有生命周期,有诞生有消亡,短暂 的;而程序是相对长久的
• 一个程序可对应多个进程,反之亦然
12
1)间断性 共享资源 -> 相互制约 -> 执行-暂停-执行
2)失去封闭 性 一个程序的执行受到其他程序的影响
3)不可再现性
设有两个循环程序A和B共享变量N,A每次执行N+1操作, B每次执行print(N),N置0。执行情况:
(1)N:=N+1 在print(N)和N:=0之前,得到的N值分别为n+1,
•负荷调节的需要
由活动到 静止,由 内存到外
存
2021/7/15
计算机操作系统第2章进程管理
30
2)进程状态的转换
2021/7/15
图2-12
具有挂起状态的转换图
计算机操作系统第2章进程管理
31
状态转换 (中级调度)
• 活动阻塞 -->静止阻塞 • 静止阻塞 --> 活动阻塞 • 静止就绪-->活动就绪
2021/7/15
计算机操作系统第2章进程管理
t(s) t(s)
15
(2)在并发环境下
A
CPU
DEV1
CPU
DEV2
CPU
t(s)
10
15
20
25
30
35 40
45
B
DEV1
CPU
操作系统_第二章 进程管理

– 记录型信号量是由于它采用了记录型的数据结构 而得名的。它所包含的上述两个数据项可描述为 :
21
2.3.2 信号量机制
– type semaphore=record
–
value:integer;
–
L:list of process;
–
end
• 相应地,wait(S)和signal(S)操作可描述为:
15
2.3.1 进程同步的基本概念
• 虽然上面的生产者程序和消费者程序,在分别看 时都是正确的,而且两者在顺序执行时其结果也 会是正确的,但若并发执行时,就会出现差错, 问题就在于这两个进程共享变量counter。生产者 对它做加1操作,消费者对它做减1操作,这两个 操作在用机器语言实现时,常可用下面的形式描 述:
14
2.3.1 进程同步的基本概念
• producer: repeat •… • produce an item in nextp; •… • while counter=n do no-op; • buffer[in]∶ =nextp; • in∶ =in+1 mod n; • counter∶ =counter+1; • until false; • consumer: repeat • while counter=0 do no-op; • nextc∶ =buffer[out]; • out∶ =(out+1) mod n; • counter∶ =counter-1; • consumer the item in nextc; • until false;
(Atomic Operation) wait(S)和signal(S)来访问。这两 个操作一直被分别称为P、V操作。
21
2.3.2 信号量机制
– type semaphore=record
–
value:integer;
–
L:list of process;
–
end
• 相应地,wait(S)和signal(S)操作可描述为:
15
2.3.1 进程同步的基本概念
• 虽然上面的生产者程序和消费者程序,在分别看 时都是正确的,而且两者在顺序执行时其结果也 会是正确的,但若并发执行时,就会出现差错, 问题就在于这两个进程共享变量counter。生产者 对它做加1操作,消费者对它做减1操作,这两个 操作在用机器语言实现时,常可用下面的形式描 述:
14
2.3.1 进程同步的基本概念
• producer: repeat •… • produce an item in nextp; •… • while counter=n do no-op; • buffer[in]∶ =nextp; • in∶ =in+1 mod n; • counter∶ =counter+1; • until false; • consumer: repeat • while counter=0 do no-op; • nextc∶ =buffer[out]; • out∶ =(out+1) mod n; • counter∶ =counter-1; • consumer the item in nextc; • until false;
(Atomic Operation) wait(S)和signal(S)来访问。这两 个操作一直被分别称为P、V操作。
第二章-进程管理 ppt课件

→,记为Pi → Pj,则Pi是Pj的直接前趋,Pj是Pi的直接后继 把没有前趋的结点称为初始结点(Initial Node),把没有后继
的结点称为终止结点(Final Node)。 每个结点还具有一个重量(Weight),用于表示该结点所含有
的程序量或结点的执行时间。
前趋图 P2
P5
P1
P3
第二章-进程管理
第二章 进程管理
精品资料
• 你怎么称呼老师?
• 如果老师最后没有总结一节课的重点的难点,你 是否会认为老师的教学方法需要改进?
• 你所经历的课堂,是讲座式还是讨论式? • 教师的教鞭
• “不怕太阳晒,也不怕那风雨狂,只怕先生骂我 笨,没有学问无颜见爹娘 ……”
• “太阳当空照,花儿对我笑,小鸟说早早早……”
Contents
1 前趋图和程序执行 2 进程的描述 3 进程控制 4 进程同步 5 经典进程的同步问题 6 进程通信 7 线程的基本概念 8 线程的实现
01
前趋图和程序执行
前趋图
※ 前趋图是一个有向无循环图(DAG),用于描述进程之间 执行的前后关系
结点:描述一个程序段或进程,或一条语句 有向边:结点之间的偏序或前序关系“→” →={(Pi,Pj) Pi must complete before Pj may start},若(Pi,Pj)
I1
C1
P1
I2
C1
P2
程序的顺序执行
对于一个程序段中的多条语句来说,也有一个执行顺序的 问题。如果对于下述三条语句的程序段: S1:a = x+y S2:b = a-5 S3:c = b+1
(其中S2必须在a被赋值以后才能执行;同样S3也只能在b被赋值 以后才能执行)
的结点称为终止结点(Final Node)。 每个结点还具有一个重量(Weight),用于表示该结点所含有
的程序量或结点的执行时间。
前趋图 P2
P5
P1
P3
第二章-进程管理
第二章 进程管理
精品资料
• 你怎么称呼老师?
• 如果老师最后没有总结一节课的重点的难点,你 是否会认为老师的教学方法需要改进?
• 你所经历的课堂,是讲座式还是讨论式? • 教师的教鞭
• “不怕太阳晒,也不怕那风雨狂,只怕先生骂我 笨,没有学问无颜见爹娘 ……”
• “太阳当空照,花儿对我笑,小鸟说早早早……”
Contents
1 前趋图和程序执行 2 进程的描述 3 进程控制 4 进程同步 5 经典进程的同步问题 6 进程通信 7 线程的基本概念 8 线程的实现
01
前趋图和程序执行
前趋图
※ 前趋图是一个有向无循环图(DAG),用于描述进程之间 执行的前后关系
结点:描述一个程序段或进程,或一条语句 有向边:结点之间的偏序或前序关系“→” →={(Pi,Pj) Pi must complete before Pj may start},若(Pi,Pj)
I1
C1
P1
I2
C1
P2
程序的顺序执行
对于一个程序段中的多条语句来说,也有一个执行顺序的 问题。如果对于下述三条语句的程序段: S1:a = x+y S2:b = a-5 S3:c = b+1
(其中S2必须在a被赋值以后才能执行;同样S3也只能在b被赋值 以后才能执行)
操作系统课件 第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)进程具有创建其他进程的功能,而程序没有。
计算机操作系统课件02进程管理

2) 执行状态
进程已获得CPU,其程序正在执行。在单处理机系统中,只有 一个进程处于执行状态; 在多处理机系统中,则有多个进程 处于执行状态。
3) 阻塞状态 正在执行的进程由于发生某事件而暂时无法继续执行时,便放 弃处理机而处于阻塞状态,有时也称为等待状态或封锁状态。 致使进程阻塞的典型事件有:请求I/O,申请缓冲空间等。 通常将这种处于阻塞状态的进程也排成一个队列。有的系统则 根据阻塞原因的不同而把处于阻塞状态的进程排成多个队列。
当用挂起原语Suspend将该进程挂起后,该进程便转变为静止 就绪状态,表示为Readys,处于Readys状态的进程不再被调度 执行。
请求
释放
活动 阻塞
I/O
调度
活动 就绪
激活
挂起
执行
激活 挂起
静止 阻塞
释放
挂起
静止 就绪
图 2-6 具有挂起状态的进程状态图
(2) 活动阻塞→静止阻塞。当进程处于未被挂起的阻塞状态 时 , 称 它 是 处 于 活 动 阻 塞 状 态 , 表 示 为 Blockeda 当 用 Suspend原语挂起后,进程便转变为静止阻塞状态,表示为 Blockeds。处于该状态的进程在其所期待的事件出现后,将 从静止阻塞变为静止就绪。
在许多情况下所说的进程,实际上是指进程实体,例如,所 谓创建进程,实质上是创建进程实体中的PCB;而撤消进程, 实质上是撤消进程的PCB。
2) 动态性
进程的实质是进程实体的一次执行过程,因此,动态性是进程 的最基本的特征。
动态性还表现在:“它由创建而产生,由调度而执行,由撤消 而消亡”。
可见,进程实体有一定的生命期,而程序则只是一组有序指令 的集合,并存放于某种介质上,其本身并不具有运动的含义, 因而是静态的。
第2章 进程管理课件

八、UNIX系统的进程映像
用户态运行:执行用户态程序(在CPU上) 核心态运行:在CPU上执行操作系统程序
2、进程状态
在内存就绪:具备运行条件,只等取得CPU 在外存就绪:就绪进程被对换到外存上
在内存睡眠:在内存中等待某一事件发生 在外存睡眠:睡眠进程被对换到外存上 在内存暂停:因调用stop程序而进入跟踪暂停状态,等 待其父进程发送命令 在外存暂停:处于跟踪暂停状态的进程被对换到外存上 创建态:新进程被创建,但尚未完毕的中间状态 终止态:进程终止自己
第2章
2.3
进程管理
进程间的相互作用和通信
一、进程间的联系 3、临界资源与临界区
(4)系统对同类临界区的调度原则:
1 2 3
有若干进程要求进入临界区,一次仅允许一个进程进入。 任何时候,处于临界区的进程不可多于一个。 进入临界区的进程要在有限时间内退出, 使其它进程能及时进入。
第2章
2.3
二、锁操作法
三、信号量与P、V操作
4、举例说明利用P、V操作互斥同步问题
例2.1 生产者与消费者的问题
消费者进程
生产者进程
L1:P(empty);
P(mutex); 将产品送往缓冲池
L2:P(mutex);
P(full); 从缓冲池取出产品
V(mutex);
V(full); goto L1;
V(mutex);
三、信号量与P、V操作
4、举例说明利用P、V操作互斥同步问题
例2.1 生产者与消费者的问题
问题是这样叙述的:有若干生产者进程P1、P2、……Pn和若 干消费者进程C1、C2、…Cm;它们通过一个有界缓冲池(即由 K个缓冲区组成)联系起来,如下图所示:
有界缓冲池 生产者
用户态运行:执行用户态程序(在CPU上) 核心态运行:在CPU上执行操作系统程序
2、进程状态
在内存就绪:具备运行条件,只等取得CPU 在外存就绪:就绪进程被对换到外存上
在内存睡眠:在内存中等待某一事件发生 在外存睡眠:睡眠进程被对换到外存上 在内存暂停:因调用stop程序而进入跟踪暂停状态,等 待其父进程发送命令 在外存暂停:处于跟踪暂停状态的进程被对换到外存上 创建态:新进程被创建,但尚未完毕的中间状态 终止态:进程终止自己
第2章
2.3
进程管理
进程间的相互作用和通信
一、进程间的联系 3、临界资源与临界区
(4)系统对同类临界区的调度原则:
1 2 3
有若干进程要求进入临界区,一次仅允许一个进程进入。 任何时候,处于临界区的进程不可多于一个。 进入临界区的进程要在有限时间内退出, 使其它进程能及时进入。
第2章
2.3
二、锁操作法
三、信号量与P、V操作
4、举例说明利用P、V操作互斥同步问题
例2.1 生产者与消费者的问题
消费者进程
生产者进程
L1:P(empty);
P(mutex); 将产品送往缓冲池
L2:P(mutex);
P(full); 从缓冲池取出产品
V(mutex);
V(full); goto L1;
V(mutex);
三、信号量与P、V操作
4、举例说明利用P、V操作互斥同步问题
例2.1 生产者与消费者的问题
问题是这样叙述的:有若干生产者进程P1、P2、……Pn和若 干消费者进程C1、C2、…Cm;它们通过一个有界缓冲池(即由 K个缓冲区组成)联系起来,如下图所示:
有界缓冲池 生产者
操作系统2 进程管理

进程的挂起状态(从内存交换到外存) 进程的激活状态(从外存交换到内存)
新建
内存活动
空间
运行
时间 片到
调度
终止
等待事件 发生如 等待I/O
完成
接纳 就绪 事件发生 等待
如I/O完成
接纳
挂起
激活(内存有空间)挂起
激活(内存有空间)
外存 就绪
事件发生 如I/O完成
外存 等待
外存活动 空间
具有挂起状态的进程状态转换图
进程控制块的组织:
2.2.3 进程的阻塞与唤醒
1. 引起进程阻塞和唤醒的事件
1) 请求系统服务 2) 启动某种操作 3) 4)
2. 进程阻塞过程
进程调用阻塞原语block(), 把自己阻塞。它是进程自身的 一种主动行为。
然后,PCB中的状态由“执行”改为阻塞,并将PCB插 入阻塞队列。
最后,转调度程序将处理机分配给另一就绪进程,并进 行切换.
2)把该进程的PCB复制到某指定的内存区域。 3)若被挂起的进程正在执行,则转向调度程序重新调度。
2. 进程的激活过程
系统用原语active( )将指定进程激活。
执行过程是:
1)先将进程从外存调入内存,静止就绪改为活动就绪; 静止阻塞改为活动阻塞。
2)假如采用的是抢占调度策略,则每当有新进程进入 就绪队列时,应检查是否要进行重新调度,即由调度程 序将被激活进程与当前进程进行优先级的比较,如果被 激活进程的优先级更低,就不必重新调度;否则,立即 剥夺当前进程的运行,把处理机分配给刚被激活的进程。
整个系统效率得 以提高。
下一 步
吞吐率:1/8Δt = 0.125道程序/Δt
A
0 Δt 1