下载此文档

并发执行问题说课讲解.ppt


文档分类:IT计算机 | 页数:约19页 举报非法文档有奖
1/19
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/19 下载此文档
文档列表 文档介绍
第七讲 并发执行问题
目的与要求:了解并行程序的高级语言表示与操作系统支持下的实现;同步与互斥问题。
重点与难点:并行程序中的同步与互斥
作业:例举两个现实生活中需要同步与互斥的例子。
第4章 进程同步与通讯、进程死锁 的进程标识pid;子进程fork()调用的返回值是0。
exit(status):进程结束。该系统调用发出后,操作系统将从系统中删除调用exit的进程,并将status值传给等待它结束的父进程。
wait(&status):等待子进程结束。当有多个子进程时,任一个子进程结束即将控制返回调用者,并将子进程调用exit(status)时的status值送到&status指针所指单元中。在控制返回调用者时,同时将所等到的子进程pid作为wait()系统调用函数的返回值。
waitpid(pid,…):等待pid所指定的进程结束。
多进程实现前述的读写并发程序
pid = fork( );
if pid = = 0 then
{ read(b);
exit(0);}
else
read(a);
return_pid = wait(&status);
c = a+b;
write(c);
进程的互斥与同步
互斥关系(亦称间接制约关系):
即进程间因相互竞争使用独占型资源(互斥资源)所产生的制约关系。
同步关系(亦称直接制约关系):
指完成同一任务的伙伴进程间,因需要在某些位置上协调它们的工作而相互等待、相互交换信息所产生的制约关系。
临界段问题(互斥问题)
例1: P1,P2两进程使用同一打印机。如果不互斥使用会交叉输出。
Entry code
exit code
使用打印机
P1
Entry code
exit code
使用打印机
P2
Parbegin
Program A: begin
N:=count;
N:=N+$100;
count:=N;
end;
Program B: begin
M:=count;
M:=M+$200;
count:=M;
end;
Parend;
例2: 对共享变量count的互斥访问。
互斥执行
例3:有限缓冲区的生产者/消费者问题(生产者和消费者共享一个产品缓冲队列)。
INST
NEXT
共享N个缓冲区
P1 P2 … Pm
C1 C2 …Cn
INST
Nil
INST
NEXT
First
INST
NEXT
First
type item=…; #缓冲区中数据的类型
type buffer=record
inst: item;
next: pointer to buffer;
end;
var P,C,First:pointer to buffer;
nextp,nextc:item;
First:= nil;
数据结构
new(P); #获得一空缓冲区
:=nextp;
:=First;
First:=P;
until false;
end;
Parbegin
Producer:
begin
repeat

produce an item in nextp;
...

consume the item in nextc;

until false;
end;
Parend;
Consumer:
begin
repeat
while first=nil do skip; #空循环等
C:=First;
first:=;
nextc:=

并发执行问题说课讲解 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数19
  • 收藏数0 收藏
  • 顶次数0
  • 上传人福亮
  • 文件大小327 KB
  • 时间2022-01-20
最近更新