东北大学2023分布式操作系统考试重点

news2024/11/18 12:45:04

Note:以下10个点为老师画的重点

1.分布式系统目标

第一章 分布式系统概论,第二节

2.RPC过程

第四章 分布式通信管理, 第二节

在这里插入图片描述

  1. 客户过程以普通方式调用相应的客户存根
  2. 客户存根建立消息并激活内核陷阱
  3. 内核将消息发送到远程内核
  4. 远程内核将消息送到服务器存根
  5. 服务器存根取出消息中的参数后调用服务器的过程
  6. 服务器完成工作后将结果返回值服务器存根
  7. 服务器存根将它打包并激活内核陷阱
  8. 远程内核将消息发送至客户端内核
  9. 客户端内核将消息交给客户存根
  10. 客户存根从消息中取出结果返回给客户

效果:讲客户过程对客户存根发出的本地调用转换成对服务器过程的本地调用,而客户和服务器都不会意识到有中间步骤的存在。

3.时间戳向量

第四章 分布式通信管理 第四节

时间戳向量:设组内有n个进程,每个进程设置一个n元向量 V [ n ] = { V [ 1 ] , V [ 2 ] , . . . , V [ n ] } V[n] = \{V[1], V[2], ..., V[n]\} V[n]={V[1],V[2],...,V[n]}

发送者:修改向量: V [ j ] = V [ j ] + 1 ; V[j] = V[j] + 1; V[j]=V[j]+1; (第j个进程)

接收者:

  • 接受条件:(1) L [ j ] = V [ j ] − 1 L[j]=V[j]-1 L[j]=V[j]1;(2) L [ i ] ≥ V [ i ] ( i ≠ j ) L[i] ≥ V[i] (i \neq j) L[i]V[i](i=j),其中 L [ j ] L[j] L[j]表示本地向量的第j个维度
  • 修改向量:$L[j]=V[j] $如果可以接收

其中, V i V_i Vi是发送方向量种的第i位, L i L_i Li是接收方向量中的第i位,假设消息由进程j发送。

举例1:对于下列表格表示的进程,由进程1向其他的进程发送消息,此时刻,哪些进程需要等待,哪些进行可以接收消息。

在这里插入图片描述

对于此题,需要分别分析两个条件是否满足。

对于条件(1):消息由进程1发送,则首先需要满足 V 1 = L 1 + 1 V_1 = L_1 + 1 V1=L1+1

也就是对于每个进程的第一维数据(4,3,3,3,2,3)而言,4=3+1,所以可以看出进程5不能接收消息,需要等待,其余进程均满足条件(1)。

对于条件(2):消息由进程1发送,则需要满足 i ≠ j i \neq j i=j(即所有进程排除第一维数据),有 V i ≤ L i V_i ≤ L_i ViLi

所以对于1-6这几个进程而言,排除第一维数据后,其余的数据都需要比进程1的各维数据相等或更大,所以可以看出对于进程3而言5<6,所以进程3不能接收消息,需要等待。

综上两个条件,进程3,5需要等待,其余进程均可同时满足条件(1)(2),所以可以接收进程1发送的消息。

示例2:下面表格中分别是进程1到进程6中消息的时间戳向量,在满足因果关系的前提下,试分析说明进程2中当前的消息m在哪些进程中能够递交,在哪些进程中暂时不能递交。

123456
777577
576666
555555
444434
333333
111111

就是进程1,4,5需要等待;3,6可以接收消息。

4.转发指针

第五章 分布式命名管理 第二节

当实体从A移动到B之后,在A上设置一个指向B的引用

优点:客户可利用传统的命名服务

缺点:间址链可能会很长、链的中间节点需要维护转发信息、链容易断

目标:限制链的长度,保证链的鲁棒性

在这里插入图片描述

5.DHT

第五章 分布式命名管理 第二节

在这里插入图片描述

149111418202128
11491114182021281
22491114182028281
34991418182828281
48914182028282814
51618202828144914

6.lamport算法

第六章 分布式同步控制 第二节

