分布式系统中进程的同步方法

分布式系统中进程的同步方法
分布式系统中进程的同步方法

分布式系统中进程的同步方法

【摘要】在分布式操作系统中,为了实现进程的同步,首先要对系统中发生的事件进行排序,还要有良好的分布式同步算法。本文对分布式操作系统中的一些常见算法进行了分析,从而解析才能使进程在分布式操作系统中更加正确有效地协同工作。

【关键字】分布式操作系统,进程,同步,算法。

【Abstract】In the distributed operating system,in order to achieve the process of synchronization,First, you want to sort of events that occur in the system,but you also distributed synchronization algorithm.This article analyzes some common algorithms in the distributed operating system, to resolve to make the process more correctly and effectively work together in a distributed operating system.

【Key words】Distributed operating system, Process, Synchronous, Algorithm.

在分布式系统中,处于不同物理位置的若干进程通过传递消息相互通信,进行协同工作完成同一任务。工作过程中,进程产生了大量的事件和消息,这些事件和消息在时间上的先后顺序对工作正确有效的完成往往是有影响的。由于进程所处的物理位置不同带来的时钟差异如各地时钟值的差异和时钟运行精度的差异等)和网络传输延时等方面的原因,一个进程所看到的系统内事件和消息的先后顺序很可能与它们的实际顺序是不一致的,这样就带来了问题,如图1所示。

100 150 300 350 物理时间

图1 分布式进程通信示例

在一个先来先服务的分布式系统中,X地的进程Pi在时刻100时向Z滴的进程Pk发出了请求服务的消息Rq,并盖上了本地的时间戳130,随后Y地的进程Pj也向Pk发出了请求服务消息,并盖上了本地的时间戳120。Pj的消息在时刻300到达Pk,而Pi的消息在时刻350才到达Pk。这样,对Pk而言,不管到达的顺序还是按照时间戳的大小都应该先对Pj进行服务,这显然是不公平的。因此,在分布式系统中必须采取一定的同步机制来保证工作的顺利进行和结果正确。

进程同步大致有两种程度:一种是局部的松散同步,即事件和消息产生的逻辑顺序上简单同步;一种是全局的精确同步,即各进程的本地时钟基于现实世界物理时间标准同步。前一种同步能由Lamport算法和Ricart and Agrawla 算法等算法实现。在这种同步机制中,各进程利用逻辑时钟产生时间戳,能保证按序发送消息,同样接收进程也能按序接收。或者说,接受进程能按序从各个不同进程接收消息,而且从同一进程接收的消息也是顺序的。但这种同步仅仅保证了事件和消息的顺序一致性,而不能反映它们产生的真实时间,因为同步机制中所采用的时间戳只能看作是一个数字编号,并没有和物理时钟精确对应起来。这种同步机制在分布式系统的实际应用中有着很大的局限,因为很多现实的分

布式系统都要求系统内的事件和消息的产生时间是精确的,甚至有些系统的任务结果是否正确直接有赖于这些精确的时间值,比如大型分布式数据库系统、电子商务和证券交易等金融业服务系统、分布式文件系统等。在这些系统中,各进程间的同步就必须达到基于物理时钟同步的程度。以证券系统为例,如果客户机的时钟与服务器的时钟不同步,那么客户按照自己的时钟所提出的服务请求将会被服务器提早或推迟执行,这可能会给客户带来巨大的损失。这时,客户的服务请求是否被顺序公平的响应已失去了意义。

在单机条件下,诸进程运行于同一个处理机和内存环境中,进程通信十分简单。进程之间可以借助于“共享存储器”进行直接通信。而在多机条件下,相互合作的进程可能在不同的处理机上运行,进程间的通信涉及处理机的通信问题。在松散耦合系统中,进程间通信还可能要通过较长的通信信道,甚至网络。因此,在多机条件下,广泛采用间接通信方式,即进程间是通过消息进行通信的。在分布式操作系统中,为了实现进程的同步,首先要对系统中发生的事件进行排序,还要有良好的分布式同步算法。

首先,看事件排序问题。在单处理机系统及紧密耦合的多处理机系统中,由于共有一种时钟又共享存储器,确定两个事件的先后次序比较容易。而在分布式系统中,既无共用时钟,又无共享存储器,自然也就难于确定两个事件发生的先后次序了。这里所说的排序,既包括要确定两个事件的偏序,也要包括所有事件的全序。Lamport于1978年提出的一个算法。该方法建立在以下基础上:

(1)事件之间存在的偏序;

(2)为每一个进程设置一个逻辑时钟。

所谓逻辑时钟,是指能为本地启动的所有活动,赋予一个编号的机构,他可以用计数器来实现。在系统中,每一个进程都拥有自己的逻辑时钟c。在一个系统的逻辑时钟系统,应满足条件:

对于任何活动a(ini)和b(inj),如果a->b,则相应的逻辑时钟c(i,a) < b(j,b)。其中i,j表示处于不同物理位置的进程。为了满足上述条件,必须遵循以下规则:

第一,根据活动发生的先后,赋予每个活动唯一的逻辑时钟值。

第二,若活动a 是进程i 发送的一条消息m,消息m中应包含一个时间邮戳T(m)=c(i,a);当接受进程j在收

到消息时,如果其逻辑时钟c(j,b)

这里我们对第二个规则作些说明。由于每个进程都拥有自己的逻辑时钟,这些时钟的运行并非同步,因此可能出现这种情况:一个进程i发送的消息中所含的逻辑时钟c(m)=100,而接收进程j在收到此消息时的逻辑时钟c(j)= 96,这显然违背了全序的要求,因为发送消息事件A和接收事件B 之间存在着A->B 的关系。因而提出了第二项规则,用于实现逻辑时钟的同步。根据这个规则,应该调整进程j 的时钟,使c(j)>=c(m),例如c(j)=c(m)+1=101。

其次,看同步算法。在所有的同步算法中,都包含以下四项假设:

(1)每个分布式系统具有N个节点,每个节点有唯一的编号,可以从1 到N。每个节点中仅有一个进程提出访问共享资源的请求。

(2)按序传送信息。即发送进程按序发送消息,接收进程也按相同顺序接收消息。

