已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七讲并发执行问题,目的与要求:了解并行程序的高级语言表示与操作系统支持下的实现;了解同步与互斥问题。重点与难点:并行程序中的同步与互斥作业:1,2,3,例举两个现实生活中需要同步与互斥的例子。,第四章进程同步与通讯、进程死锁并发的需求,操作系统应尽量支持用户态程序最大限度地并行执行。程序设计要利用操作系统对并行运行的支持(以进程或线程方式),安排并行事务并行执行。操作系统核心程序也要尽可能地并发运行,4.1并发编程,计算任务存在并行成分,S1和S2两个子任务可并发执行,S1,S3,S2,并发编程有三种方法:程序员写顺序程序,用识别工具识别并发成分,再组织使用操作系统的并发机制。由程序员识别并发成分,用并发程序设计语言设计并发程序,由编译系统安排并发;或直接利用操作系统的系统调用/高级并发程序库设计并发程序。,并发程序设计语言-并发语句,是在传统高级语言基础上增加描述并行的语句。语法形式ParbeginS1;S2;Sn;Parend;Si(i=1,2,n)是单个语句Parbegin和Parend之间的语句可以并发执行,并发语句示例,前面那个计算任务可以描述为:ParbeginS1;S2;Parend;S3,并发语句描述手段的优缺点,并发语句Parbegin/Parend的结构化特征非常好但存在着描述能力不强的缺点,即存在着用Parbegin/Parend语句无法描述的并发优先关系(如下图)。若能辅以其它手段(如本章后续将介绍的信号量机构),则并发语句可以大大增加其描述并发的能力。,并发执行实现,前面是对并发的高级语言描述,要真正实现并发执行,需要通过操作系统支持的进程(或线程)机制。操作系统提供进程(线程)创建,结束和同步的系统调用,可直接提供给用户编写并行程序;或由并行语言编译器将并发语言的语句转化为对操作系统的系统调用。,与进程相关的系统调用,Unix-alike操作系统利用进程(或线程)支持并发执行它提供了如下系统调用:fork():创建一个新进程。该系统调用执行完成后,系统已创建了一个子进程,该子进程继承了父进程的程序空间,复制了父进程的数据段和栈段。也就是说不管是父进程还是子进程,在占有处理机后,都从fork()调用的返回点开始运行,而父进程fork()调用的返回值是子进程的进程标识pid;子进程fork()调用的返回值是0。,exit(status):进程结束。该系统调用发出后,操作系统将从系统中删除调用exit的进程,并将status值传给等待它结束的父进程。wait(R2=amount;R1=R1+R2;balance=R1;B(amount)R1=balance;R2=amount;R1=R1-R2;balance=R1;Parend;,例3:对共享变量balance的互斥访问,例4:有限缓冲区的生产者/消费者问题(生产者和消费者共享一个产品缓冲链),共享N个缓冲区,P1P2PmC1C2Cn,typedefstructitem;/消息类型typedefstructstructbuffer*next;structiteminst;buffer;/缓冲类型structbuffer*P,*C,*First;structitemnextp,nextc;First=nil;,数据结构,new(P);#获得一空缓冲区P.inst=nextp;P.next=First;First=P;while(1);,ParbeginProducer()doproduceaniteminnextp;.,consumetheiteminnextc;while(1);Parend;,Consumer()dowhile(first=nil);#空循环等C=First;first=first.next;nextc=C.inst;dispose(C);#释放缓冲区,T0:consumerC=FirstT1:producerP.next=FirstT2:producerFirst=PT3:consumerFirst=First.next则会发
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 租房合同中提前退房(3篇)
- 2025财务人员劳动合同
- 2025企业无息借款合同
- 2025汽车零部件供应采购合同范本
- 2025玉米采购合同示范文本
- 写作思维的训练
- 滚珠直线导轨技术解析
- 古诗绘本目录设计
- 2025新款综合演艺设备租赁合同
- 环评上岗证考试简答题及答案
- 2025年智能配电系统行业分析报告及未来发展趋势预测
- DB37∕T 4383-2021 混凝土结构硅烷浸渍技术规程
- 2025年甘肃省冶金高级技术学院招聘事业编制工作人员15人笔试考试参考题库及答案解析
- 数据全周期管理制度
- 老年医学科老年骨折的康复训练计划
- 法学概论(第七版)课件全套谷春德第1-7章我国社会主义法的基本理论-国际法
- 政治隐喻分析-洞察与解读
- 电气接线人员知识培训课件
- 2024-2025学年河北省沧州市青县多校人教版六年级上册期中测试数学试卷(含答案)
- 项目施工人员岗前培训与考核方案
- 政协提案知识及撰写培训课件
评论
0/150
提交评论