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

进程间同步的几种方法进程间同步是指两个或多个进程之间进行协调,以确保它们能够正确地执行。
这是多任务操作系统中的重要问题,因为进程之间共享资源,包括内存、文件和网络连接等。
进程同步的关键是确保一组进程在处理共享资源时,能够避免发生竞态条件(Race Condition)和死锁(Deadlock)。
竞态条件指多个进程同时访问共享资源,导致不正确的结果。
死锁指多个进程互相等待,导致它们都无法继续执行。
1. 互斥锁互斥锁是最常见的同步方法之一,它被用来保护共享资源,确保同一时刻只有一个进程可以访问它。
当一个进程获取了锁,其他进程必须等待,直到锁被释放。
在 POSIX 系统中,互斥锁可以通过 pthread_mutex_t 数据类型实现。
我们可以使用pthread_mutex_init() 函数初始化锁,使用 pthread_mutex_lock() 函数获取锁,使用pthread_mutex_unlock() 函数释放锁。
下面是一个例子,展示了如何使用互斥锁同步两个进程对共享变量的访问:```c#include <pthread.h>#include <stdio.h>int count = 0;pthread_mutex_t lock;void *increment(void *arg) {for (int i = 0; i < 1000000; i++) {pthread_mutex_lock(&lock); // 获取锁count++;pthread_mutex_unlock(&lock); // 释放锁}return NULL;}在上面的例子中,我们创建了两个线程,它们分别对共享变量 count 进行了一百万次的递增操作。
我们使用了互斥锁来保护 count 变量,确保同一时刻只有一个线程可以访问它。
2. 信号量3. 条件变量条件变量可以被用来支持更高级的同步机制,如互斥锁和信号量。
分布式系统中的数据一致性问题与解决方案

分布式系统中的数据一致性问题与解决方案随着互联网和移动互联网的迅猛发展,分布式系统的应用越来越普遍,如今的互联网应用大多数都采用了分布式系统技术。
分布式系统的优势在于可以将同一个应用分配到不同的服务器上,从而实现负载均衡和提高系统的可用性、可扩展性和性能等。
但是,分布式系统也带来了很多问题,其中数据一致性问题是最为突出的。
数据一致性问题是由于分布式系统中的数据存在多副本,不同副本的数据更新可能不同步导致的。
简单来说,就是在分布式系统中数据的读写操作不是原子操作,可能会因为网络延迟、硬件故障等原因造成数据不一致的情况。
例如,一个用户在A机器上更新了数据,而B机器上的数据副本还没有及时更新,此时如果其他用户在B机器上读取该数据就会出现错误。
要解决分布式系统中的数据一致性问题,通常有以下几种方案:1. 强一致性方案强一致性方案是指,在分布式系统中,所有的数据副本都必须保持一致,即同一时刻读取到所有数据副本的内容是相同的。
这样做的好处是程序员不必关心数据的一致性问题,但是强一致性方案对分布式系统的计算能力、网络延迟、存储能力等有较高要求,同时也会带来较高的成本。
2. 弱一致性方案弱一致性方案是指,在分布式系统中允许不同副本数据之间出现一定的延迟和不一致,但最终会达到一致状态,即一定时间内数据的可见性是不确定的。
这种方案对于分布式系统的计算和存储要求相对较低,能够有效提升系统的性能和并发度,但是需要针对具体应用场景做出量化的数据可见性处理。
3. 提高硬件可靠性提高硬件可靠性是指在分布式系统中采用冗余设计。
例如,保证每个节点都有多份数据副本,即可保障即使出现某个节点的错误,一般情况下也不会影响分布式系统的整体运作。
4. 副本之间进行同步在分布式系统中,各个数据副本之间必须通过某种方法进行同步。
典型的同步方案包括主从复制、群集复制、异步复制和同步复制等,根据具体的应用场景、性能要求和数据可见性等选择合适的同步方案。
网络操作系统题库

网络操作系统模拟试卷(一)一、单项选择题1.操作系统中采用多道程序设计技术来提高CPU和外部设备的()A.利用率B.可靠性C.稳定性D.兼容性答案:A解析:多道程序设计的主要目的是充分利用系统的所有资源且尽可能地让它们并行操作。
2.128.4.1.7属于()地址。
A.A类B.B类C.C类D.D类答案:B解析:IP地址有四种类型,根据各类型的格式可知题目中的地址为B类地址。
3.在Windows NT网络中,转发程序作为客户/服务器模式下的客户方,执行SMB协议,与服务器方的网络服务程序共处于()A.传输层B.会话层C.表示层D.网络层答案:B解析:Windows NT中,在客户/服务器模式下,转发程序作为客户方,执行SMB协议,与服务器方的服务程序同处于会话层。
4.当正在运行的程序要求数据传输时,CPU向通道发(),命令通道开始工作。
A.通道命令B.I/O命令C.程序状态字D.中断信号答案:B解析:当运行的程序要求数据传输时,CPU向通道发I/O指令,命令通道工作。
5.在操作系统中,一方面每个进程具有独立性,另一方面进程之间又具有相互制约性。
对于任何两个并发进程,它们()A.必定无关B.必定相关C.可能相关D. 可能相同答案:C解析:系统中进程具有独立性,但有的进程之间又具有依赖性和制约性,由此可知,对于任何两个并发进程,它们可能相关,也可能无关。
6.UNIX操作系统是一种()A.分时单用户操作系统B.实时单用户操作系统C.分时多用户操作系统D.实时多用户操作系统答案:C解析:根据操作系统的基本知识可知UNIX系统是一种分时多用户操作系统。
7.UNIX系统中的命令kill属于以下四类命令中的()A.网络通信类B.进程控制类C.信息处理类D.系统访问类答案:B解析:在UNIX系统中,进程控制类命令有:at、batch、crontab、kill、nice、nohup、ps。
8.在磁盘的移臂调度中,存取臂频繁改变移臂方向的调度算法是()A.先来先服务法B.扫描法C.电梯调度法D.最短查找时间优先法答案:A解析:移臂调度算法中先来先服务算法是一种最为简单的调度算法,它按照输入输出请求到达的先后次序,逐一完成访问请求。
数据库 同步方法

数据库同步方法数据库同步是指将多个数据库中的数据保持一致的过程,使得多个数据库中的数据始终保持相同或相近的状态。
在现实应用中,数据库同步非常重要,因为它可以确保数据的一致性和可靠性。
数据库同步的方法有很多种,下面将详细介绍几种常用的数据库同步方法。
1. 主从同步:主从同步是数据库同步的一种常见方式。
主数据库是所有写入操作的源头,而从数据库是主数据库的副本。
主数据库负责处理写入操作,并将写入的数据同步到从数据库中。
主数据库和从数据库之间通过网络连接,主数据库将写入操作的日志文件传输给从数据库,从数据库通过重放这些日志文件来进行数据同步。
主从同步的特点是简单易用,可以提供较高的数据一致性和可用性。
2. 双主同步:双主同步是指在多个数据库之间进行双向同步的方法。
每个数据库都可以接收写入操作,并将写入的数据同步到其他数据库中。
双主同步可以提供更好的性能和可扩展性,因为每个数据库都可以承担写入操作的负载。
但是,双主同步也面临一些挑战,如数据冲突和一致性问题,需要采取合适的冲突解决策略和同步协议。
3. 分布式同步:分布式同步是指在分布式系统中进行数据库同步的方法。
分布式系统由多个数据库节点组成,每个节点存储部分数据,并独立进行写入操作。
为了保持数据的一致性,需要在节点之间进行数据同步。
分布式同步可以提高系统的可伸缩性和容错性,但也需要解决数据同步的一致性和性能问题。
4. 日志复制同步:日志复制同步是一种常用的数据库同步方法。
数据库会生成写入操作的日志文件,包含所有对数据的修改,通过复制这些日志文件来进行数据同步。
日志复制同步的优点是实现简单,并且可以提供高性能的数据同步,但也需要解决数据冲突和一致性问题。
5. 基于时间戳的同步:基于时间戳的同步是一种常用的数据库同步方法。
每个数据库节点都维护一个全局时间戳,用于标记每个操作的时间。
当一个写入操作发生时,它会带有一个时间戳,并广播到其他节点进行数据同步。
其他节点接收到这个操作后,会根据时间戳决定是否接受这个操作。
集群同步机制

集群同步机制
集群同步机制是指在分布式系统中,多个节点之间保持数据一致性的一种机制。
在一个分布式系统中,不同的节点可能会同时对数据进行读写操作,如果没有同步机制,就会出现数据不一致的情况,从而导致系统的错误。
为了保证数据的一致性,分布式系统通常采用以下两种同步机制:
1.主从同步机制
主从同步机制是指在分布式系统中,将一个节点作为主节点,其他节点作为从节点,主节点负责接收所有的写操作,并将这些操作同步到所有的从节点上,从节点则只能进行读操作。
这样就可以保证所有节点上的数据是一致的。
2.多数派同步机制
多数派同步机制是指在分布式系统中,将所有节点分为若干个集合,每个集合中的节点称为一个派别,每个派别中的节点都需要达成一致意见,才能进行写操作。
具体来说,当一个节点想要进行写操作时,它需要先向其他节点发送请求,如果大多数节点同意该操作,那么该操作就可以执行。
这样就可以保证所有节点上的数据是一致的。
总的来说,集群同步机制是分布式系统中非常重要的一部分,它可以保证系统的数据一致性,从而提高系统的可靠性和稳定性。
解决分布式计算中的数据传输和同步问题

解决分布式计算中的数据传输和同步问题在分布式计算中,数据传输和同步问题是非常关键的,直接影响到系统的性能和可靠性。
在这篇文章中,我们将探讨如何解决这些问题,并介绍一些常用的技术和方法。
一、数据传输问题在分布式计算中,数据传输通常是指将数据从一个节点传输到另一个节点。
数据传输问题主要包括传输速度、数据可靠性和传输延迟等方面的挑战。
1.传输速度传输速度是指在单位时间内传输的数据量。
在分布式计算中,数据量通常很大,因此传输速度是一个关键因素。
为了提高传输速度,可以采取以下几种方法:-使用高速网络:采用高速网络(如千兆以太网、光纤网络等)可以显著提高数据传输速度。
-减少传输数据量:可以采取压缩算法或只传输数据的摘要或差异,从而减少传输数据量。
-并行传输:将数据分成多个部分,并通过多个通道并行传输,从而提高传输速度。
2.数据可靠性数据可靠性是指在传输过程中数据不发生丢失或损坏。
为了确保数据的可靠性,可以采取以下几种方法:-使用校验和:在传输数据前计算数据的校验和,并在接收端校验。
如果校验和不匹配,则说明数据损坏。
-使用冗余数据:传输数据时添加冗余信息,如校验和、冗余位等,以便在数据发生损坏时进行恢复。
-数据确认机制:在传输过程中,接收方向发送方发送确认信息,以确保数据的正确传输。
3.传输延迟传输延迟是指数据从发送方到接收方的时间延迟。
在分布式计算中,传输延迟可能会对系统的性能产生重大影响。
为了降低传输延迟,可以采取以下几种方法:-使用高速网络:采用高速网络可以显著降低传输延迟。
-数据预取:提前将数据缓存到接收方节点,以便在需要时能够立即访问。
-数据分片:将数据分成多个小块进行传输,从而降低传输延迟。
二、数据同步问题在分布式计算中,数据同步是指多个节点之间保持数据一致性的过程。
数据同步问题主要包括数据一致性、并发控制和数据冲突等方面的挑战。
1.数据一致性数据一致性是指多个节点之间的数据保持一致。
在分布式计算中,由于节点之间的通信延迟和可能的节点故障,很难保证数据的一致性。
进程同步与互斥 总结

进程同步与互斥总结
进程同步和互斥是操作系统中非常重要的概念,它们都是为了保证多个进程能够在正确的时间顺序和正确的方式下运行。
进程同步是指多个进程之间协调执行的过程,而互斥是指多个进程之间竞争有限资源的过程。
以下是关于进程同步与互斥的一些总结:
1. 进程同步方式:
- 信号量:通过对共享资源的访问进行限制,实现多个进程之间的同步。
- 互斥锁:通过对共享资源的访问进行互斥,实现多个进程之间的同步。
- 条件变量:通过对进程状态的检查,实现多个进程之间的同步。
2. 进程互斥方式:
- 临界区:多个进程同时访问共享资源时,只允许一个进程访问。
- 互斥量:多个进程同时访问共享资源时,通过加锁和解锁来实现互斥。
- 读写锁:多个进程同时访问共享资源时,允许多个进程同时读取,但只允许一个进程写入。
3. 进程同步与互斥的优缺点:
- 信号量:优点是可以同时处理多个进程,缺点是容易出现死锁。
- 互斥锁:优点是简单易用,缺点是只能处理两个进程之间的同步。
- 条件变量:优点是可以检查进程状态,缺点是只能处理两个进
程之间的同步。
- 临界区:优点是简单易用,缺点是只能处理两个进程之间的同步。
- 互斥量:优点是可以同时处理多个进程,缺点是容易出现死锁。
- 读写锁:优点是可以允许多个进程同时读取,缺点是会出现写入延迟的问题。
综上所述,进程同步与互斥是操作系统中非常重要的概念,需要根据具体的场景选择适合的同步方式或互斥方式来保证多个进程之
间的协调执行和有限资源的竞争。
进程同步问题总结

进程同步问题总结进程同步问题主要涉及到并发进程之间的协作和同步,以实现多进程的协同工作。
以下是进程同步问题的主要总结:1.进程同步的概念:进程同步是一种协调多个进程运行顺序的机制。
它使得进程能够在正确的时间点上,按照一定的顺序进行交互和协作。
2.进程同步的必要性:在多进程环境中,如果不同进程的执行顺序不协调,就可能导致数据不一致、竞争条件等问题。
进程同步可以解决这些问题,保证多进程环境下的正确性和可靠性。
3.进程同步的主要方法:a) 信号量(Semaphore):信号量是一种计数器,用于控制多个进程对共享资源的访问。
信号量的值表示当前可用的共享资源数量。
通过设置信号量的初始值和使用P、V操作(或称为wait和post操作),可以实现进程的同步和互斥。
b) 互斥锁(Mutex):互斥锁是一种同步机制,用于防止多个进程同时访问共享资源。
当一个进程获得锁时,其他进程将被阻塞,直到锁被释放。
c) 条件变量(Condition):条件变量用于实现进程间的条件等待。
当一个进程需要等待某个条件成立时,它会使用条件变量的wait操作阻塞自己。
当另一个进程改变了条件并通知等待的进程时,被阻塞的进程将被唤醒。
d) 事件(Event):事件是一种同步机制,用于通知其他进程某个事件已经发生。
事件通常分为信号事件和广播事件。
信号事件只通知一个进程,而广播事件通知所有等待该事件的进程。
4.死锁问题:在进程同步过程中,如果多个进程互相等待对方释放资源,就会产生死锁问题。
避免死锁的方法包括:避免循环等待、按顺序申请资源、设置超时时间等。
5.进程同步的应用:进程同步广泛应用于操作系统、并发程序设计、网络通信等领域。
例如,在操作系统中,进程同步可以用于实现进程调度、任务管理、文件系统等重要功能。
在并发程序设计中,进程同步可以用于实现多线程的协同工作、数据访问控制等功能。
在网络通信中,进程同步可以用于实现数据传输、远程过程调用等功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
分布式系统中进程的同步方法【摘要】在分布式操作系统中,为了实现进程的同步,首先要对系统中发生的事件进行排序,还要有良好的分布式同步算法。
本文对分布式操作系统中的一些常见算法进行了分析,从而解析才能使进程在分布式操作系统中更加正确有效地协同工作。
【关键字】分布式操作系统,进程,同步,算法。
【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)<c(i,a),则应当重置c(j,b)大于或等于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队列一样,环路中的进程可依次进入自己的临界区,因而不会出现饥饿现象。
进程同步是分布式系统尤其是松耦合分布式系统中一个非常重要的问题,对系统的工作效率和工作精度等性能指标有着至关重要的影响。
因此,必须在系统中采用某种机制来实现进程间的同步。
不同的系统对进程之间同步程度的要求是不相同的,某些分布式系统中,要求进程之间达到物理时钟上的同步,才能正确有效地协同工作。