操作系统原理第二章进程管理
操作系统原理与实例分析PPT课件第二章 进程管理
![操作系统原理与实例分析PPT课件第二章 进程管理](https://img.taocdn.com/s3/m/0a5a2f9f3b3567ec102d8ad1.png)
计算结果不可再现性,亦即,程序经过多次执行后,虽然它们执行时的
环境和初始条件相同,但得到的结果却各不相同。
a
7
例子:变量X为共享变量,程序1和程序2都要对X进 行访问,当两个程序执行的速度变化时可得到不 同的结果。
执行顺序1:程序1程序2 结果为:X增加2。
a
15
PCB包含了进程的描述信息和控制信息,通常有如下项目: (1) 标识符 (2) 存贮信息 (3) 现场状态 (4) 优先数 (5) 现场信息 (6) 链接字(或称队列指针) (7) 族系关系 (8) 资源清单 (9) 其他
a
16
* 标识符
分为外部标识符和内部标识符。外部标识 符由创建进程者提供,通常由字母、数字等组 成,在用户或其它进程访问该进程时使用。内 部标识符是一个整数。在操作系统的PCB表区 中,有多个PCB表,每个PCB表有一个序号,通 常将这个序号做为内部标识符,以方便系统使 用。
●暂存资源, 动态产生过程 资源分配和调度的单位
a
12
2、进程的特征
– 动态性:进程是程序在并发系统内的一次执行,一 个进程有一个从产生到消失的生命期,是进程的最 基本的特征;
– 并发性:正是为了描述程序在并发系统内执行的动 态特性才引入了进程,没有并发就没有进程,是进 程的最重要的特征,正是因为并发性,才提高了系 统资源的利用率和系统的吞吐量;
并发是指在某一时间间隔内计算机系统中 存在着多个程序活动。
并行是指在同一时刻计算机内有多个程序 都在执行,这只有在多CPU的系统中才能实现。 在单CPU的计算机系统中,多个程序是不可能 同时执行的。并发是从宏观上(这种“宏观” 也许不到一秒的时间)看多个程序的运行活动, 这些程序在串行的、交错的运行,由操作系统 负责这些程序之间的运行切换,人们从外部宏 观上观察,有多个程序都在系统中运行。
《操作系统原理》第二章 进程管理
![《操作系统原理》第二章 进程管理](https://img.taocdn.com/s3/m/350d357701f69e3143329414.png)
本章主要内容
进程的引入和概念 进程的描述:进程状态、PCB 进程控制:创建、撤销、阻塞、唤醒… 处理机的调度 线程的引入
进程的引入和概念
程序的顺序执行 程序: 指令或语句序列的集合,体现了某种算法 所有程序是顺序的 程序的顺序执行:在任何时刻,机器只执 行一个操作,只有在前一个操作执行完后 ,才能执行后继操作。
运行 进程因某事件(I/O, etc)变成堵塞状态
时间片 已用光
某事件被解除 (如I/O完成) 阻塞
就绪
由进程状态转换图可以看出:
就绪态--运行态:处于就绪态的某进程被进程调度 程序的执行选中时。 运行态--阻塞态:是由运行进程自己主动改变的。 例:一个正在运行的进程启动了某一外围设备后, 等待该外围设备传输完成时,使自己由运行态变为 阻塞态。 阻塞态--就绪态:是由外界事件引起的。 例:上 程序把因等待这一I/O完成而阻塞的进 程变为就绪态
PCB内容
1、进程标识符:用于唯一地标识一个进程。 外部标识符:由创建者提供,通常是由字母、 数字所组成,往往是由用户访问进程时使用,便 于记忆。如计算进程、打印进程、发送进程、接 收进程等。 内部标识符:OS为每一个进程赋予了一个唯一 的整数,作为内部标识。父进程标识符、子进程 标识符、用户标识符。
进程的基本状态及其转换(3)
阻塞状态:正在执行的进程由于发生某事件 而暂时无法继续运行时,放弃处理机而进入 的状态,又称等待状态、封锁态、睡眠态。 处于阻塞态的进程在逻辑上是不能运行的 ,即使CPU空闲,该进程也不可运行 引起阻塞的事件:请求I/O,申请缓存等。
进程调度 程序把处 理机分配 给进程
进程的基本状态及其转换(1)
进程的三种基本状态:运行状态、就绪状态 和阻塞状态 进程在生命消亡前处于且仅处于三种基本 状态之一
计算机操作系统之进程管理
![计算机操作系统之进程管理](https://img.taocdn.com/s3/m/40614a1efc4ffe473368ab09.png)
2.3进程同步 进程同步
• 同步:并发进程在执行次序上的协 同步: 调,以达到有效的资源共享和相互 合作,使程序执行有可再现性。 合作,使程序执行有可再现性。
2.3.1 进程同步的基本概念
• 1.两种形式的制约关系 两种形式的制约关系 两种形式的制 o 资源共享关系:(进程间接制约) 资源共享关系:(进程间接制约) :(进程间接制约 需互斥地访问临界资源 访问临界资源。 需互斥地访问临界资源。 o 相互合作关系:(进程直接制约) 相互合作关系:(进程直接制约) :(进程直接制约 • 2. 临界资源:(一次仅允许一个进程访问的资源) 临界资源:(一次仅允许一个进程访问的资源) :(一次仅允许一个进程访问的资源 o 引起不可再现性是因为临界资源没有互斥访问。 引起不可再现性是因为临界资源没有互斥访问 现性是因为临界资源没有互斥访问。
生产者-消费者问题 产者-
Var n, integer; Type item=…; var buffer:array[0,1,…,n-1] of item; in, out: 0,1, …, n-1; counter: 0,1,…,n;
2.1.4进程的特征和状态 进程的特征和状态
• 1. 进程的特征和定义 o 一、定义: 程序的一次执行过程 程序的一次执行过程 o 1.结构特征 结构特征 进程:由程序段、数据段及进程控制块三部分构成, 进程:由程序段、数据段及进程控制块三部分构成, 总称“进程映像” 总称“进程映像”。 o 2.动态性 动态性 创建”而产生, 调度”而执行; 由“创建”而产生,由“调度”而执行;由得不到资 阻塞; 。(而程序是静态的)。 源而阻塞 由撤消而消亡。(而程序是静态的 源而阻塞;由撤消而消亡。(而程序是静态的)。
PCB1 PCB2 PCB3 PCB4 PCB5
《操作系统原理》第二章进程管理
![《操作系统原理》第二章进程管理](https://img.taocdn.com/s3/m/a7f14fb2aff8941ea76e58fafab069dc51224713.png)
冲区空时等待。
02
读者-写者问题
多个进程共享一个数据文件,分为读者和写者两类。读者只读取文件不
修改,写者需要修改文件。需要保证多个读者可以同时读取文件,但写
者在修改文件时需要独占访问。
03
哲学家进餐问题
五个哲学家围坐在圆桌旁,思考和进餐交替进行。每个哲学家之间有一
只筷子,进餐时需要拿起左右两只筷子。需要保证不会出现死锁情况。
《操作系统原理》第二章进程管理
目录
• 进程管理概述 • 进程创建与终止 • 进程同步与互斥 • 进程通信机制 • 线程概念及多线程模型 • 进程调度算法
01 进程管理概述
进程概念及特性
进程定义
进程是计算机程序关于数据集合上的 一次运行活动,是系统进行资源分配 和调度的基本单位。
进程特性
动态性、并发性、独立性、异步性、 结构性。
僵尸进程
僵尸进程是指子进程已经结束,但其父进程尚未回收其PCB等资源,导致该子进程仍然留在系统中占用一定的资 源。为了避免僵尸进程对系统的影响,父进程需要在子进程结束后及时回收其资源,或者通过信号机制等方式来 通知父进程进行资源回收。
例子:创建和终止一个进程
创建进程
在Unix/Linux系统中,可以使用fork()系统调用来创建一个新进程。fork()函数会复制 当前进程的PCB等资源,并在新进程中返回0,而在原进程中返回新进程的PID。通过
进程管理重要性
资源管理
系统效率
进程是系统资源分配的基本单位,通过对 进程的管理,实现对CPU、内存、I/O设备 等资源的合理分配和使用。
通过对进程的有效调度和管理,提高系统 的吞吐量和响应速度,改善系统性能。
系统稳定性
用户体验
第2章 操作系统进程管理PPT课件
![第2章 操作系统进程管理PPT课件](https://img.taocdn.com/s3/m/c0f6ed1a336c1eb91a375dd8.png)
2.1.2 程序并发执行及其特征 ■ 程序并发执行概念
下一步 前驱关系
输入:
I1
I2
I3
并行
执行顺序 并行
计算:
并行
输出:
C1
C2
C3
时间:5个Δt
P1
P2
P3
结束
t
t0 Δt t1
t2
t3
t4
t5
t6
三个程序并发执行示例 9
2.1.2 程序并发执行及其特征
■ 程序并发执行概念
● 作业吞吐量是指在给定时间间隔内所完成作业 的数量。 ● CPU的利用率。 ● 单道程序系统的缺点:资源浪费、效率低、周 转时间长等。 ● 多道程序系统的优点:资源利用率高、吞吐量 大等。
4
2.1 进程概念
2.1.1 程序顺序执行的特征 ■ 顺序程序设计
5
2.1 进程概念
2.1.1 程序顺序执行的特征
■ 顺序程序设计
6
三个程序间顺序执行
程序1:I1 C1 P1 程序2: I2 C2 P2 程序3:I3 C3 P3
输入:
计算:
输出:
I1
I2
I3
C1 P1
C2 P2
C3 P3
9个Δt 结束
A
0 Δt 1
下一步
1/8Δt = 0.125道程序/Δt
等待I/O的时间
结束
(6个Δt)
A
AI/O
t
78
11
(a)单道情况
2/9Δt = 0.222道程序/Δt
AB
0 Δt 1 2
AB
AI/O
BI/O
7 89
(b)两道情况
第二章 进程管理作业题
![第二章 进程管理作业题](https://img.taocdn.com/s3/m/2a52be03856a561253d36f5a.png)
操作系统原理第二章作业一、应用题1、进程之间存在哪几种制约关系?各是什么原因引起的?以下活动各属于哪种制约关系?(1)若干学生去图书馆借书(2)两队学生进行篮球比赛(3)流水线生产的各道工序(4)商品生产和消费进程之间存在两种制约关系,即同步和互斥。
同步是由于并发进程之间需要协调完成同一个任务时引起的一种关系,为一个进程等待另一个进程向它直接发送消息或数据时的一种制约关系。
互斥是由于并发进程之间竞争系统的临界资源引起的,为一个进程等待另一个进程已经占有的必须互斥使用的资源时的一种制约关系。
1)是互斥关系,同一本书只能被一个学生借阅,或者任何时刻只能有一个学生借阅一本书。
2)是互斥关系,篮球是互斥资源。
3)是同步关系,一个工序完成后开始下一个工序。
4)是同步关系,生产商品后才能消费。
2、设P、Q、R共享一个缓冲区,P、Q构成一对生产者-消费者,R既为生产者又为消费者,使用P、V操作实现其同步。
The P,V code Using Pascalvar mutex,full,empty:semaphore; full:=1; empty:=0; mutex:=1; cobeginProcedure P Procedure Q Procedure R begin begin begin while true while true if empty:=1 then p(empty); p(full); begin P(mutex); P(mutex); p(empty); Product one;consume one; P(mutex); v(mutex); v(mutex); product; v(full); v(empty); v(mutex);end end v(full); endif full:=1 thenbeginp(full); p(mutex);消费一个产品;v(mutex);v(empty); endcoend3、某工厂有两个生产车间和一个装配车间,两个生产车间分别生产A、B两种零件,装配车间的任务是把A、B两种零件组装成产品,两个生产车间每生产一个零件后都要分别把他们送到专配车间的货架F1、F2上,F1存放零件A,F2存放零件B,F1和F2的容量均可以存放10个零件。
操作系统原理第2_2章_进程管理
![操作系统原理第2_2章_进程管理](https://img.taocdn.com/s3/m/6bd538e60975f46527d3e14e.png)
互斥使用临界资源
• 由于同一个临界资源在多个共享它的进 程中将对应多个临界区,那么怎样才能 保证诸进程间互斥地执行临界区呢? • 这就必须保证“临界区使用标志”是可 被系统中所有进程共享的全局变量,而 且诸进程对该标志的修改操作必须互斥 进行。
临界区使用原则
(也称为互斥条件)
• • • 每次只允许一个进程处于临界区(忙则等 待); 进程只能在临界区内逗留有限时间,不得使 其它进程在临界外无限期等待(有限等待) 如果临界区空闲,则只要有进程申请就立即 让其进入(空闲让进); 进入临界区的进程,不能在临界区内长时间 阻塞等待某事件,必须在一定期限内退出临 界区(让权等待) 不能限制进程的执行进度及处理机的数量
图2.27 互斥算法:第一次改进
分析:第一次改进
• 如果进程在临界区外失败,其他进程不会阻塞。 • 问题1:“忙等” • 问题2:若进程在临界区内失败且相应的flag 为true,则其他进程永久阻塞。 • 问题3:不能保证进程互斥进入临界区。请试 着按以下顺序执行:
硬件方法
• 为了解决软件方法存在的不足,有人提出了硬 件解决方法,通过屏蔽中断或采用专门的机器 指令控制同步与互斥。 • 与软件解决方法比较,这种方法减少了系统额 外开销,但由于需要太强的硬件约束条件,以 及可能导致进程饥饿与死锁现象,一直没有成 为通用的解决方法。
• 另一类解决方法是由操作系统,或专门 的程序设计语言提供的特别支持,包括 信号量方法、管程方法和消息传递方法。
•
•
分析:初步设想
例如(续)
• 根据假设,P1很快又需要进入临界区, 但是P0却只能在10分钟之后,按照turn 规定的顺序,进入临界区执行,退出时 修改turn=1。 • 即,P1必须在临界区空闲的情况下,等 待10分钟,才能使用临界区。这不符和 互斥原则,降低了系统性能。
操作系统原理 第2章 进程管理
![操作系统原理 第2章 进程管理](https://img.taocdn.com/s3/m/ac948c65783e0912a2162abb.png)
1. 调度的类型 (1) 作业调度。又称宏观调度或高级调度。 (2) 进程调度。又称微观调度或低级调度 (3) 交换调度。又称中级调度。 2. 进程调度方式 (1)剥夺方式 (2)非剥夺方式
剥夺方式
• 剥夺方式也称抢占方式,其含义是根据某
2.1.3 进程的状态及其转换
图2.5 进程状态之间的转换
进程的基本状态
1. 就绪状态 当进程已获得除处理机以外的所有资源(处理机被 系统中的其他进程占用),一旦分到了处理机即可 立即执行时,则其处于就绪状态。 2. 执行状态 当一个进程获得必要的资源,并占有处理机(在处 理机上运行)时,则其处于执行状态。 3. 阻塞状态 进程在执行过程中,由于发生某个事件而暂时无 法执行下去时,就处于阻塞状态。
N
返回
转进程调度
图2.6 P(S)原语操作功能图
V(S)原语操作
入口
(1) S.value加1。 (2) 若S.value加1后结果大于0, 则进程继续执行。 (3) 若S.value加1后结果小于或 者等于0,则从该信号量的等 待队列L中唤醒头一个等待进 程,然后再返回原进程继续执 备和共享的文件都可 可能称为临界资源; 有几个进程共同使用的变量、数据、表格、队列 及内存工作区等也是临界资源。
2.3.2 同步的定义
把这种进程间为了完成一个共同的目标,必须互 相合作的协同工作关系、有前后次序的直接制约关系 称为进程的同步。
进程的同步与互斥的不同之处:
进程控制块
• 进程控制块是进程实体的一部分,是操作系统中
重要的记录型数据结构,其中存放了操作系统所 需的、用于描述进程情况和控制进程运行所需的 全部信息。 当系统创建一个新进程时,系统为某个程序(包含 数据段)设置一个PCB,用于进行控制和管理,进 程执行完成时,系统收回其PCB,进程随之消亡。 系统根据PCB感知相应进程的存在,故PCB是进程 存在的惟一标志。
第2章 操作系统进程管理
![第2章 操作系统进程管理](https://img.taocdn.com/s3/m/ed133b02195f312b3169a5e1.png)
并调度 CPU分时运行各个进程。
CPU;
¤ 进程控制块 PCB p52 ¤ 进程调度
¤ CPU用操作系统进程管理模块地址修改 IP寄 存器; ― ―CPU改为执行操作系统进程管理模块中的
1)定时器定时(20ms)发中断请求
指令。
2)CPU切换 IP,运行操作系统的进程调度模块
3)操作系统进程调度模块将 IP切换到下一个进程
硬盘:程序
内存:(4G)
PCB、堆栈 进程
一. 进程的概念
¤ 操作系统也是计算机系统中的一个 进程。
操作系统
硬盘:程序
内存:(4G)
PCB、堆栈 进程
一. 进程的概念
¤ 操作系统也是计算机系统中的一个 进程。
¤ 操作系统进程由 BIOS创建 ¤ 用户进程由操作系统进程创建
操作系统 硬盘:程序
内存:(4G)
硬盘:程序
内存:(4G)
PCB、堆栈 进程
一. 进程的概念
¤ 进程是程序在内存中的副本。 ¤ 程序只有被创建为进程后才能被 CPU运行。 ¤ 进程由操作系统负责创建。 ¤ p52:
每个进程需要占用两块内存: 代码区:存放程序代码; 数据区:存放变量。
P47: 进程 process是正在内存中运行 的程序 program。
Chapter Two Management of Process and Thread
一. 进程的概念
¤ 进程是程序在内存中的副本。 ¤ 程序只有被创建为进程后才能被 CPU运行。 ¤ 进程由操作系统负责创建。
(存放在内存中)
P47: 进程 process是正在内存中运行 的程序 program。
二. 多进程并发运行 p45
操作系统原理第二章进程管理
![操作系统原理第二章进程管理](https://img.taocdn.com/s3/m/43d40bb46294dd88d0d26b63.png)
支撑功能
中断处理
操 作
时钟管理
系 统 |
原语操作:完成特定功能的一段程序。 原语在执行期间是不可分割的。
进 程
资源管理功能
管 理
进程管理
存储器管理
29
设备管理
CUIT 叶斌
03:33
进程的创建
引起进程创建的事件
用户登录
作业调度
操
提供服务
作 系
应用请求(应用程序创建)
操 作 系 统 | 进 程 管 理
25
CUIT 叶斌
I/O请求
活动
挂
阻塞
起
激
静止
活
阻塞
执行 状态
调度 挂 起
唤醒 唤醒
活动 就绪
激 活
挂 起
静止
就绪
03:33
2.3 进程状态及其控制
活动就绪(Readya)和活动阻塞(Blockeda)
静止就绪(Readys)和静止阻塞(Blockeds)
操 作 系 统 | 进 程 管 理
操
n 个用户共同使用。
作 系
由系统进行统一分配(硬件)和由程
统
序自行使用(数据集,变量、队列等)
| 进
程序并发执行与资源共享之间互为存
程
在条件。
管
理
14
CUIT 叶斌
03:33
2.1 前趋图和程序执行
程序并发执行的特点
失去程序的封闭性和可再现性
程序与计算不再一一对应
操
程序并发执行的相互制约
管
理
前
中间
后
打印
6
5
5
操作系统 进程管理PPT课件
![操作系统 进程管理PPT课件](https://img.taocdn.com/s3/m/27c1b49ec8d376eeafaa3152.png)
第三章 进程的描述与控制
17
PCB的内容
进程描述信息:
进程标识符(process ID),唯一,通常是一个整数 进程名,通常基于可执行文件名(不唯一) 用户标识符(user ID);进程组关系
进程控制信息:
当前状态 优先级(priority) 代码执行入口地址 程序的外存地址 运行统计信息(执行时间、页面调度) 进程间同步和通信;阻塞原因
一个具有一定功能的程序关于某个数据集合 的一次运行活动。
进程是一个程序与其数据一道通过处理机的 执行所发生的活动
第三章 进程的描述与控制
7
进程同程序的比较
程序是指令的有序集合,其本身没有任何运行的含 义,是一个静态的概念。而进程是程序在处理机上 的一次执行过程,它是一个动态的概念。
程序可以作为一种软件资料长期存在,而进程是有 一定生命期的。程序是永久的,进程是暂时的。
间断性 失去程序的封闭性 不可再现性
第三章 进程的描述与控制
6
2.1.2 进程的定义
进程的概念是60年代初首先由麻省理工学 院的MULTICS系统和IBM公司的CTSS/360 系统引入的。进程有很多各式各样的定义, 如:
行为的一个规则叫做程序,程序在处理机上 执行时所发生的活动称为进程(Dijkstra)
第三章 进程的描述与控制
16
2.1.5 进程控制块(Process Control Block)
为了描述一个进程和其它进程以及系统资源 的关系,为了刻画一个进程在各个不同时期 所处的状态,人们采用了一个与进程相联系 的数据块,称为进程控制块(PCB)。
系统利用PCB来控制和管理进程,所以PCB 是系统感知进程存在的唯一标志 进程与PCB是一一对应的
操作系统进程管理课件
![操作系统进程管理课件](https://img.taocdn.com/s3/m/7167452b647d27284b7351ea.png)
思考?
1.如果系统中有N个进程,运行的进程最多几个,最 少几个;就绪进程最多几个最少几个;等待进程
最多几个,最少几个? 2. 有没有这样的状态转换,为什么?
等待—运行; 就绪—等待
第二章 进 程 管 理
2.1.5 进程控制块
为了描述一个进程和其它进程以及系统资源的关系,为了 刻画一个进程在各个不同时期所处的状态,人们采用了一 个与进程相联系的数据块,称为进程控制块(PCB)。 系统利用PCB来控制和管理进程,所以PCB是系统感知进 程存在的唯一标志 进程与PCB是一一对应的 1. 进程控制块的作用 进程控制块的作用是使一个在多道程序环境下不能 独立运行的程序(含数据),成为一个能独立运行的基本单 位,一个能与其它进程并发执行的进程。或者说,OS是
S1: a∶=x+2
S2: b∶=y+4 S3: c∶=a+b S4: d∶=c+b
第二章 进 程 管 理
S1 S3 S2 S4
图 2-4 四条语句的前趋关系
第二章 进 程 管 理
2. 程序并发执行时的特征 1) 间断性 2) 失去封闭性 3) 不可再现性
例如,有两个循环程序 A 和 B,它们共享一个变量 N。程 序A每执行一次时,都要做N∶=N+1操作;程序B每执行一次 时, 都要执行Print(N)操作,然后再将N置成“0”。程序A和 B以不同的速度运行。 (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。
操作系统02 进程管理
![操作系统02 进程管理](https://img.taocdn.com/s3/m/3f10d27230126edb6f1aff00bed5b9f3f90f7209.png)
概述
第二进章程管进理 程 管 理
进程控制的任务
对系统中所有进程从创建、存在到消亡的全过程实施有效的管理和控 制。具有创建新进程、对运行进程进行控制、撤销进程的能力。进程控制 由OS系统的内核完成,内核通过原语操作来实现。
处理机的两种状态
系统态——又称管态或内核态,使OS管理程序执行时机器所处的状态。 具有较高特权,能执行一切指令,访问所有寄存器和存储区。
第二进章程管进理 程 ቤተ መጻሕፍቲ ባይዱ 理
第二章 进程管理
2.1 进程的基本概念 2.2 进程控制 2.3 进程同步 2.4 经典进程的同步问题 2.5 进程通信 2.6 线程 的基本概念 2.7 线程的实现
第二进章程管进理 程 管 理
2.1 进程的基本概念
2.1.1 前驱图的定义 2.1.2 程序的顺序执行 2.1.3 程序的并发执行 2.1.4 进程的定义与特征 2.1.5 进程控制块
❖ n++;在printf(n);和n=0;之后,则n值分别 为5,0,1.
❖ n++;在printf(n);和n=0;之间,则n值分别 为5,6,0.
第二进章程管进理 程 管 理
程序A n++;
程序B printf(n); ;
n=0;
❖ n++;在printf(n);和n=0;之前,则N值分别 为6,6,0.
٭一、程序执行有固定的时序。
I1
C1
P1
I2 C2
P2
٭二、特征: ▪ 顺序性、封闭性、可再现性
第二进章程管进理 程 管 理
2.1.3 程序的并发执行
❖ 一、多个程序的并发执行
I1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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.1 前趋图和程序执行
➢ 前趋图的定义
➢ 前趋图(Procedence Graph)是一个有向 无循环图DAG(Directed Acyclic Graph)。
➢ 结点:语句、程序段或进程。 ➢ 初始节点 ➢ 终止节点 ➢ 边:执行顺序。 ➢ 重量:程序量或执行时间。
无并行特征, 是静止的
两者联系 不同的进程可以共享同一个程序,
只要对应的数据集不同
2.2 进程的概念
➢ 进程的组成(进程上下文)
➢ PCB ➢ 程序 ➢ 数据 ➢ 进程控制块PCB
➢ 描述信息 ➢ 控制信息 ➢ 资源管理信息 ➢ CPU现场保护:对CPU的处理
2.2 进程的概念
➢ PCB的组织方式
➢ 由系统进行统一分配(硬件)和由程 序自行使用(数据集,变量、队列等)
➢ 程序并发执行与资源共享之间互为存 在条件。
2.1 前趋图和程序执行
➢ 程序并发执行的特点
➢ 失去程序的封闭性和可再现性 ➢ 程序与计算不再一一对应 ➢ 程序并发执行的相互制约
➢ 执行——暂停——执行
2.2 进程的概念
➢ 进程的定义
➢ 进程的定义: 进程是程序在一个数据集 合上的运行过程,是系统进行资源分配 和调度的一个独立的基本单位。
➢ 进程的特征
➢ 动态性 ➢ 并发特征 ➢ 独立特征 ➢ 异步特征 ➢ 机构特征2.2 ຫໍສະໝຸດ 程的概念➢ 进程与程序的关系
概念
进程
动态实体, 强调执行过程
程序
静态实体, 是指令的有序集合
特征
并发性、独立性、 异步性, 是竞争计算机系统 资源的基本单位
L1 : N:=N+1; Goto L1;
L2 : Print (N); N:=0; Goto L2;
End
End
Coend
End
当N=5时,如果 N=N+1 在 print(N)和 N:=0
前
中间
后
打印
6
5
5
执行后N= 0
0
1
2.1 前趋图和程序执行
例3.设有堆栈S,栈指针top ,栈中存放相应的数 据块地址,程序 popaddr(top)从栈中取地址, pushaddr(blk)将地址放入栈S中。
S0; Cobegin
S1;S2;S3;……;Sn; Coend Sn+1;
S1、S2、……、Sn可以由同一程序段 中的不同语句组成。
2.1 前趋图和程序执行
将任一语句划分为两个变量的集合R (Si)和W(Si): 读集R(Si)= {a1,a2,……,am} 写集W(Si)= {b1,b2,……,bn}
如对语句S1和S2有: R(S1)∩ W(S2) = {Ф} W(S1)∩ R(S2) = {Φ} W(S1)∩ W(S2)= {Φ}
成立,则语句S1和S2可并发执行。
2.1 前趋图和程序执行
例1. 语句 c = a – b 和 w = c + 1 R(c = a – b )= {a, b } W(c = a – b )= { c } R(w = c + 1 )= { c } W(w = c + 1 )= { w } R(w = c + 1 )∩ W(c = a – b )= { c }
➢ 一个复杂的程序通常可以分为若干程序 段,并且必须按照某种先后次序来执行。
➢ 例1:输入——计算——打印 ➢ 例2:语句执行顺序
➢ S1:a := x + y ➢ S2:b := a – 5 ➢ S3:c := b + 1
2.1 前趋图和程序执行
➢ 顺序执行程序的特点:
➢ 程序的顺序性。 ➢ 程序在运行时独占主机资源。 ➢ 程序的执行结果与其执行速度无关。 ➢ 程序执行时的初始条件相同,其结
语句 c = a – b 和 w = c + 1 不能并发执行。
2.1 前趋图和程序执行
例2. S1 : a = x + y
S2 : b = z + 1
S3 : c = a – b
S4 : w = a + c + 1
R(S1)= { x , y }
W(S1)= { a }
R(S2)= { z }
W(S2)= { b }
R(S3)= { a ,b }
W(S3)= { c }
R(S4)= { a, c }
W(S4)={w }
语句 S1 和 S2 能并发执行。
语句 S1 和 S3,S2 和S3,S3 和S4 不能并发执行。
S1
S3 → S4
S2
2.1 前趋图和程序执行
➢ 资源共享
➢ 资源共享是指系统中的硬件资源和软 件资源不再由单个用户所独占,而为 n 个用户共同使用。
➢ 链接方式
➢ 将具有相同状态的PCB,用其中的链接 字,链接成一个队列。