分布式 系统 存储 数据库 云计算 (2)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
分布式操作系统
Logical Time and Multicast Communication
分布式操作系统中进程同步
• 在单机条件下,诸进程运行于同一个处理机和内 存环境中,进程通信十分简单。进程之间可以借 助于“共享存储器”进行直接通信。而在多机条 件下,相互合作的进程可能在不同的处理机上运 行,进程间的通信涉及处理机的通信问题。在松 散耦合系统中,进程间通信还可能要通过较长的 通信信道,甚至网络。因此,在多机条件下,广 泛采用间接通信方式,即进程间是通过消息进行 通信的。在分布式操作系统中,为了实现进程的 同步,首先要对系统中发生的事件进行排序,还 要有良好的分布式同步算法。
逻辑时钟
• 逻辑时钟(又叫timestamping时间戳), 它指能为系统中的所有活动赋予一个编 号机制,它可以利用一个本地计数器来 实现。 • 逻辑时钟的实质:把一个系统中的事件 映射到一个正整数集合上的一个函数C, 并满足:若事件a先发生与事件b, 则C(a)小于C(b)。 C(a)和C(b)分别是a和 b所对应的逻辑时钟函数值。系统中每个 进程都拥有自己的逻辑时钟。
• (4):如果两个事件x和y发生在不同进程中,而且 这两个进程也不交换信息,那么x→y和 y→x都不成立,这两个事件就称为并发事件, 简单的说,无法确定这两个事件谁先谁后。
• 例如:有三个进程p1,p2和p3,它们分别发生以 下事件: • 事件a:p1发送消息给p2; • 事件b:p2接收来自p1的消息; • 事件c:p2接收到p1的消息后发消息给p3; • 事件d:p3接收来自p2的消息; 显然,我们有:a→b→c→d; 然而,如果假设p2在事件b之前发生过某事件f, 例如,打印输出,尽管可以确定: f→b,f→c,f→d这些关系,但a和f之间的先后 关系是无法确定的。
分布式同步算法
• 采用完全分布式管理方式时,每个资源由位于 不用结点上的资源管理共同来管,每个资源管 理在决定分配它管理的资源以前,必须和其他 资源管理者协商,对于由各计算机共享和互斥 使用的各种资源,都要采用这种管理模式。因 此,采用这种管理方式时必须设计一个算法, 各资源管理者按此算法共同协商资源的分配。
• 先定义一个关系称作“先发生”,表达为 “a→b”读作“a在b之前发生”,意思是指 系统中所有进程认为事件a先于事件b发生, 有两三种情况会产生“先发生”关系: (1):如果a和b是同一进程中的两个事件,且a 发生在b之前,则a→b为真。 (2):如果a是一个进程发送消息事件,b为 另一个进程接受该消息事件,则a→b为真。 (3):存在某个事件c,若有则a→c并且 • 则 c→b,则a→b为真.
事件排序
• 进程同步的实质是对多个进程在执行顺序上的 规定,为此,应对系统中所发生的事件进行排 序。1978年Lamport提出不使用物理时钟,而 对分布式系统中所发生的事件进行排序的方法。 Lamport指出时钟同步不需要绝对同步。如果 两个进程是无关的,那么,它们的时钟根本无 需同步。而且对于相交进程来说,通常没有必 要让进程在绝对时间上完全一致,而只要限定 它们执行的先后次序一致就行了。
• 这个算法应满足:资源分配的互斥性、 不产生饿死现象、且各资源管理者处于 平等地位而无主控者。通常把这种资源 分配算法称分布式同步算法,由同步算 法构成的机制称分布式同步机制。
• 垂直方向代表空间,水平方向代表时间, 带标志的水平线代表进程(process),带 标志的点代表事件,带箭头的线代表消息 (message)。
令牌传送法
• 为实现进程互斥,在系统中可设置令牌 (token),表示存取权力。令牌本身是一种 特殊格式的报文,通常只有一个字节的长度, 它不断地在由进程组成的逻辑环(logical ring) 中循环。环中的每一个进程只有唯一的前驱者 (prodecessor)和唯一的后记者 (successor)。当环路中的令牌循环到某个 进程并被接收时,如果该进程希望进入临界区, 它便保持该令牌,进入临界区。一旦它退出临 界区,再把令牌传送给后继进程。如果接收到 令牌的进程并不要求进入临界区,便直接将令 牌传送给后继进程。由于逻辑环中只有一个令 牌,因此也就实现了进程的互斥。
事件排序问题
• 在单处理机系统及紧密耦合的多处理机系统中, 由于共有一种时钟又共享存储器,确定两个事 件的先后次序比较容易。 • 而在分布式系统中,既无共用时钟,又无共享 存储器,自然也就难于确定两个事件发生的先 后次序了。进程之间通过网络通信联系,时间 消息通过网络传递后也会有延迟,可能资源管 理程序接到不同机器上的进程同时发来的资源 申请,可是先接到的申请的提出时间,很可能 晚于后接到的申请的提出时间。所以,必须先 要解决对不同计算机中发生的事件进行排序问 题,然后,在设计出性能优越的分布式同步算 法。
• 使用令牌时,必须满足以下两点要求: (1)逻辑环应该具有及时发现环路中某进程失效或退出, 以及通信链路故障的能力。一旦发现上述情况,应立即 撤消该进程,或重构逻辑环。 (2)必须保证逻辑环中,在任何时候都有一个令牌在循 环,一旦发现令牌丢失,应立即选定一个进程产生新令 牌。利用令牌传送法实现互斥,所需要的消息数目是不 定的。因为,不管是否有进程要求进入其临界区,令牌 总是在逻辑环中循环,当逻辑环中所有进程都要求进入 临界区时,平均每个进程访问临界区只需要一个消息。 但如果在令牌循环一周的时间内,只有一个进程要求进 入临界区,则等效地需要N个消息(N是逻辑环中进程 数)。即使无任何进程要进入临界区,仍需不断的传输 令牌。另一方面,在令牌传送法中,存在着自然的优先 级关系,即上游站具有更高的优先级,它能够优先进入 临界区。就好象FCFS队列一样,环路中的进程可依次进 入自己的临界区,因而不会出现饥饿现象。
逻辑时钟
• 上述定义反之不成立,因为两个并发事 件的逻辑时钟的大小没有定义,所以, 逻辑时钟小的不见得先发生。。
来自百度文库
• 形式(m,V ,i)(其中,m为消息内容,V为 该消息的向量时钟,i为结点编号)。
• 基于传送的假定,通道可以分为: F I F O (先进先出)、因果顺序传送和随机顺序传送。 • FIFO:如果一个通道保持通过它发送的消息的 顺序 • 因果顺序传送:假设进程P1和P2分别在事件e1 和e2中给进程P3发送消息m1和m2。如果e1在 e2之前发生,则进程P3在接收m2之前接收m1。 • 随机顺序传送的通道没有限制。 • 在没有明确说明给定通道的类型时,我们都假 设它是F I F O通道。
Logical Time and Multicast Communication
分布式操作系统中进程同步
• 在单机条件下,诸进程运行于同一个处理机和内 存环境中,进程通信十分简单。进程之间可以借 助于“共享存储器”进行直接通信。而在多机条 件下,相互合作的进程可能在不同的处理机上运 行,进程间的通信涉及处理机的通信问题。在松 散耦合系统中,进程间通信还可能要通过较长的 通信信道,甚至网络。因此,在多机条件下,广 泛采用间接通信方式,即进程间是通过消息进行 通信的。在分布式操作系统中,为了实现进程的 同步,首先要对系统中发生的事件进行排序,还 要有良好的分布式同步算法。
逻辑时钟
• 逻辑时钟(又叫timestamping时间戳), 它指能为系统中的所有活动赋予一个编 号机制,它可以利用一个本地计数器来 实现。 • 逻辑时钟的实质:把一个系统中的事件 映射到一个正整数集合上的一个函数C, 并满足:若事件a先发生与事件b, 则C(a)小于C(b)。 C(a)和C(b)分别是a和 b所对应的逻辑时钟函数值。系统中每个 进程都拥有自己的逻辑时钟。
• (4):如果两个事件x和y发生在不同进程中,而且 这两个进程也不交换信息,那么x→y和 y→x都不成立,这两个事件就称为并发事件, 简单的说,无法确定这两个事件谁先谁后。
• 例如:有三个进程p1,p2和p3,它们分别发生以 下事件: • 事件a:p1发送消息给p2; • 事件b:p2接收来自p1的消息; • 事件c:p2接收到p1的消息后发消息给p3; • 事件d:p3接收来自p2的消息; 显然,我们有:a→b→c→d; 然而,如果假设p2在事件b之前发生过某事件f, 例如,打印输出,尽管可以确定: f→b,f→c,f→d这些关系,但a和f之间的先后 关系是无法确定的。
分布式同步算法
• 采用完全分布式管理方式时,每个资源由位于 不用结点上的资源管理共同来管,每个资源管 理在决定分配它管理的资源以前,必须和其他 资源管理者协商,对于由各计算机共享和互斥 使用的各种资源,都要采用这种管理模式。因 此,采用这种管理方式时必须设计一个算法, 各资源管理者按此算法共同协商资源的分配。
• 先定义一个关系称作“先发生”,表达为 “a→b”读作“a在b之前发生”,意思是指 系统中所有进程认为事件a先于事件b发生, 有两三种情况会产生“先发生”关系: (1):如果a和b是同一进程中的两个事件,且a 发生在b之前,则a→b为真。 (2):如果a是一个进程发送消息事件,b为 另一个进程接受该消息事件,则a→b为真。 (3):存在某个事件c,若有则a→c并且 • 则 c→b,则a→b为真.
事件排序
• 进程同步的实质是对多个进程在执行顺序上的 规定,为此,应对系统中所发生的事件进行排 序。1978年Lamport提出不使用物理时钟,而 对分布式系统中所发生的事件进行排序的方法。 Lamport指出时钟同步不需要绝对同步。如果 两个进程是无关的,那么,它们的时钟根本无 需同步。而且对于相交进程来说,通常没有必 要让进程在绝对时间上完全一致,而只要限定 它们执行的先后次序一致就行了。
• 这个算法应满足:资源分配的互斥性、 不产生饿死现象、且各资源管理者处于 平等地位而无主控者。通常把这种资源 分配算法称分布式同步算法,由同步算 法构成的机制称分布式同步机制。
• 垂直方向代表空间,水平方向代表时间, 带标志的水平线代表进程(process),带 标志的点代表事件,带箭头的线代表消息 (message)。
令牌传送法
• 为实现进程互斥,在系统中可设置令牌 (token),表示存取权力。令牌本身是一种 特殊格式的报文,通常只有一个字节的长度, 它不断地在由进程组成的逻辑环(logical ring) 中循环。环中的每一个进程只有唯一的前驱者 (prodecessor)和唯一的后记者 (successor)。当环路中的令牌循环到某个 进程并被接收时,如果该进程希望进入临界区, 它便保持该令牌,进入临界区。一旦它退出临 界区,再把令牌传送给后继进程。如果接收到 令牌的进程并不要求进入临界区,便直接将令 牌传送给后继进程。由于逻辑环中只有一个令 牌,因此也就实现了进程的互斥。
事件排序问题
• 在单处理机系统及紧密耦合的多处理机系统中, 由于共有一种时钟又共享存储器,确定两个事 件的先后次序比较容易。 • 而在分布式系统中,既无共用时钟,又无共享 存储器,自然也就难于确定两个事件发生的先 后次序了。进程之间通过网络通信联系,时间 消息通过网络传递后也会有延迟,可能资源管 理程序接到不同机器上的进程同时发来的资源 申请,可是先接到的申请的提出时间,很可能 晚于后接到的申请的提出时间。所以,必须先 要解决对不同计算机中发生的事件进行排序问 题,然后,在设计出性能优越的分布式同步算 法。
• 使用令牌时,必须满足以下两点要求: (1)逻辑环应该具有及时发现环路中某进程失效或退出, 以及通信链路故障的能力。一旦发现上述情况,应立即 撤消该进程,或重构逻辑环。 (2)必须保证逻辑环中,在任何时候都有一个令牌在循 环,一旦发现令牌丢失,应立即选定一个进程产生新令 牌。利用令牌传送法实现互斥,所需要的消息数目是不 定的。因为,不管是否有进程要求进入其临界区,令牌 总是在逻辑环中循环,当逻辑环中所有进程都要求进入 临界区时,平均每个进程访问临界区只需要一个消息。 但如果在令牌循环一周的时间内,只有一个进程要求进 入临界区,则等效地需要N个消息(N是逻辑环中进程 数)。即使无任何进程要进入临界区,仍需不断的传输 令牌。另一方面,在令牌传送法中,存在着自然的优先 级关系,即上游站具有更高的优先级,它能够优先进入 临界区。就好象FCFS队列一样,环路中的进程可依次进 入自己的临界区,因而不会出现饥饿现象。
逻辑时钟
• 上述定义反之不成立,因为两个并发事 件的逻辑时钟的大小没有定义,所以, 逻辑时钟小的不见得先发生。。
来自百度文库
• 形式(m,V ,i)(其中,m为消息内容,V为 该消息的向量时钟,i为结点编号)。
• 基于传送的假定,通道可以分为: F I F O (先进先出)、因果顺序传送和随机顺序传送。 • FIFO:如果一个通道保持通过它发送的消息的 顺序 • 因果顺序传送:假设进程P1和P2分别在事件e1 和e2中给进程P3发送消息m1和m2。如果e1在 e2之前发生,则进程P3在接收m2之前接收m1。 • 随机顺序传送的通道没有限制。 • 在没有明确说明给定通道的类型时,我们都假 设它是F I F O通道。