并发进程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
与同一变量有关的临界区分散在各进程的程序段 中,而各进程的执行速度不可预知。 如果保证进程在临界区执行时,不让另一个进程进 入临界区,即各进程对共享变量的访问是互斥的,就
2011年 23日星期四 2011年6月23日星期四
不会造成与时间有关的错误。 兰州理工大学计算机与通信学院
操作系统原理
Principle of Operating System
P3{ receive,output }
2011年 23日星期四 2011年6月23日星期四 兰州理工大学计算机与通信学院
操作系统原理
Principle of Operating System
与时间有关的错误
对于一组交往的并发进程,执行的相对速 度无法相互控制,各种与时间有关的错误就 可能出现。 与时间有关错误的表现形式: 结果不唯一 永远等待
进程的并发性
进程执行的并发性:一组进程的执行在时间上是 重叠的。 从宏观上看,并发性反映一个时间段中几个进程 都在同一处理器上,处于运行还未运行结束状态。从 微观上看,任一时刻仅有一个进程在处理器上运行。 并发的实质是一个处理器在几个进程之间的多路 复用,并发是对有限的物理资源强制行使多用户共 享,消除计算机部件之间的互等现象,以提高系统资 源利用率。
Baidu Nhomakorabea测试并建立指令
TS指令的处理过程 TS(x): 若x=true,则x:=false; return true;否则 return false; TS指令管理临界区时,可把一个临界区与 一个布尔变量s相连,由于变量s代表了临界资源 的状态,可把它看成一把锁。
2011年 23日星期四 2011年6月23日星期四 兰州理工大学计算机与通信学院
2011年 23日星期四 2011年6月23日星期四
兰州理工大学计算机与通信学院
操作系统原理
Principle of Operating System
记录型信号量
为一个记录型数据结构,一个分量为整形 设 s为一个记录型数据结构 一个分量为整形 为一个记录型数据结构 另一个为信号量队列queue, P和V操 量value,另一个为信号量队列 另一个为信号量队列 和 操 作原语定义: 作原语定义: P(s);将信号量s减去 ,若结果小于 ,则调 ;将信号量 减去 若结果小于0, 减去l, 的进程被置成等待信号量s的状态 用P(s)的进程被置成等待信号量 的状态。 的进程被置成等待信号量 的状态。 V(s): 将信号量 加 1, 若结果不大于 , 则 : 将信号量s加 , 若结果不大于0, 释放一个等待信号量s的进程 的进程。 释放一个等待信号量 的进程。
临界区的调度原则: 临界区的调度原则: 一次至多允许一个进程进入临界区内 一个进程不能无限地停留在临界区内 一个进程不能无限地等待进入临界区 有空让进、 即--有空让进、无空等待、 有空让进 无空等待、 择一而入、算法可行。 择一而入、算法可行。
2011年 23日星期四 2011年6月23日星期四 兰州理工大学计算机与通信学院
操作系统原理
Principle of Operating System
第三章 并发进程
3.1 并发进程 3.2 临界区管理 信号量与PV PV操作 3.3 信号量与PV操作 3.4 死锁
2011年 23日星期四 2011年6月23日星期四
兰州理工大学计算机与通信学院
操作系统原理
Principle of Operating System
操作系统原理
Principle of Operating System
实现临界区管理的硬件设施 的硬件设施 实现临界区
(1) 关中断
(2) 测试并建立指令 (3) 对换指令
2011年 23日星期四 2011年6月23日星期四
兰州理工大学计算机与通信学院
操作系统原理
Principle of Operating System
2011年 23日星期四 2011年6月23日星期四 兰州理工大学计算机与通信学院
操作系统原理
Principle of Operating System
进程互斥(Mutual Exclusion) 进程互斥
解决进程间竞争关系(间接制约关系)的手段。 进程互斥指若干进程要使用同一共享资源时, 任何时刻最多允许一个进程使用,其他进程必须 等待,直到占有资源的进程释放该资源。
操作系统原理
Principle of Operating System
信号量与PV PV操作 3.3 信号量与PV操作
同步与同步机制 记录型信号量与PV操作 记录型信号量与PV操作 PV 用记录型信号量实现互斥 记录型信号量解决生产者记录型信号量解决生产者-消费者问题
2011年 23日星期四 2011年6月23日星期四
2011年 23日星期四 2011年6月23日星期四
兰州理工大学计算机与通信学院
操作系统原理
Principle of Operating System
第二种是协作关系
某些进程为完成同一任务需要分工协作。进程的同 步是解决进程间协作关系(直接制约关系)的手段。 进程同步指两个以上进程基于某个条件来协调它们 的活动。一个进程的执行依赖于协作进程的消息或信 号,当一个进程没有得到来自于协作进程的消息或信 号时需等待,直到消息或信号到达才被唤醒。
操作系统原理
Principle of Operating System
顺序程序设计特点
程序执行的顺序性 程序环境的封闭性 程序执行结果的确定性 计算过程的可再现性
2011年 23日星期四 2011年6月23日星期四
兰州理工大学计算机与通信学院
操作系统原理
Principle of Operating System
操作系统原理
Principle of Operating System
对换指令
对换( 对换(Swap)指令的功能是交换 ) 两个字的内容: 两个字的内容: Swap (a,b): temp:=a; a:=b; b:=temp;
2011年 23日星期四 2011年6月23日星期四 兰州理工大学计算机与通信学院
2011年 23日星期四 2011年6月23日星期四 兰州理工大学计算机与通信学院
操作系统原理
Principle of Operating System
整型信号量
为一个整形量, 设 s为一个整形量,除初始化外,仅能通过 、 为一个整形量 除初始化外,仅能通过P、 V操作访问,P和V操作原语定义: 操作访问, 和 操作原语定义 操作原语定义: 操作访问 P(s):while s≤0 do null operation : s:=s-1; : ; V(s): s:=s+1; : : ;
2011年 23日星期四 2011年6月23日星期四
兰州理工大学计算机与通信学院
操作系统原理
Principle of Operating System
交往的并发进程
交往的并发进程:一组并发进程共 享某些变量,一个进程的执行可能影 响其他并发进程的结果。 例如:P1 { input,send } P2{ receive,process,send }
2011年 23日星期四 2011年6月23日星期四 兰州理工大学计算机与通信学院
操作系统原理
Principle of Operating System
生产者--消费者问题描述(有界缓冲问题) 生产者--消费者问题描述(有界缓冲问题) --消费者问题描述 有n个生产者和m个消费者,连接在一 个生产者和m个消费者, 个有k个单位缓冲区的有界缓冲上。其中, 个有k个单位缓冲区的有界缓冲上。其中, pi和cj都是并发进程,只要缓冲区未满, pi和cj都是并发进程,只要缓冲区未满, 都是并发进程 生产者pi生产的产品就可投入缓冲区; 生产者pi生产的产品就可投入缓冲区;只 pi生产的产品就可投入缓冲区 要缓冲区不空,消费者进程cj就可从缓冲 要缓冲区不空,消费者进程cj就可从缓冲 cj 区取走并消耗产品。 区取走并消耗产品。
2011年 23日星期四 2011年6月23日星期四 兰州理工大学计算机与通信学院
操作系统原理
Principle of Operating System
记录型信号量与PV操作 记录型信号量与PV操作 PV
前节种种方法解决临界区调度问题的缺点: 前节种种方法解决临界区调度问题的缺点: 对不能进入临界区的进程, 1) 对不能进入临界区的进程 , 采用忙式等待测试 法,浪费CPU时间。 浪费CPU时间。 CPU时间 2) 将测试能否进入临界区的责任推给各个竞争的 进程会削弱系统的可靠性,加重了用户编程负担。 进程会削弱系统的可靠性,加重了用户编程负担。 1965年E.W.Dijkstra提出了新的同步工具--信号量 1965年E.W.Dijkstra提出了新的同步工具--信号量 提出了新的同步工具-和P、V操作。 操作。
兰州理工大学计算机与通信学院
操作系统原理
Principle of Operating System
同步和同步机制
著名的生产者--消费者问题是计算机操作 著名的生产者--消费者问题是计算机操作 -系统中并发进程内在关系的一种抽象, 系统中并发进程内在关系的一种抽象,是典 型的进程同步问题。 型的进程同步问题。 在操作系统中, 在操作系统中,生产者进程可以是计算进 程、发送进程;而消费者进程可以是打印进 发送进程; 程、接收进程等等。解决好生产者--消费者 接收进程等等。解决好生产者--消费者 -问题就解决好了一类并发进程的同步问题。 问题就解决好了一类并发进程的同步问题。
2011年 23日星期四 2011年6月23日星期四 兰州理工大学计算机与通信学院
操作系统原理
Principle of Operating System
无关的并发进程
并发进程分类:无关的,交往的。 并发进程分类:无关的,交往的。 分类 无关的并发进程: 无关的并发进程:一组并发进程分别在不同 的变量集合上操作,一个进程的执行与其他并 的变量集合上操作, 发进程的进展无关。 发进程的进展无关。
2011年 23日星期四 2011年6月23日星期四 兰州理工大学计算机与通信学院
操作系统原理
Principle of Operating System
进程的交往: 进程的交往:竞争与协作
第一种是竞争关系 系统中的多个进程之间彼此无关 系统中的多个进程之间彼此相关 资源竞争的两个控制问题: 一个是死锁(Deadlock)问题,一个是饥饿 (Starvation) 问题,既要解决饥饿问题,又 要解决死锁问题。
进程的顺序性
一个进程在顺序处理器上的执行是严格 按序的,一个进程只有当一个操作结束后, 才能开始后继操作 顺序程序设计是把一个程序设计成一个 顺序执行的程序模块,顺序的含义不但指一 个程序模块内部,也指两个程序模块之间。
2011年 23日星期四 2011年6月23日星期四 兰州理工大学计算机与通信学院
3.1 并发进程
进程的顺序性 进程的并发性 与时间有关的错误 进程的交互( 进程的交互(Interaction Among Processes): ):协作和竞争 Processes):协作和竞争
2011年 23日星期四 2011年6月23日星期四 兰州理工大学计算机与通信学院
操作系统原理
Principle of Operating System
2011年 23日星期四 2011年6月23日星期四 兰州理工大学计算机与通信学院
操作系统原理
Principle of Operating System
信号量: 信号量:一种软件资源 原语: 原语:内核中执行时不可被中断的过程 P操作原语和 操作原语 操作原语和V操作原语 操作原语和 一个进程在某一特殊点上被迫停止执行直 到接收到一个对应的特殊变量值, 到接收到一个对应的特殊变量值 ,这种特 殊变量就是信号量(semaphore),复杂的进 殊变量就是信号量 , 程合作需求都可以通过适当的信号结构得 到满足。 到满足。
2011年 23日星期四 2011年6月23日星期四 兰州理工大学计算机与通信学院
操作系统原理
Principle of Operating System
3.2 临界区管理
资 源”(Critical Resource)。
并发进程中与共享变量有关的程序段叫“临界
区”(Critical Section),共享变量代表的资源叫“临界