- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * 例如,杂技的抛球,每增加一个新球,演员处理球的控制的复杂性会以指数级增长。 异步:如握手信号 对控制驱动部分建模,通常, 用包括主动类的类图捕捉控制流的静态结构 用包括主动对象的顺序图或通信图捕捉控制流的动态行为 控制驱动部分的设计 1)OOA定义的主动对象 OOD阶段的主动对象有的保留,有的转为被动对象,还有可能增加新的主动对象。 2)系统的并发需求所要求的多控制流 若要求多项工作同时进行,则每一项工作就是一个控制流。例如,销售与统计。 3)系统分布方案所要求的多控制流 每一个分布站点至少有一个控制流 如何进行控制驱动部分的设计 1 识别控制流 控制驱动部分的设计 4)根据任务的紧急程度设置控制流 高优先控制流,低优先控制流,紧急控制流; 5)为实现方便设立的控制流 例如:负责处理机之间通讯的控制流 6)对异常事件的处理 由于异常事件的发生,不能在程序的某个可预知的控制点进行处理,应该设立一个专门的控制流进行处理异常事件。 控制驱动部分的设计 问题 划分 通讯 组合 映射 7)实现并行计算 通常用一个进程实现一个计算任务,用线程实现各子任务。 控制驱动部分的设计 2 审查与调整 过度并发性意味着执行效率的损失; 考虑控制流之间职责的均衡分布情况,它们之间协作的情况,以保证每个控制流是高内聚的,且与相关的控制流是松耦合的; 每个控制流应该有以上列举的理由之一,除非由明确的其他理由。 控制驱动部分的设计 8)设置起协调者作用的控制流 若有多个控制流需要相互交换信息,可考虑增设一个或多个控制流,对相应的控制流起协调者的作用。 l 描述控制流 对控制流命名,并进行简要说明。 为控制流指定操作 对设计部分的每个操作指定它属于哪个控制流。要保证每个操作属于一个控制流。 2 定义各控制流的细节 若控制流由事件驱动,则要描述触发控制流的条件。例如,若控制流由时钟驱动,则可能要描述触发之前所经历的时间间隔。 考虑描述控制流从哪里取数据和往哪里送数据之类的情况 …… 3 定义控制流协调情况 控制驱动部分的设计 3 定义各控制流 @类名 属性 …… @操作 …… 类名《process》 属性 …… 操作 …… 类名《thread》 属性 …… 操作 …… 进程或线程的表示法 控制驱动部分的设计 4 控制流间的通信 控制流间的通信机制主要有4种: 操作调用 一个控制流中的对象调用另一个控制流中的对象的操作,是通过发送了一条同步消息来实现的。具体的执行步骤为: (1)调用者调用操作 (2)调用者等待接收者接收这个调用 (3)接收者的操作被唤醒 (4)计算结果返回给调用者 (5)调用者继续它的执行。 控制驱动部分的设计 邮箱 一个控制流的对象异步地向另一个控制流中的对象发送一个信号。具体的执行步骤为: (1)请求者发送信号,然后就继续它自己的执行; (2)接收者只有在准备好时或在适当的时候,才到指定的邮箱去接收信号并进行处理,完成后可能向请求者发信号来回传处理结果,接着向下执行。 这样的邮箱机制也可以是同步的,但收发信号的双方事先要做好约定。 控制驱动部分的设计 共享存储器 两个或几个控制流中的对象利用一块公共的存储器,作为通信区域。 通常传输具有较复杂和较大的数据结构的数据时,才使用共享存储器方式。 使用此方式,要注意同步问题。 远程过程调用 用于在不同计算机中的并发进程: (1)调用进程标示它想要请求的一个对象的操作,然后把它放在远程过程调用库中; (2)远程过程调用机制在网络上寻找目标对象,找到后将请求打包发送给目标对象; (3)目标方接到后将请求转换成本地格式,执行所请求的操作;执行完毕后,将结果以上述同样的方式返回给发送方。 控制驱动部分的设计 对线程间的通讯建模 可以使用邮箱、共享存储器或操作调用进行线程间的通讯。 thread c:BlackboardController thread s:Blackboard thread b :KnowledgeSource c:初始化 c:开始搜索 c:evaluate() b:提示线索 b:放置部分解决方案 s:初始化完毕 表示进程或线程的一种方法是用通讯图 Blackboard(黑板)负责保存系统输入、问题求解的局部和中间结果以及反映问题求解的状态。 KnowledgeSource(知识源)包含对问题求解的条件和执行的操作,以及对控制决策进行评价的知识。 Blac
您可能关注的文档
最近下载
- 《高等数学(上册)》(阳平华)645-4教案 第六章 第25课 定积分的换元积分法和分部积分法.doc VIP
- 《高等数学(上册)》(阳平华)645-4教案 第六章 第24课 微积分基本公式.doc VIP
- 天津市南仓中学2024-2025学年高二上学期10月月考数学试题(无答案).docx VIP
- 欧洲规范-NF P94-078-中文版.pdf VIP
- 腔隙性脑梗死课件.pptx VIP
- 过顶板破碎段施工安全技术措施.doc VIP
- 2025年湖北省十一校届高三语文联考“世界的馈赠”考场作文评析与升格训练.docx VIP
- 腔隙性脑梗死演示课件.pptx VIP
- 2024第三季度医疗质量与安全管理委员会会议记录[1].docx VIP
- 天津市南仓中学2024-2025学年高二上学期10月月考物理试题(无答案).docx VIP
文档评论(0)