(3)每个消息能在有限的时间内被正确地传送到目标进程。

(4)在处理机间能实现直接通信,即每个进程能把消息直接发送到指定的进程,不需要通过中转处理机。

在同步算法中,相对比较著名的算法还有Ricart and Agrawla 算法和Mackawa(Square-Root)算法等。

1、Ricart and Agrawla 算法

Ricart 等提出的分布式同步算法,同样基于Lamport 的事件排序,但又做了些修改,使每次访问共享变量时,仅需发送2(N-1)个消息。下面是对Ricart and Agrawla 算法的描述。

(1)当进程Pi要求访问某个资源时,它发送一个Request(Ti,i)消息给所有其他进程。

(2)当进程Pj收到Request(Ti,i)消息后,执行如下操作:

●若进程Pj正处在临界区中,则推迟向进程Pi发出Reply响应;

●若进程Pj当前并不要求访问临界资源,则立即返回一个有时间邮戳的Reply消息;

●若进程Pj也要求访问临界资源,而在消息Request(Ti,i)中的邮戳时间早于(Tj,i),同样立即返回一个有时

间邮戳的Reply消息;否则,Pj保留Pi发来的消息Request(Ti,i),并推迟发出Reply响应。

(3)当进程Pi收到所有其他进程发来的响应时,便可访问该资源。

(4)当进程释放该资源后,仅向所有推迟发来Reply消息的进程发送Reply 消息。

该算法能够获得较好的性能:能够实现诸进程对共享资源的互斥访问;能够保证不发生死锁,因为在进程--资源图中,不会出现环路;不会出现饥饿现象,因为对共享资源的访问是按照邮戳时间排序的,即按照FCFS原则服务的;每次对共享资源访问时,只要求发2(N-1)个消息。下图说明了进程在访问共享资源时的状态转换:

当然这个算法也有一定的问题:第一,每个要求访问共享资源的进程,必须知道所有进程的名字,因此,一旦有新进程进入系统,它就将通知系统中所有进程。第二,如果系统中有一个进程失败,则必然会使发出Request消息的进程无法收到全部响应,因此,系统还应该具备这样的功能,即一旦某个进程失效,系统能将该进程的名字通知其他进程。

2、令牌传送法

为实现进程互斥,在系统中可设置令牌(token),表示存取权力。令牌本身是一种特殊格式的报文,通常只有一个字节的长度,它不断地在由进程组成的逻辑环(logical ring)中循环。环中的每一个进程只有唯一的前驱者(prodecessor)和唯一的后记者(successor)。当环路中的令牌循环到某个进程并被接收时,如果该进程希望进入临界区,它便保持该令牌,进入临界区。一旦它推出临界区,再把令牌传送给后继进程。如果接收到令牌的进程并不要求进入临界区,便直接将令牌传送给后继进程。由于逻辑环中只有一个令牌,因此也就实现了进程的互斥。使用令牌时,必须满足以下两点要求:

(1)逻辑环应该具有及时发现环路中某进程失效或退出,以及通信链路故障的能力。一旦发现上述情况,应立即撤消该进程,或重构逻辑环。

(2)必须保证逻辑环中,在任何时候都有一个令牌在循环,一旦发现令牌丢失,应立即选定一个进程产生新令牌。

利用令牌传送法实现互斥,所需要的消息数目是不定的。因为,不管是否有进程要求进入其临界区,令牌总是在逻辑环中循环,当逻辑环中所有进程都要求进入临界区时,平均每个进程访问临界区只需要一个消息。但如果在令牌循环一周的时间内,只有一个进程要求进入临界区,则等效地需要N个消息(N是逻辑环中进程数)。即使无任何进程要进入临界区,仍需不断的传输令牌。另一方面,在令牌传送法中,存在着自然的优先级关系,即上游站具有更高的优先级,它能够优先进入临界区。就好象FCFS队列一样,环路中的进程可依次进入自己的临界区,因而不会出现饥饿现象。

进程同步是分布式系统尤其是松耦合分布式系统中一个非常重要的问题,对系统的工作效率和工作精度等性能指标有着至关重要的影响。因此,必须在系统中采用某种机制来实现进程间的同步。不同的系统对进程之间同步程度的要求是不相同的,某些分布式系统中,要求进程之间达到物理时钟上的同步,才能正确有效地协同工作。

工硕计算机 201103135 马雪芬

分布式操作系统进程同步分析

分布式操作系统进程 同步分析

杨利辛2015022497 2015 10 15 在分布式操作系统中,为实现进程的同步,首先要对系统中发生的事件进行排序,还要有良好的分布式同步算法。本文对分布式操作系统中的一些常见算法进行了分析,从而解析才能使进程在分布式操作系统中更加正确有效地协同工作。 在分布式系统中,处于不同物理位置的若干进程通过传递消息相互通信,进行协同工作完成同一任务。工作过程中,进程产生了大量的事件和消息,这些事件和消息在时间上的先后顺序对工作正确有效的完成往往是有影响的。由于进程所处的物理位置不同带来的时钟差异如各地时钟值的差异和时钟运行精度的差

异等)和网络传输延时等方面的原因,一个进程所看到的系统内事件和消息的先后顺序很可能与它们的实际顺序是不一致的,这样就带来了问题 布式系统都要求系统内的事件和消息的产生时间是精确的,甚至有些系统的任务结果是否正确直接有赖于这些精确的时间值,比如大型分布式数据库系统、电子商务和证券交易等金融业服务系统、分布式文件系统等。在这些系统中,各进程间的同步就必须达到基于物理时钟同步的程度。以证券系统为例,如果客户机的时钟与服务器的时钟不同步,那么客户按照自己的时钟所提出的服务请求将会被服务器提早或推迟执行,这可能会给客户带来巨大的损失。这时,客户的服务请求是否被顺序公平的响应已失去了意义。 在单机条件下,诸进程运行于同一个处理机和内存环境中,进程通信十分简单。进程之间可以借助于“共享存储器”进行直接通信。而在多机条件下,相互合作的进程可能在不同的处理机上运行,进程间的通信涉及处理机的通信问题。在松散耦合系统中,进程间通信还可能要通过较长的通信信道,甚至网络。因此,在多机条件下,广泛采用间接通信方式,即进程间是通过消息进行通信的。在分布式操作系统中,为了实现进程的同步,首先要对系统中发生的事件进行排序,还要有良好的分布式同步算法。 首先,看事件排序问题。在单处理机系统及紧密耦合的多处理机系统中,由于共有一种时钟又共享存储器,确定两个事件的先后次序比较容易。而在分布式系统中,既无共用时钟,又无共享存储器,自然也就难于确定两个事件发生的先后次序了。这里所说的排序,既包括要确定两个事件的偏序,也要包括所有事件的全序。Lamport于1978年提出的一个算法。该方法建立在以下基础上:(1)事件之间存在的偏序;