校正算法

  • a → b a\rightarrow b ab
  • if C ( b ) < C ( a ) C(b)<C(a) C(b)<C(a), then C ( b ) = C ( a ) + 1 C(b) = C(a) +1 C(b)=C(a)+1

三个进程,各有自己的局部时钟,他们速率不同;通过Lamport算法,校正时钟

在这里插入图片描述

校正算法:

  1. P i P_i Pi 在执行一个事件之前, P i P_i Pi执行 C i ← C i + 1 C_i \leftarrow C_i + 1 CiCi+1
  2. $P_i 在发送消息 m 给 在发送消息m给 在发送消息mP_j$时,时间戳 t s ( m ) ← C i ts(m) \leftarrow C_i ts(m)Ci
  3. P j P_j Pj接收到消息m后, C j ← m a x { C j , t s ( m ) } C_j \leftarrow max\{C_j, ts(m)\} Cjmax{Cj,ts(m)}

7.选举算法

第六章 分布式同步控制 第四节

8.以数据为中心的一致性模型

第七章 分布式一致性与复制管理 第二节

8.1 连续一致性

连续一致性(continuous consistency)

  • (数值误差,次序误差,陈旧度)
  • 数值误差:未传播的写操作的权重值
  • 次序误差:临时写操作的个数
  • 陈旧度:写操作传播的延迟(只要一个副本不太旧,就可以容忍它提供旧的数据。例如,天气报告)

一致性单元(conit):受控的数据集

顺序偏差即在本地还没有提交的更新操作的个数

数值偏差(x,y): x表示其他副本已经做了, 但是本地副本还没看见的操作数量; Y表示这些操作带来的数值变化

举例:conit(x, y)

在这里插入图片描述

<5, B>:5为时间戳,B为从B传过来

示例1:如下图所示,为持续一致性的示意图。在副本A和副本B中有含数据项x和y,这两个变量都假设初始化为0。操作表格中阴影部分表示为持久化(永久性)的操作,不能回滚;其余操作表示暂时的更新操作。请采用向量时钟、顺序误差和数值误差三个指标描述两个副本之间的差异。(其中数值误差用各数据项的差分和表示)

在这里插入图片描述

(1)向量时钟:

  • 对于副本A而言,由于副本A和副本B中有含数据项x和y,这两个变量都假设初始化为0,副本A最后的操作是<14, A>,所以A的向量时钟:A=(15, 5)
  • 对于副本B而言,由于副本A和副本B中有含数据项x和y,这两个变量都假设初始化为0,副本A最后的操作是<10, B>,所以B的向量时钟:B=(0, 11)

(2)顺序偏差

  • 对于副本A而言,阴影部分表示为持久化(永久性)的操作,不能回滚,而A中不是阴影部分的有三个,即<8, A>, <12, A>, <14, A>,所以A中有三个暂存的操作,即顺序偏差为3
  • 对于副本B而言,阴影部分表示为持久化(永久性)的操作,不能回滚,而B中不是阴影部分的有二个,即<5, B>, <10, B>,所以B中有二个暂存的操作,即顺序偏差为2

(3)数值偏差

  • 对于副本A而言,A已经收到了B的<5, B>,但是还未看到<10, B>,所以数值偏差=1(即还有一个没有收到);而此时A中已提交的值是(x, y)=(2, 0),假设收到B的<10,B>之后,y=5;所以副本A的数值偏差=(1,5)
  • 对于副本B而言,B还未看到A中的<8, A>,<12, A>, <14, A>,所以数值偏差=3(即还有三个没有收到);而此时B中已提交的值为(x,y)=(0,0),假设收到A的<8, A>,<12, A>, <14, A>之后,x=(1+2)*2,所以偏差的权重= 6;所以副本B的数值偏差=(3,6)

示例2:如下图所示,为持续一致性的示意图。在副本A和副本B中有含数据项x和y,这两个变量都假设初始化为0。操作表格中阴影部分表示为持久化(永久性)的操作,不能回滚;其余操作表示暂时的更新操作。请采用向量时钟、顺序误差和数值误差三个指标描述两个副本之间的差异。(其中数值误差用各数据项的差分和表示)

在这里插入图片描述

