Communication Abstraction and Process Refinement

J. Yantchev
{"title":"Communication Abstraction and Process Refinement","authors":"J. Yantchev","doi":"10.1109/DMCC.1991.633097","DOIUrl":null,"url":null,"abstract":"Concurrent systems are collections of data, processes, and communication channels. Top-down, hierarchical design of concurrent systems needs powerful abstraction facilities provided by the implementation language. While most languages provide some structuring mechanisms for data and process abstraction, none seems to provide any equivalent mechanisms for communication structuring. Communication channels are to communicate data and, therefore, all data structuring mechanisms provided by a programming language must be available to structure channels as well. In order to preserve behaviour through successive levels of design refinement, these means of communication structuring must preserve the abstraction of atomic transfers of values of arbitrary types. Int r o duct ion Most concurrent programming languages [5, 6, 7, 11 support the abstraction of concurrent systems as collections of data, processes, and communication channels. However, while they provide some structuring mechanisms for data and process abstraction, none seems to provide any equivalent mechanisms for communication structuring. Interprocess communication is almost universally viewed as a synchronised atomic exchange of values between two concurrently active processes. This affects the whole design process and intervenes with the freedom and ease in the refinement of the process structure. The design transformation steps may be non-trivial in some cases and, therefore, difficult to arrive at and verify. In addition, the implementation may be less efficient, both in storage and speed, because of unnecessary data copying and context creation for process spawning. The data structuring mechanisms supported by the contemporary programming languages provide a uniform view on data and data types. Structured data types may consist of components of arbitrary types, including themselves, and values of such types are treated as wholes and may be passed as parameters, returned as results of functions, and assigned to variables. The same applies to processes [5, 71. No distinction of kind need be made between systems with and without substructure and, indeed, a system which at one level of abstraction may be considered to consist of a process and the environment in which it evolves, may be considered as a single system at a higher level of abstraction. A process which for one purpose is taken to be atomic","PeriodicalId":313314,"journal":{"name":"The Sixth Distributed Memory Computing Conference, 1991. Proceedings","volume":"102 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1991-04-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"The Sixth Distributed Memory Computing Conference, 1991. Proceedings","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/DMCC.1991.633097","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

Concurrent systems are collections of data, processes, and communication channels. Top-down, hierarchical design of concurrent systems needs powerful abstraction facilities provided by the implementation language. While most languages provide some structuring mechanisms for data and process abstraction, none seems to provide any equivalent mechanisms for communication structuring. Communication channels are to communicate data and, therefore, all data structuring mechanisms provided by a programming language must be available to structure channels as well. In order to preserve behaviour through successive levels of design refinement, these means of communication structuring must preserve the abstraction of atomic transfers of values of arbitrary types. Int r o duct ion Most concurrent programming languages [5, 6, 7, 11 support the abstraction of concurrent systems as collections of data, processes, and communication channels. However, while they provide some structuring mechanisms for data and process abstraction, none seems to provide any equivalent mechanisms for communication structuring. Interprocess communication is almost universally viewed as a synchronised atomic exchange of values between two concurrently active processes. This affects the whole design process and intervenes with the freedom and ease in the refinement of the process structure. The design transformation steps may be non-trivial in some cases and, therefore, difficult to arrive at and verify. In addition, the implementation may be less efficient, both in storage and speed, because of unnecessary data copying and context creation for process spawning. The data structuring mechanisms supported by the contemporary programming languages provide a uniform view on data and data types. Structured data types may consist of components of arbitrary types, including themselves, and values of such types are treated as wholes and may be passed as parameters, returned as results of functions, and assigned to variables. The same applies to processes [5, 71. No distinction of kind need be made between systems with and without substructure and, indeed, a system which at one level of abstraction may be considered to consist of a process and the environment in which it evolves, may be considered as a single system at a higher level of abstraction. A process which for one purpose is taken to be atomic
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
通信抽象和过程细化
并发系统是数据、进程和通信通道的集合。自顶向下、分层的并发系统设计需要实现语言提供强大的抽象功能。虽然大多数语言为数据和过程抽象提供了一些结构化机制,但似乎没有一种语言为通信结构化提供了任何等效的机制。通信通道是用来通信数据的,因此,编程语言提供的所有数据结构机制也必须对结构化通道可用。为了通过连续的设计细化级别来保持行为,这些通信结构手段必须保持任意类型值的原子传输的抽象。大多数并发编程语言[5,6,7,11]都支持将并发系统抽象为数据、进程和通信通道的集合。然而,虽然它们为数据和过程抽象提供了一些结构化机制,但似乎没有一个为通信结构化提供任何等效的机制。进程间通信几乎被普遍视为两个并发活动进程之间同步的原子交换值。这影响了整个设计过程,妨碍了过程结构的自由和简化。在某些情况下,设计转换步骤可能非常重要,因此很难到达和验证。此外,由于不必要的数据复制和进程生成的上下文创建,该实现在存储和速度方面可能效率较低。现代编程语言支持的数据结构机制提供了数据和数据类型的统一视图。结构化数据类型可以由任意类型的组件组成,包括它们自己,这些类型的值被视为整体,可以作为参数传递,作为函数的结果返回,并分配给变量。这同样适用于进程[5,71]。不需要区分有子结构和没有子结构的系统,事实上,一个系统在一个抽象层次上可以被认为是由一个过程和它所处的环境组成的,在更高的抽象层次上可以被认为是一个单一的系统。为了一个目的而被认为是原子的过程
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Scalable Performance Environments for Parallel Systems Using Spanning-Trees for Balancing Dynamic Load on Multiprocessors Optimal Total Exchange on an SIMD Distributed-Memory Hypercube Structured Parallel Programming on Multicomputers Parallel Solutions to the Phase Problem in X-Ray Crystallography: An Update
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1