基于可调度性与全局延迟的分布式嵌入系统实时通信中的总线访问优化

基于可调度性与全局延迟的分布式嵌入系统实时通信中的 总线访问优化 本文在对TTP通信协议进行研究的基础上,发现嵌入式实时系统通信过程中的消息调度算法只考虑消息的可调度性而没有对全局延迟进行考虑的问题,从而提出基于可调度性及全局延迟的实时通信的总线访问优化的研究课题,随后对实时通信总线的访问优化算法进行了研究,其中包括:静态单消息算法、静态多消息算法、动态消息分配算法以及动态数据包分配,并对可调度性的判断依据进行了说明,最后通过研究现有可调度性最优算法,从而给出改进后的算法描述并加以实现。 第一章绪论 1.1课题背景 随着网络技术以及和数字信息技术的高速发展,在信息家电、医疗仪器、智能汽车、工业控制、通信设备各个领域中,嵌入式系统无处不在。随着网络技术的飞速发展,在许多嵌入式应用中,往往包含许多设备,譬如只能中央空调,这时分布式系统就是实现这种系统最方便、最现实的方法[1]。 由于分布式系统具有如下特点:时间关键的任务放在不同的CPU中可以更容易保证满足它的死线要求;把处理器放在设备级上更便于实现设备之间的接口;如果系统中包含从供应商购买的几个设备或系统,它们之间也含有自己的CPU,或者还包含有通信接口,通常不可能把系统的任务放到这些设备中,或者相反把设备的任务放到系统中;使用几个小CPU比使用一个大CPU更便宜;分布式的系统能够利用本身的高度容错性使得在高性能领域分布式系统系统中具有得天独厚的优势。 所以,许多嵌入式系统利用分布式系统实现,在分布的处理器之间利用通讯链路连接起来,数据链路可以是高速并行数据总线(紧耦合型),也可以是串行数据链路。 但是,随着电控单元的增多、功能日益复杂、网络通信数据量不断增大、要 1

分布式系统复习题及参考答案

关于分布式系统复习题与参考答案 一、填空题(每题n分,答错个扣分,全错全扣g,共计m分) 1.访问透明性是指对不同数据表示形式以及资源访问方式的隐藏。而位置透明是用户无法判别资源在系统中的物理位置。 2. 迁移透明性是指分布式系统中的资源移动不会影响该资源的访问方式。而复制透明是指对同一个资源存在多个副本的隐藏。 3. 一个开放的分布式系统就是根据一系列准则来提供服务,这些准则描述了所提供服务的语法和语义。 4. 集群计算系统一个突出的特征是它的同构性;它提供了最大限度的分布式透明性。可用于单个程序在多台计算机上并行地运行。 5. 网格计算系统具有高度的异构性:其硬件、操作系统、网络、管理域和安全策略等都不尽相同。 6. 网格计算系统一个关键问题是如何把来自不同计算机组织的资源集中起来,使一组人或机构进行协调工作。 7. 分布式事务处理的四个特性是:原子性、一致性、独立性和持久性。 8. 分布式普适系统应用程序的需求归纳为三种,它们是:接受上下文的变化、促使自主合成、认可共享为默认行为。 9. 分布式系统体系结构样式很多,其最重要的有:分层体系结构;基于对象的体系结构、以数据为中心的体系结构以及基于事件的体系结构等四类。 10. 客户/服务器结构的应用程序通常划分为三层,它们是:用户接口层、处理层和数据层。 11. 在结构化点对点体系结构中覆盖网络是用一个确定性的过程来构成的,这个使用最多的进程是通过一个分布式哈希表来组织进程的。 12. 超级对等体通常是维护一个索引或充当一个代理程序的结点。 13. 分布式软件体系结构主要分集中式、非集中式和各种混合形式三大类。其非集中式体系结构又分为结构化的点对点、非结构化的点对点、超级对等体三种。 14. 实现软件自适应的基本技术分为要点分离、计算映像和基于组件的设计三种类型。 15. 分布式的自主系统指的是自我管理、自我恢复、自我配置和自我优化等各种自适应性。 16. 一个线程独立地执行它自己的程序代码。线程系统一般只维护用来让多个线程共享CPU 所必需的最少量信息。 17. 有两种实现线程线程包的基本方法:一是可以构造一个完全在用户模式下执行的线程;二是由内核来掌管线程并进行调度。 18. 分布式系统中的多线程通常有:多线程用户和多线程服务器两大类型。而以分发器/工作者模型组织起来的多线程服务器是最为流行的一种。 19. 虚拟化可采用两种方法,一是构建一个运行时系统,提供一套抽象指令集来执行程序。二是提供虚拟机监视器。 20. 在服务器的组织结构中,迭代服务器是自己处理请求,将响应返回给客户;而并发服务器将请求传递给某个独立线程或其他进程来处理。 21. 服务器集群在逻辑上由三层组成,第一层是逻辑交换机;第二层是应用/计算服务;第三层是文件/数据库系统。 22. 在代码迁移的框架结构中,进程包含三个段,它们是代码段、资源段和执行段三个段。 23. 进程对资源的绑定有三种类型:一是按标识符绑定;二是按值绑定;三是按类型绑定。而三种类型的资源对机器的绑定是未连接资源、附着连接资源和紧固连接资源。 24. 中间件是一种应用程序,它在逻辑上

分布式系统中进程的同步方法

