第4章并行性:互斥和同步介绍

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例:二人合作存款 (上例:) cobegin PA: N: = count N: = N+100 count: = N; PB: M: = count M: = M+200 由 count: = M coend
PB: begin M: = count ; M: = M+200 ; count: = M ; end cound end
+ + 速度:设原count = 300$,A 100,B 200
时间:t0 A: N = count; N: = N+100 N = 400$ t1 B: M = count; M: = M+200; count = M, count = 500$ t2 A: count: = N count = 400$ 与执行速度有关 (我们不能保证它们每次执行时间相同, 进展速度一致)。
S
t3
t1 t2
t4 t5 F
(2) 并行语言: Diskstra 于1965年提出类Pascal的并行语句。 COBEGIN s1;s2;…;sn COEND
S s 1 … sn F
COBEGIN / COEND相当于一个括号,表示其中的所有 语句s1, s2,… sn是可并行执行的,COBEGIN / COEND 可以嵌套,而语句s1, s2,… sn可为任何简单语句、复合 语和并行语句。
操作系统原理
第4章 并行性:互斥和同步
主讲:房道伟 Daowei_fang@163.com
主要内容

顺序程序设计和并行程序设计 进程间的同步与互斥 信号量 (P,V操作) 同步机构应用 进程间的通讯
在多道环境下,系统具有了许多比单道环境 下更为复杂的情况。我们把多道环境下的程序设 计叫做并行程序设计,因为它主要是以各程序 (进程)间的并行运行为其特点。把传统的程序设 计方法叫做顺序程序设计。
因为并行执行 (共享资源)使得:(在不做处理条件下) (i) 失去封闭和现场的可再现性:
例:设夫妻两人的共同存款保存在count(共享资源)变量 中,为此,他们编写了一个增加款项的程序如下:
begin covnt, N, M: integer cobegin PA: begin N: = count; N: = N+100; count: = N; end
§4.1 顺序程序设计和并行程序设计
一、顺序程序设计
1. 顺序程序 (冯诺伊曼) 匈牙利数学家 Vonnevman 46年
(a) 计算 ––– 对某一有限数据的集合所施行的,目的 在于解决某一问题的一组有限操作的集 合。 程序是算法的形式化描述,一个程序的执行过程 即一个“ 计算”,即算法的实现。
二、并行程序设计
1. 为了提高系统的利用率和处理能力:
采用:(1) 硬件 ––– 并行操作 (2) 软件 ––– 程序段在执行时间上有重叠 (不一定全部重叠)。 并行性:是指在同一时间间隔内或同一时刻完成两 种或两种以上性质相同或不同的工作,只要 时间上互相重迭,都存在并行性。
多道程序的特点:首先是并行。 A B
S
S
P1 P1 P2 P3 P4 P5 P2
S P1 P2
S
P4 P5
P1
P2 P3 F a. 串行 F b. 并行
P3 P4 F
P3
P6
P7
F
d. 一般的
c. 串、并行
例:(a+b) (c+d) (e/f)
– + a bc + d e / f
t1 = a + b t2 = c + d t3 = e / f t4 = t1 t2 t5 = t4 – t3
§4.2 进程间的同步与互斥
一、概念 进程并行运行时相互制约 (进程发消息限制另一 进程运行),而制约关系归结为互斥和同步:
Hale Waihona Puke Baidu
同步 ––– 指两个事件的发生有着某种时序上的关系 (先,后)。
互斥 ––– 资源的使用要排它使用,防止竞争冲突(不 同时使用,但无先后次序)。 (作为一种特殊 同步)
二、临界段问题 1. 只能排它使用的资源称为临界资源。 (各进程要共享资源)。 临界资源 打印机、磁带机。 (因时因地不同) 只能排它使用的变量、表格、队列。 非临界资源:磁盘 临界区(段) ––– 将访问临界资源的那段程序从概念上 cs 分离出来称为临界。(对临界区的访问 必须是互斥的)
多个程序在并行执行
多个设备在并行操作
I/O A I/O B
I1
I2
C1
I3
C2 O1 C3 O2 O3
t
并行的
若顺序执行3分钟 ( job1, job2, job3 ) 并行执行5/3分钟 ( job1, job2, job3 )
2. 程序并行性的表示 (1) 图示:在一个程序的诸操作间,往往只要求部分有序, 既有并行执行部分,又有串行执行部分。
(b) 顺序执行: 计算中的各个操作有一定顺序,否则无法正确 执行。
I1
C1 job1
O1
I2
C2 job2
O2
图4.1 顺序处理模式
(c) 顺序程序的特点:
(i) 顺序性: 处理机的操作严格按程序规定的顺序执行。即每 一操作都必须在下一操作开始之前结束。 (ii) 封闭性: 程序一旦开始执行,计算结果不受外界影响初始 条件给定,各资源状态仅能由程序改变。 • 资源独占 (iii) 可再现性: 只要给了相同的外界条件,结果亦相同。 • 与执行速度无关
例:
BEGIN COBEGIN t3; BEGIN COBEGIN t1; t2 COEND; t4 END COEND t5 END
3. 并行程序设计的特点: (1) 并行性:
顺序运行的模式被打破,各进程可并行地、异 步地在系统内运行,并以不同速度向前推进。
(2) 共享性: 在系统中存在的各进程不但共享硬资源:主存、 CPU、外设,而且共享软资源:程序副本和数据集。
(ii) 程序与计算不再一一对应: 程序 ––– 静态的,是指令的有序集合。
计算 ––– 执行过程,动态。
并行执行 ––– 程序可对应多个计算。 (例如一个编译程序可为2个作业服务, 每个作业调用一次,就执行一次,即这 个编译程序对应两个“ 计算”)。 顺序执行 ––– 程序与计算一一对应。
(iii) 程序并发执行时相互制约: 并行程序设计所带来的这些新问题,都最后 归结为能否正确处理好进程间的同步与互斥关系 问题。下面我们通过进程间的同步与互斥关系来 进一步剖析并行程序设计中的问题。
相关文档
最新文档