A:向量时钟:(10, 0);顺序偏差:2 ;数值偏差:(2, 16)

B:向量时钟:(3, 17);顺序偏差:2 ;数值偏差:(1, 8)

8.2一致性模型

  • 严格一致性:对数据项x的读操作返回的值为最近写入x的值
  • 顺序一致性:所有进程执行的结果,等同于它们的操作按某种顺序在数据仓上执行的结果。每个进程的操作都按照程序规定的顺序。

9.容错性的基本概念

分布式系统设计中的一个重要目标,是以这样的方式构建系统:它可以从部分失效中自动恢复,而且不会严重的影响整体性能。特别是,当故障发生时,分布式系统应该在进行恢复的同时继续以可接受的方式进行操作,也就是说,它应该能容忍错误,在发生错误时某种程度上可以继续操作。

第8章 分布式系统之容错 - 简书 (jianshu.com)

10.lamport递归算法

第八章 分布式容错管理 第二节

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/96127.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机毕设Python+Vue写字楼物业管理系统(程序+LW+部署)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

C++ Reference: Standard C++ Library reference: Containers: map: map: operator[]

C官网参考链接&#xff1a;https://cplusplus.com/reference/map/map/operator[]/ 公有成员函数 <map> std::map::operator[] C98 mapped_type& operator[] (const key_type& k); C11 mapped_type& operator[] (const key_type& k); mapped_type& …

SQL基础——数据更新

数据更新前言思维导图数据的插入&#xff08;INSERT语句的使用方法&#xff09;什么是INSERTINSERT语句的基本语法语法4.1 INSERT语句代码示例4.2 创建 ProductIns表的CREATE TABLE语句代码示例4.3 向表中插入一行数据代码示例4.4 INSERT插入多行数据列清单的省略代码示例4.5 省…

chatGPT的49种应用场景,及各开发语言对接chatGPT参考指南

前沿 可能有人在问我&#xff0c;勇哥为什么chatGPT都被微信下架了&#xff0c;你还要写相关的chatGPT的文章呢&#xff1f;其实我们先不论微信下架的原因&#xff0c;单说chatGPT的达芬奇模型给勇哥带来的科技感早就超越了一切&#xff0c;所以勇哥依旧决定连续熬两个夜为大家…

【与达梦同行】达梦驱动图谱

达梦驱动图谱 摘要 达梦提供了大部分主流开发语言的驱动接口&#xff0c;在我用使用过的国产数据库中对客户端驱动的支持应该算是非常不错的。本文主要介绍达梦的驱动开发&#xff0c;通过实际操作&#xff0c;从环境搭建到实践验证&#xff0c;介绍了达梦各种语言驱动的详细使…

博途S7-1500T 使用工艺对象驱动液压轴(含SimaHydTO库)

利用工艺对象控制液压轴位置含PLC控制和仿真程序文档资料下载地址如下: https://support.industry.siemens.com/cs/document/109756217/simatic-s7-1500(t)-lsimahydto-for-hydraulic-applications-and-hydraulic-presses?dti=0&dl=en&lc=zh-CNhttps://support.indu…

圣诞树-python绘制雪夜圣诞树并封装为小程序

绘制雪夜圣诞树并封装为小程序 使用turtle绘制一颗雪夜圣诞树&#xff0c;然后封装成exe小程序送给你的朋友吧&#xff01; PS&#xff1a;只能在windows运行。 转载注明本文链接和作者 先看效果图&#xff1a; 绘制雪夜圣诞树 由于代码有三百多行&#xff0c;我放在下面的两…

一文彻底搞懂cookie、session、token

1.Cookie Cookie是客户端保存用户信息的一种机制&#xff0c;用来记录用户的一些信息&#xff0c;实际上Cookie是服务器在本地机器上存储的一小段文本&#xff0c;并随着每次请求发送到服务器。 Cookie技术通过请求和响应报文中写入Cookie信息来控制客户端的状态。 Cookie会…

28.项目搭建网关

项目搭建网关 一、项目架构 二、创建模块&#xff0c;引入依赖&#xff0c;创建启动类&#xff0c;添加application.yml配置文件 2.1依赖 <dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-…