分布式系统中进程的同步方法 【摘要】在分布式操作系统中,为了实现进程的同步,首先要对系统中发生的事件进行排序,还要有良好的分布式同步算法。本文对分布式操作系统中的一些常见算法进行了分析,从而解析才能使进程在分布式操作系统中更加正确有效地协同工作。 【关键字】分布式操作系统,进程,同步,算法。 【Abstract】In the distributed operating system,in order to achieve the process of synchronization,First, you want to sort of events that occur in the system,but you also distributed synchronization algorithm.This article analyzes some common algorithms in the distributed operating system, to resolve to make the process more correctly and effectively work together in a distributed operating system. 【Key words】Distributed operating system, Process, Synchronous, Algorithm.

在分布式系统中,处于不同物理位置的若干进程通过传递消息相互通信,进行协同工作完成同一任务。工作过程中,进程产生了大量的事件和消息,这些事件和消息在时间上的先后顺序对工作正确有效的完成往往是有影响的。由于进程所处的物理位置不同带来的时钟差异如各地时钟值的差异和时钟运行精度的差异等)和网络传输延时等方面的原因,一个进程所看到的系统内事件和消息的先后顺序很可能与它们的实际顺序是不一致的,这样就带来了问题,如图1所示。 100 150 300 350 物理时间 图1 分布式进程通信示例 在一个先来先服务的分布式系统中,X地的进程Pi在时刻100时向Z滴的进程Pk发出了请求服务的消息Rq,并盖上了本地的时间戳130,随后Y地的进程Pj也向Pk发出了请求服务消息,并盖上了本地的时间戳120。Pj的消息在时刻300到达Pk,而Pi的消息在时刻350才到达Pk。这样,对Pk而言,不管到达的顺序还是按照时间戳的大小都应该先对Pj进行服务,这显然是不公平的。因此,在分布式系统中必须采取一定的同步机制来保证工作的顺利进行和结果正确。 进程同步大致有两种程度:一种是局部的松散同步,即事件和消息产生的逻辑顺序上简单同步;一种是全局的精确同步,即各进程的本地时钟基于现实世界物理时间标准同步。前一种同步能由Lamport算法和Ricart and Agrawla 算法等算法实现。在这种同步机制中,各进程利用逻辑时钟产生时间戳,能保证按序发送消息,同样接收进程也能按序接收。或者说,接受进程能按序从各个不同进程接收消息,而且从同一进程接收的消息也是顺序的。但这种同步仅仅保证了事件和消息的顺序一致性,而不能反映它们产生的真实时间,因为同步机制中所采用的时间戳只能看作是一个数字编号,并没有和物理时钟精确对应起来。这种同步机制在分布式系统的实际应用中有着很大的局限,因为很多现实的分

分布式实时系统的通信中间件设计与实现

———————————— 基金项目基金项目::重庆市科技攻关计划基金资助项目(2009AB2244) 作者简介作者简介::蒋建春(1975-),男,副教授、博士研究生,主研方向:嵌入式系统软件,汽车电子;刘 涛,硕士研究生 收稿日期收稿日期::2011-11-29 修回日期修回日期::2012-03-09 E-mail :Dreamliutao@https://www.360docs.net/doc/5210421827.html, 分布式实时系统的通信中间件分布式实时系统的通信中间件设计与设计与设计与实现实现 蒋建春1,2,刘 涛1 (1. 重庆邮电大学汽车电子与嵌入式系统研究所,重庆 400065;2. 重庆大学光电技术及系统教育部重点实验室,重庆 400044) 摘 要:面向汽车电子的分布式实时系统通信中间件,须处理大量周期通信或非周期通信事件,并对时间有着严格的限制,不能有效进行通信时刻控制。为此,参考AUTOSAR 规范,从实时性保证与柔性配置管理角度出发,提出一种分布式实时应用的通信中间件。该通信中间件具有可重用性、可裁减性和可配置性,可应用于多种操作系统及硬件平台。通过通信中间件的运行示例分析,验证了该通信中间件的可行性。 关键词关键词::分布式实时系统;中间件;实时性;柔性管理;调度机制;AUTOSAR 规范 Design and Realization of Communication Middleware for Distributed Real-time System JIANG Jian-chun 1,2, LIU Tao 1 (1. Institute of Automotive Electronic and Embedded System, Chongqing University of Posts and Telecommunications, Chongqing 400065, China; 2. Key Lab of Optoelectronic Technique and System of Ministry of Education, Chongqing University, Chongqing 400044, China) 【Abstract 】Facing to Distributed Real-time Systems(DRS) of automotive electronic, communication middleware must handle many aperiodic and periodic communication events under strict time requirements, they can not control communication time. This paper proposes a communication middleware of distributed real-time application referencing AUTOSAR standard by requirements of real-time and flexible configuration mechanism. It has reusability, tailorability and configurability, can hide the difference of communication protocols and be used to different operation system and platforms. Application case analysis of a communication middleware show its feasibility. 【Key words 】Distributed Real-time Systems(DRS); middleware; real-time; flexible management; scheduling mechanism; AUTOSAR standard DOI: 10.3969/j.issn.1000-3428.2012.21.066 计 算 机 工 程 Computer Engineering 第38卷 第21期 V ol.38 No.21 2012年11月 November 2012 ·工程应用技术与实现工程应用技术与实现·· 文章编号文章编号::1000—3428(2012)21—0249—04 文献标识码文献标识码::A 中图分类号中图分类号::TP391 1 概述 缩短系统开发生命周期(System Development Life Cycle, SDLC)并提高软件重用性是开发分布式实时系统软件过程中重要的关注点。通信中间件集中统一管理了大量有严格时间限制的周期或非周期通信事件,以其自身的复杂度换取了开发应用的便利,受到开发者及用户越来越多的青睐。通常采用的CORBA 中间件技术,作为一种抽象的规范定义并不限制具体的实施方案,为分布式应用提供了很好的互操作性、平台无关性、语言无关性。Mini CORBA 和Real-Time CORBA 规范由CORBA 裁剪而来,以便满足分布应用实时性需求及嵌入式环境需求。Mini CORBA 针对嵌入式应用中有限的资源环境(如CPU 处理能力、内存容量、功耗等),裁减中间件动态分配以适应嵌入式应用,但并没有对实时性要求提供保障,应用于分布式实时系统中通信的可靠性大大降低。Real-Time CORBA 支持固定优先级的实时应用,提供对象调用操作端到端的可预测性,但是Real-Time CORBA 缺少在不同 DRS 间的端对端通信时间的柔性配置管理,不能有效进行通信时刻控制,同时其对象动态调用操作并不适用于嵌入式环境[1-2]。针对分布式实时系统的嵌入式环境应用,通信中间件必须具有通信实时性保证、通信时间柔性配置管理、以静态方式进行接口调用等特点。为此,本文参考汽车电子AUTOSAR 规范软件分层架构及通信服务的模块功能[3],设计并实现了一种具有实时性保证、柔性配置管理,适用于汽车电子嵌入式系统的分布式实时应用的通信中间件,进行柔性配置后应用于通信实例中,并进行了运行分析。 2 总体架构设计 通信中间件是定义于应用程序和操作系统、硬件平台之间的一个中间层,是定义的一组较为完整的、标准的应用程序通信接口,以实现分布式网络中各节点的外部通信及应用程序之间的内部通信。欧洲汽车制造商和他们的一级供应商建立的AUTOSAR 规范,旨在促使软件架构由一系列相对独立的构件组成、借由统一接口及端口映射机制

