- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序设计方法学(七)课件
例子 procedure Sub is Bad_Day_Value: exception; -other declarations for Sub begin -statements for normal processing inSub exception when Bad_Day_Value= -handler for bad day values when others = -handler for all other execption end * * 华东师大计算机科学技术系 协同程序(coroutine) 如果去掉限制c),给允许子程序在全部执行完前返回其调用者,这样的子程序称为协同程序。对并行程序来说,协同程序是一种子程序还要基本的程序结构。 协同程序A 协同程序B 恢复B 恢复B 恢复A 恢复A 恢复C 恢复B * * 华东师大计算机科学技术系 子程序调度 如果放弃了子程序必须在调用后立即执行的要求,就产生了子程序调度问题,一般其他子程序调度的技术有:(异常处理、协同程序也可视为一类调度) 使一个子程序在另一个子程序之后(前)运行,如: call B after A 当某条件成立才执行子程序, 如:call B when X=5 and Z0 基于模拟时间标尺(time scale)的调度, 如:call B at time =25 or call B at time =CurrentTime+10 按优先级调度子程序,如:call B with priority 7 * * 华东师大计算机科学技术系 §4. 通讯顺序进程(CSP)Communicating Sequential Processes CSP是Hoare提出的,它被认为分布式进程和并行语言的思想基础/是并行程序设计语言中的一个重要概念的整理、是一个发展的里程碑。对于理解其他并行语言、概念很有好处。 基本设计思想: 1)? 采用Dijkstra的卫式命令语言,作为顺序控制结构,以卫式语言中的不确定语义作为CSP的不确定语义。 2)? 引入并行命令来指明顺序命令(进程)的并发执行。所有进程同时开始,一个并行命令仅当其所有进程结束时才结束。进程间不能以修改全程变量的方式通信 。 * * 华东师大计算机科学技术系 3)? 引入简单的I/O用于并发进程的通讯。通讯的方法为:A进程把B进程作为作为输出目标、B进程把A进程作为输入源时,通讯才能发生。 4)? 简单的模式匹配的特性,用以判别输入信息的结构及访问其成分。 一、CSP的基本概念 采用BNF来定义语法,忽略了声明和表达式部分 command?simple-comm|structured-comm simple-comm?null-comm|assignment-comm |input-comm|output-comm structured-comm?alternative-comm | repetitive-comm|parallel-comm * * 华东师大计算机科学技术系 null-comm?skip command-list?{declaration;| command;}command 语义: 命令表是按书写顺序执行 命令的执行可以成功也可以失败 结构命令包括部分或全部成份命令的执行,其中任一执行失败,则整个结构命令失败 * * 华东师大计算机科学技术系 并行命令的定义 ?parallel-comm?[process{||process}] process?process_labelcommand_list process_label?empty|ID:: |ID(label_subscript{,label_subscript }):: label_subscript?int_constant|bound_var bound_var?ID range?bound_var: lower_bound..upper_bound lower_bound?int_constant upper_bound?int_constant * * 华东师大计算机科学技术系 由定义,CSP中并行进程是使用符号“||”连接的。 例如:若进程Q、P是并行的,可写为 P||Q 进程由进程标号和进程体组成,进程标号可以描述进程数组。 例1.[R||X::P||Y(i:0..4)::Q] 语义: a) 每个并行命令进程必须不同于其他在此
原创力文档


文档评论(0)