【AI with ML】第 9 章 :了解序列和时间序列数据

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

【linux】linux环境变量初始化与对应文件的生效顺序

1.认识环境变量&#xff08;PATH) 环境变量&#xff08;PATH&#xff09;是一个列表&#xff0c;里面是有序的一些程序的地址&#xff08;一般是xxx/bin&#xff09;&#xff0c;添加环境变量后&#xff0c;系统在任何目录输入命令&#xff0c;都可以识别命令并执行命令对应程…

一个工程师的自我修养!

Datawhale干货 Tw93&#xff0c;前端工程师&#xff0c;Datawhale邀约作者对计算机科学的掌握程度&#xff0c;决定了一个计算机行业从业者能走多远。吴军博士在《浪潮之巅&#xff08;第四版&#xff09;》对工程师做了五个级别的划分&#xff1a;一级&#xff1a;能够开创一个…

询问ChatGPT来了解什么是边缘计算,有哪些特点,有哪些关键技术,和云计算的关系是什么?

什么是云计算 云计算是一种计算架构&#xff0c;它使用互联网作为基础设施&#xff0c;允许用户通过网络访问共享的计算资源&#xff0c;而不需要拥有专门的本地计算机硬件和软件。云计算提供了计算能力、存储空间、应用程序和服务等&#xff0c;并使用计费模型收取使用费用。…

springboot基于ssm框架实现的家具商城管理系统

一、项目简介 本项目是一套基于springboot框架实现的家具商城管理系统&#xff0c;主要针对计算机相关专业的正在做bishe的学生和需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目可以直接作为bishe使用。 项目都经过严格调试&#…

为什么在SPI通信中提供不同的模式?

SPI传输模式 因为SPI是全双工也就是说&#xff08;MOSI和MISO&#xff09;上同时发送和接收数据 时钟极性&#xff08;CPOL&#xff09; 时钟相位&#xff08;CPHA&#xff09;是定义SPI总线使用的时钟格式得主要参数&#xff0c;根据SPOL参数&#xff0c;SPI时钟可以是反向或…

寻找两个正序数组的中位数K个一组翻转链表

文章目录1. [寻找两个正序数组的中位数](https://leetcode.cn/problems/median-of-two-sorted-arrays/)2. [K个一组翻转链表](https://leetcode.cn/problems/reverse-nodes-in-k-group/)1. 寻找两个正序数组的中位数 首先&#xff0c; 中位数的作用就是将正序数组的两端进行分…

[内网渗透]—权限维持

Skeleton Key(万能密码) 原理 当拿到域控权限后,使用mimikatz可以注入Skeleon Key,将 Skeleton Key 注入域控制器的 lsass.exe 进程,这样会在域内的所有账号中添加一个 Skeleton Key,而这个key是自己设定的所以可以随时共享访问。 PS:由于注入到lsass.exe进程中,所以每…

JS图解 | Java程序员的JS | 系统性学习 | 无知的我费曼笔记

无知的我正在复盘JS 该笔记特点是 重新整理了涉及资料的一些语言描述、排版而使用了自己的描述对一些地方做了补充说明。比如解释专有名词、类比说明、对比说明、注意事项提升了总结归纳性。尽可能在每个知识点上都使用一句话 || 关键词概括更注重在实际上怎么应用提出并回答了…

跟腾讯架构大师学网络框架与后台架构

目录 跟腾讯架构大师学网络框架与后台架构 单机服务 1、单机服务&#xff1a;基本概念 2、单机服务&#xff1a;同步阻塞​编辑 3、单机服务&#xff1a;异步非阻塞框架 4、单机服务&#xff1a;典型框架&#xff1a; 5、单机服务&#xff1a;协程框架 6、单机服务&…

Spring之自定义Bean何时被扫描注册?

1. 前言 在AnnotationConfigApplicationContext的构造函数里&#xff0c;Spring会创建AnnotatedBeanDefinitionReader对象&#xff0c;它的基本作用是将基于注解的BeanClass封装成BeanDefinition&#xff0c;并注册到BeanFactory中。同时AnnotatedBeanDefinitionReader的构造函…