分布式系统中容错技术导论

收稿日期:2004 07 14 作者简介:刘俊丽(1972 ),女,毕业于黑龙江大学计算数学及其应用软件专业,黑龙江省黑河学院计算机系讲师,从事计算机教学工作。 分布式系统中容错技术导论 刘俊丽 (齐齐哈尔大学黑河学院,齐齐哈尔164300) 摘 要 本文讲述的是分布计算系统出现部分失效的时候,系统应该能自动从失效中恢复过来,并且不会对整个系统的性能产生严重的影响。 关键词 分布式系统;故障;失效;容错 Abstract The article is abou t the fault tolerance that the system can recover from the crash automatically and won t have a serious influence on the function of the whole system. Key words the distribu ted system;the crash;the failure;the fault tolerance 中图分类号 TP392 文献标识码 A 文章编号 1008-0821(2004)10-0223-03 分布计算系统区别于单机系统的一个特点是在分布式系统中存在着部分失效的情况。当分布式系统某个部件出现问题的时候就发生了部分失效。虽然部分失效对分布式系统的性能有一定的影响,但同时,它应该不会影响分布式系统中整个应用程序的正确执行。相反,在单机系统中,如果系统中的一个关键部件出现问题,整个应用程序就无法继续执行。 分布计算系统的一个重要设计目标是当系统中出现部分失效的时候,系统应该能自动从失效中恢复过来,并且不会对整个系统的性能产生严重的影响。故此在这里我们讨论分布计算系统中的容错技术。 容错是计算机科学中一个重要的研究领域。首先介绍与故障处理有关的一些基本概念和分布计算系统中的故障模型。关于分布计算系统中容错的一些非常有用而详细的介绍可以参见文献[J ALOTE,1994]。 1 基本概念 分布计算系统应该是一个可信赖的系统(dependable system),容错是与可信赖系统紧密相联系的一个概念。分布计算系统的可信赖性(dependability )包括如下几个方面[KOPETZ,1993]: 1 1 可用性(availability) 可用性反映的是系统随时可被用户使用的特性。也就是说,在任何给定的时刻用户都可以使用此系统正确地执行用户给定的任务。 1 2 可靠性(reliability) 可靠性指的是在错误存在的情况下,系统持续服务的能力。尽管可靠性和可用性容易混淆,但它们并不是同一个概念。可靠性反映的是一段时间的特性,而可用性反映的是某个时刻的特性。高可靠性系统能够持续运行一个相当长的时间而不会中断。如果一个系统,每个小时都有并 且仅有1毫秒时间失效,那么它的可用性可达99 9999%,但是它仍然是一个高度不可靠的系统。同样地,如果一个系统从来不崩溃,但是在8月份中,有2个星期的假期需要关机,这个系统是高可靠性的系统,但是它的可用性只有96%。 1 3 安全性(safety) 安全性指的是在系统出现暂时错误的情况下,不出现灾难性后果的能力。例如核电厂的控制系统和宇宙飞船的控制系统要求具有很高的安全性。 1 4 可维护性(maintainability) 可维护性指的是系统一旦出现故障,系统易于修复的能力。高可维护性的系统意味着具有高的可用性。对于高可维护性系统来说,要求它具有自动检测错误和自动修复的能力。 1 5 保密性(security) 保密性要求系统资源不被非法用户访问。 系统失效指的是系统不能提供它所固有的服务功能。例如,分布式系统是为用户提供一系列服务的,但其中某一个服务或某些服务功能不能完全正确提供时,就说系统失效了。 一般来说,从错误的时间特性来看,错误可分为暂时性的(transient)、间歇性的(intermittent)和永久性的(per manent)。暂时性的错误一旦发生之后就会消失,当相关的操作重复执行之后,错误就消失了。间歇性的错误是一会儿出现,一会儿又消失的错误,这种错误是十分令人烦恼的一种错误,因为它十分难于诊断。永久性错误是一种持续性错误,这种错误一旦出现,将会长时间存在,直到出现错误的部件被修复为止。像集成芯片被烧坏、软件缺陷、磁盘磁头损坏等都是永久性错误。 223 2004年10月第10期October 2004No .10 现代情报 情报纵横

《分布式系统原理与范型 (第二版)》复习资料

