共享内存与网络模型的转换策略
在异步网络编程中,简化编程的方法有很多。之前提到过同步器,它能让非容错的同步网络算法在异步网络中使用。而本文将介绍另一种策略:用异步网络模拟异步共享内存系统,从而使异步共享内存算法能在异步网络中运行。
1. 共享内存模型与网络模型的关系
在异步系统中,共享内存模型和网络模型存在着紧密的联系。双向都有强大的转换结果,部分转换还能保留一些容错特性。这意味着,除了效率上的差异,这两种模型本质上非常相似。
这些转换结果不仅为异步网络提供了更简单的编程模型,还有其他重要意义。例如,从网络模型到共享内存模型的容错转换表明,异步共享内存模型中的某些不可能结果,在异步网络模型中也有对应的不可能结果。
2. 从共享内存模型到网络模型的转换
将异步共享内存系统转换为异步发送/接收网络系统有多种方法,下面将详细介绍。
2.1 问题描述
假设有一个共享内存系统A,它通过n个端口与环境交互,端口编号为1到n,在端口i上与用户自动机Ui交互。每个Ui的外部动作就是与A交互的动作。同时,允许A的每个进程i有任意数量的任务,并且考虑了stopi输入动作,每个stopi事件会永久禁用进程i的所有任务。
为了使转换正确工作,对A有一个技术限制:对于每个端口i,存在一个函数turni,对于组合系统的任何有限执行α,它会给出system或user的值,以指示在α之后下一步由谁执行。如果turni(α) = system,则Ui在α之后的状态中没有启用的输出步骤;如果turni(α) = user,则A的进程i在α之后的状态中没有启用的输出或内部步骤。
一般问题是设
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