分布式复习资料 第1章 分布式系统是若干独立计算机的结合,这些计算机对于用户来说就像是单个相关系统。 硬件方面:机器本身是独立的。 软件方面:对用户来说就像与单个系统打交道。 重要特性:1、各种计算机之间的差别以及计算机之间的通信方式的差别对用户是隐藏的。 2、用户和应用程序无论在何时何地都能够以一种一致和统一的方式与分布式系统进行交互。 中间件:为了使种类各异的计算机和网络都呈现为单个的系统,分布式系统常常通过一个“软件层”组织起来。该“软件层”在逻辑上位于由用户和应用程序组成的高层与由操作系统组成的低层之间。如图,这样的分布式系统有时又称为中间件。 注意层次分布与组件 分布式系统的最主要目标是使用户能够方便地访问远程资源,并且以一种受控的方式与其他用户共享这些资源。 透明性:如果一个分布式系统能够在用户和应用程序面前呈现为单个计算机系统,这样的分布式系统就是透明的。透明的类型:1、访问透明性:指对不同数据表示形式以及资源访问方式的隐藏。 2、位置透明性:指用户无法判别资源在系统中的物理位置。 3、并发透明性:在资源共享时,用户不会感觉到他人也在使用自己正使用的资源。 4、故障透明性:用户不会注意到某个资源(也许他从未听说过这个资源)无法正常工作,以及系统随后 从故障中恢复的过程。 开放性:一个开放式的分布式系统,是根据一系列准则来提供服务,这些准则描述了所提供服务的语法和含义。 互操作性:刻画了来自不同厂商的系统或组件的两种实现能够在何种程度上共存并且协同工作,这种共存和协同工作只能依赖于通过双方在公共标准中规定的各自所提供的服务来完成。 可移植性:刻画了这样的性能,如果为分布式系统A开发了某个应用程序,并且另一个分布式系统B与A具有相同的接口,该应用程序在不做任何修改的情况下在B上执行的可行程度。 可扩展性:当一个系统需要进行扩展时,必须解决多方面的问题。首先考虑规模上的扩展。在需要支持更多的用户或资源时,我们常常收到集中的服务、数据以及算法所造成的限制,如图所示。例如,许多服务是以集中的方式实现的,它们由分布式系统中一台特定的计算机上运行的单个服务来提供。这种方案存在的问题是显而易见的:用户增多时该服务将成为系统的瓶颈。即使它拥有无限的处理能力和存储能力,在系统达到一定规模后与该服务器的通信也将发生困难。从而使得系统规模无法继续增长。

汽车分布式控制多路复用系统及其通信协议

汽车分布式控制 多路复用系统及其通信协议 1.汽车上采用多种多路复用系统的原因及典型的多路复用系统通信芯片版本 在汽车上采用多路复用通信系统是电子控制汽车的一项必须技术,世界各大汽车公司和半导体公司近年来都在设置、应用和不断地开发此项技术。 各个汽车公司设置的多路复用系统的通信芯片版本不同,例如雷诺和标致公司的RCP VAN通信芯片有双缓冲器,而大众公司的U5001M PRD1018通信芯片的集成电路所要求的附加软件和硬件均最少——没有CRC(循环冗余校验)等。因此,ISO、SAE和JSAE等标准化组织为各大汽车公司推荐和制定了各自的多路复用系统通信协议标准,不同的通信协议对信息传输顺序、格式和内容等均有不同的约定。到目前为止,世界上尚无一个可以兼容各大汽车公司通信协议的通用标准,也就是说,想用某个公司的通信协议取代其他公司的协议,是很难做到的,因此,在汽车上就形成了多种类型的多路复用系统共存的局面。 目前汽车上应用的典型通信芯片版本有8种。此外,还有多种因篇幅所限不能全部阐述的其他协议,如宝马公司(BMW)1994年提出的增强型通

信协议,该协议的技术关键在于采用集成局部控制器(LCU)和数据压缩(DC)算法——整个数据块的传输时间较无数据压缩时减少约2/3,这样,在不增加物理波特率的前提下,减少了总线负载和信息响应时间,与此同时增加了信息转换速率。另外,在发送器和接收器中,编码表不会发生“失同步”;阿尔法·罗密欧公司的DAN集中式网络协议;卢卡斯(Lucas)公司的光学分布式星形藕合器系统;日立公司的集中式光学单纤维双向通信;飞利浦公司的D2R分布式网络协议等。8种通信芯片版本见表1。 表1典型通信芯片版本 2.典型通信芯片版本的通信协议的名称及匹配的“CPU”类型 8种典型的通信协议名称及匹配的CPU类型见表2。除了AN82526-Q8841(CAN)和REV BB(HBCC)通信芯片因采用不同的总线和接口而匹配不同的CPU外,其他6种通信芯片皆各对应一种CPU。 表2 典型通信芯片版本的通信协议及匹配的CPU

浅析分布式系统进程间通信

浅析分布式系统进程间通信 摘要:若干大量独立的计算机通过网络联系在一起,组成了分布式系统,在这种环境下,合作进程通过消息的传递进行通信需要访问分布在整个网络中的资源,所以一个好的通信机制比较重要。 关键词:分布式系统;进程间通信;通信机制 随着微型电子技术的发展,计算机的硬件成本不断下降,计算机应用技术得到了广泛的应用和很大的提高。特别是高性能微处理器的开发和高速计算机网络技术的发明,可以把若干由大量计算机组成的计算机系统彼此通过高速网络连接,这种系统一般称为分布式系统。分布式系统是若干独立计算机和用于交换信息的通信设备的集合,这些计算机对于用户来说就像是单个相关系统。它主要提供分布计算机和分布处理功能。随着Internet技术的分速发展和应用,进程间通信已经成为分布式系统的重要核心。 一、分布式系统简介 分布式系统便于资源共享。各种信息、文件、数据库和各种昂贵的硬件资源被分布式地管理和维护,并为用户的访问提供了方便。这样就能节省大量的重复投资。 分布式操作系统是运行在分布式计算机系统的操作系统。它是在多机环境下,负责控制和管理以协同方式工作的多种系统资源,进程的同步和执行,处理机间通信,调度等控制事务,自动实行全系统范围为的任务分配和负载平衡,方便用户使用,并具有高度并行性的一种高级系统软件。 二、分布式系统间的通信 一个分布式操作系统应该包括网络上的所有计算机,在一个分布式环境下,合作进行通过消息的传递进行通信因为需要访问分布在整个网络中的拥有资源,所以一个好的通信机制相当重要,进程间通信是一切分布式系统的核心。本文主要介绍以下四种通信模型,远程过程调用(remote procedure call,RPC)、远程方法调用(remote method invocation,RMI)、面向消息的中间件(message-oriented

分布式系统中的时间问题

分布式操作系统中的时间问题 摘要 实践表明,分布式操作系统的同步问题常常比单处理器或者多处理器系统中的同步问题更加困难。本文从时间同步问题开始着手讨论,分析在分布式系统中同步问题的重要性以及如何在分布式系统中实现时间的同步。本文讨论的问题及其解决方式本质上是比较常见的并且出现在分布式操作系统的不同情况下。 关键词:分布式操作系统、同步、时间问题 Abstract The practice shows that the synchronization problems in distributed operating systems often more difficult than synchronous problem of single processor or multiprocessor system.This paper begins to discuss from the time synchronization problem,analysis of the importance of synchronization problems in distributed system and how to realize the time synchronization in distributed system.This paper discusses the problems and the solutions are relatively common and occur in different situations under the distributed operating system. Key Words: distributed operating systems、synchronization、timing issue

分布式系统

分布式系统 一、概念解释 (1)同构型与异构型分布式系统 同构型分布式系统:组成该系统的计算机的硬件和软件是相同的或非常相似的,同时组成该系统的计算机网络的硬件和软件也是相同的或非常相似的的分布式系统称为同构型分布式系统。 异构型分布式系统:组成该系统的计算机的硬件或软件是不同的,或者组成该系统的计算机网络的硬件或软件也是不同的分布式系统称为异构型分布式系统。 (2)紧密耦合与松散耦合分布式系统 紧密耦合分布式系统:连接方式为内部总线或机器内互连网络;处理资源间距离为物理上分散,相距很近;处理资源为处理机;通信方式为共享存储器的 分布式系统称为紧密耦合分布式系统。 松散耦合分布式系统:连接方式为通信网络;处理资源间距离为地理上分散,相距很远;处理资源为计算机系统;通信方式为报文交换的分布式系统称为松散耦合分布式系统。 (3)中间件服务 中间件服务:中间件服务为应用程序隐匿底层平台的异构性。许多中间件系统提供某种程度的全局服务集成,并且只为用户或应用程序提供使用这些服 务的接口。 (4)阻塞原语与非阻塞原语 阻塞原语:阻塞原语是阻塞性报文通信原语也称为同步原语。阻塞原语不立即将控制权返回给调用该原语的进程,也就是说send一直被阻塞直到发送 的信息被接收方收到并得到接收方的应答。同样地,receive一直被阻塞,直 到要接受的信息到达并被接收。

非阻塞原语:非阻塞原语不提供任何形式的同步,非阻塞原语也称为异步原语。执行发送和接收时,控制权立即返回给进程并继续执行语句。然后, 收到响应而产生一个中断,通知进程可以完成原语。 (5)客户存根与服务器存根 客户存根(client stub):客户代理。在客户上的进程需要访问服务器上的资源时,可以发出一条带有参数的RPC命令给客户存根,以委托它充当调用 进程的代理。客户存根接收到RPC的命令后,便去执行本次的远程过程调用; 客户存根与一个客户应用相联,它对于该客户就像一个服务器一样,它截取客 户的远程调用命令后,利用通信网络向服务器发送服务请求,在返回时,它获 取返回信息,并将结果返回给客户。 服务器存根(sever stub):服务器代理。服务器存根与一个服务器相联,它对于服务器来说就像一个客户一样,在调用时,它接收到远程调用的请求后, 产生一个本地调用来执行相应的远程过程,在返回时,它获取远程过程的返回 结果,并形成返回消息发送给客户。 (6)同步检查点和异步检查点。 异步检查点:在异步检查点方式中,各进程独立地完成检查点,这种方式对应用程序增加的开销较小,但会导致检查点文件数目不确定,恢复时容易 出现多米诺效应等问题。 同步检查点:在同步检查点方式中,通过发送统一的控制信息。能够保证所做的检查点满足全局一致性。所谓全局一致性检查点是指,在检查点集中, 如果一个进程的检查点已经记录了一条消息的接收事件,那么这条消息的发送 方的进程的检查点也记录了这条消息的发送事件。 二、说明下列问题 (1)说明分布式系统的透明性表现以及影响透明性的主要因素 分布式系统的透明性表现: 1)名字透明。名字透明指的是对象的命名在全局是唯一的,不管在什么地方访问该对象使用的名字都是一样的。这样一来,在系统中移动一个程序不影响它的

分布式系统通信技术研究

研究生课程设计(小组报告一) 题目:分布式系统通信技术研究院系:******************* 专业:******************* 小组成员:******************* ******************* ******************* ******************* ******************* 课程:分布式与云计算 分布式系统通信技术研究

一、概述 分布式系统是由一些相互独立的处理部件集合在一起,并且对于使用的用户而言是透明的、单一的相关系统,分布式系统可以管理和利用每个处理部件中相互分散却又有联系的资源,使其共同为解决某个具体问题而相互协作。分布式系统产生的最初的目的是将互联网上计算机的闲置处理能力充分的利用起来作为一个系统进行分布式计算,它最主要是用在高性能计算领域。近年来物联网、云计算、对等计算模式(peer-to-peer,p2p)、网格计算、无线传感网络等概念均为分布式系统技术的商业应用,因此构建分布式系统是有效实现这些应用的基本要求。 进程间通信是所有分布式系统的核心功能。一个分布式系统,可以同时有成千个进程分布在网络上的不同的站点机上,它们通过网络提供的消息通信机制交换信息,实现高层应用的互操作。网络上的不同站点机可以拥有不同的操作系统。分布式应用系统的发展给分布式系统的进程间通信提出一个又一个需解决的技术问题。 本报告主要介绍了分布式系统的通信的模型和通信技术。 二、分布式系统的通信体系结构 分布式系统的核心是通信网络,它完全是一种网状结构,因此称为通信体系结构。按照计算机网原理,通信体系结构包括两个方面,一是处理机互连结构,即系统的物理组织;二是两进程间的通信协议,即系统的虚拟组织。 1.系统的物理组织 按照计算机网的方法,互连结构涉及四个方面:报文、通路、交换和构形,如图2-1所示。合理选择每个方面的具体内容,组合起来,即可得出系统的物理组织。例如,系统可以是报文传输、直通通路、报文交换、环形结构(如DLCN),也可以是报文传输、广播通路、报文分组交换、树形总线结构(如Ethernet)等。 图2-1 处理机互连结构 传输的信息称为报文,即一串比特码,在传输时,不再区分命令、地址、数据或状态,也不分指令流和数据流。 传输报文的道路称为通路或线路,报文从一点传输到另一点的通路,称为直通通路; 从一点可同时发送到多个接收点的,称为广播通路。通路由通信介质构成,常用的有双扭线、带状电缆、同轴电缆、光导纤维、无线电、微波、通信卫星、红外等,可按要求的频宽选用。 为了共享传输介质,在互连结构中设置有交换元件,按其工作原理可分为线路交换方式和存储转发方式两大类。线路交换是在通路上设置开关,只.当选通时才在通信实体之间提供一条通路。由于信息流的不均匀性,如果在通路中设置存储元件进行缓冲,

分布式控制系统中的网络

第三章 分布式控制系统中的网络
§3.1 概 述
一个网络至少包括以下几部分: 一个网络至少包括以下几部分
(1) 若干个通信设备 (2) 通信子网,由连接这些节点的通信链路组成 通信子网 由连接这些节点的通信链路组成 (3) 协议 为在通信节点之间的通信使用 协议,
工业数据通信网络: 工业数据通信网络
包括DCS网络和设备现场总线 用于传输控制数据 网络和设备现场总线, 控制子网 --- 包括 网络和设备现场总线 用于传输控制数据, 要求实时、可靠 要求实时、 传输企业内部信息和共享资源, 信息子网 --- 传输企业内部信息和共享资源,非实时数据的监视和 生产销售管理

§3.2 网络控制方式
通信模式: 通信模式:
(1)主从模式 通信由主站发起 从站之间不能直接通信 )主从模式: 通信由主站发起, (2)对等模式 依靠令牌或某种仲裁机制获得一定时限 )对等模式: 的总线控制权 (3)混合模式 主从对等同时存在 )混合模式:
对话模式: 对话模式:
(1)轮询模式 ) (2)例外报告模式 ) (3)客户 服务器模式 )客户/服务器模式 (4)生产者 消费者模式 )生产者/消费者模式

一、环形结构中的控制方式
1、令牌(Token)控制方式 分散控制 、令牌( 分散控制) )控制方式(分散控制
ACK 标 志 目的 地址 源地 址 控制 信息 有效 信息 出错检 测码 肯定 回答 令牌 Token
源节点发出一帧非空信息,绕环传递(使令牌非空),达到目的 源节点发出一帧非空信息,绕环传递(使令牌非空),达到目的 ), 节点后将有效信息复制下来, 节点后将有效信息复制下来,使ACK=1,此帧信息返回源节点。 ,此帧信息返回源节点。 根据ACK=1移走全部信息,并将令牌置空,下一节点即可用此令 根据 移走全部信息,并将令牌置空, 移走全部信息 牌。 按一定顺序在各站点之间传递令牌,谁得到令牌谁有权发送数据。 按一定顺序在各站点之间传递令牌,谁得到令牌谁有权发送数据。

分布式系统中死锁的处理

目录 1死锁现象机器原因分析 (2) 1.1死锁概念 (2) 1.2死锁的必要条件 (3) 1.3死锁产生的原因 (3) 2解决死锁的方法 (3) 2.1预防死锁 (3) 2.2避免死锁 (3) 2.3检测和系统恢复 (3) 3预防死锁的方法 (3) 3.1阻碍互斥现象 (3) 3.2破坏保持和请求条件 (4) 3.3对不可剥夺条件进行破坏 (4) 3.3.1方法一 (4) 3.3.2方法二 (4) 3.3.3对循环等待进行破坏 (4) 4结语 (4)

分布式系统中死锁的处理 摘要:死锁是计算机故障中常见的问题之一,想要最优化使用计算机操作统,首要任务就是解决死锁问题。当然死锁故障不是无缘无故产生的,它连带着自身的必然条件,而这些必然条件是解决死锁问题的突破点,介绍计算机死锁问题,分析死锁现象的发生条件,并提出可实行的解决方法。 关键词:计算机;操作系统;死锁问题 1死锁现象机器原因分析 所谓的死锁就是不通状态,计算机中的死锁会影响整个操作系统的进程。在计算机系统中,资源是有限的,并且许多的资源都是独占性资源,在任何时刻都只能被一个进程使用。另一方面,对于一个进程而言,在其整个生命周期中一般不可能仅使用一个资源,而是请求使用多个资源。对于集中式操作系统是如此,对于网络操作系统和分布式操作系统更是如此。现代操作系统(包括集中式操作系统、网络操作系统和分布式操作系统)的重要特征是并发处理、资源共享和进程在CPU上的执行时间的不确定性,这些特征是相辅相成的。没有资源共享就不可能并发执行,并发执行的结果必然造成进程执行的不确定性。资源共享的目的是为了提高资源的利用率,提高用户程序的执行速度和整个计算机系统的性能。但是,资源共享和多个进程的并发执行就必然出现进程对资源的竞争,有竞争就有可能出现多个进程的死锁。死锁一直是操作系统中始终没有根本解决的问题,因而始终是学习和研究操作系统的重点问题之一。本文就死锁的概念和发生死锁的原因及可能发生死锁的问题进行讨论。每个进程都需要相应要求指导,而这些要求指导又需要不同类别进程来提供,死锁会耽误计算机进程的顺利进行。这种状态造成计算机资源的浪费,需要的资源利用不上,不需要的资源无法释放,对操作系统来说有着不利的影响。由此可见,我们应研究计算机操作系统中的死锁问题,科学采用合理的解决方案。 死锁概述 1.1死锁概念 计算机操作系统中,进程需要相互访问,例如:想要把磁盘中的文件打印出来,进程会同时访问打印机和磁盘驱动器,并且阻}卜其它进程访问他们。当系

相关文档
最新文档