《操作系统导论》 分布式

分布式

一、介绍

1.目标

通信基本是不可靠的,构建一个看起来很少失败的系统,尽管它的组件经常出现故障

2.可靠的通信层

  • ack:利用接收方返回的ack来判断是否成功
  • 发送方需要保存副本,等待超时的重发
  • 利用计数器来添加发送信号的标识,防止重复的无效发送和接受

3.通信抽象

  • 分布式共享内存:在不同的机器上共享一个大的虚拟地址空间

  • 远程过程调用(RPC):使在远程机器上执行代码的过程像调用本地函数一样直接

    • 存根生成器(协议编译器):自动化打包函数参数和结果,输入服务器希望导出到客户端的一组调用

      • 客户端存根创建消息缓冲区:连续字节数组

      • 将所需要的信息打包到缓冲区:函数标识符,函数参数

      • 消息发送到目标RPC服务器

      • 等待回复

      • 解包返回代码和其他参数

      • 从存根返回到应用程序

      • 服务器解包信息:提取函数标识符和参数 主线程负责信息的接受,从线程池中取出一个线程执行

      • 调用实际函数

      • 打包结果

      • 发送回复

    • 运行时库:

      • 通过DNS服务器找到远程服务器
      • 构建RPC传输协议,可能会选择UDP更高效地实现

4.其他问题

  • 远程调用时间过长:没有立即回复时,接收方生成一个显式确认表示已经接收到了
  • 大数据传输:将大包分组
  • 客户端和服务器一方采用大端序,一方小端序,如果不一样,那么需要转换
  • RPC允许异步调用

二、网络文件系统(NFS)

1.定义

一种用于客户端和服务器通信的开放协议

2.简单快速的服务器崩溃恢复

  • 无状态:服务器要求客户端提交请求时,能够提供无状态的请求(即每一次都能依靠该状态独立完成运行),那么发生崩溃时,只需要客户端重新发送即可
  • 句柄:唯一描述文件或目录
    • 卷标识符:告知服务器,请求指向那个文件系统
    • inode号:告知服务器,请求访问哪个分区
    • 世代号:复用inode
  • 过程
    • 客户端传递句柄和文件名称
    • 服务器返回句柄及其属性(包括文件的元信息)
    • 客户端请求打开文件,则向服务器发出查找请求,传递根文件句柄和文件名
  • 幂等性:操作执行一次和执行多次的结果相同

3.客户端缓存

  • 更新可见性:
    • 本地数据更新已经完成,但是还在缓存中,尚未写入服务器,其他机器会读到旧数据
    • 关闭时刷新:文件关闭后,客户端将刷新所有脏页到服务器
  • 陈旧的缓存:
    • 服务器已经完成了数据的更新,但是本地还在使用缓存中的旧数据
    • 每次使用都会询问服务器缓存中的数据是否正确(为了避免高频的访问,可能会有一小段时间的信任期)

三、Andrew文件系统(AFS)

1.目标

实现更好的扩展性

2.AFS v1

  • open请求之后,服务器会缓存整个文件到本地,后续再使用只需要发送信号TestAuth来验证数据是否更新,若没有更新则直接在本地操作
  • 问题
    • 验证信息TestAuth太多了
    • 路径查询成本很高:频繁发送验证信息,客户端发送了一个很长的路径,需要一级级查询

3.AFS v2

  • 回调:不需要一直发送TestAuth,服务器会通知客户端其缓存中的文件被修改
  • 文件标识符:客户端会对每一个文件设置标识符,告知服务器,进而完成回调

4.缓存一致性

  • 更新可见性:当一个客户端更新后,服务器会让所有拥有该文件的客户端重新来
  • 多个一起写,则最后一个成功(NFS可能会混合)

5.崩溃恢复

  • 服务器崩溃:重连后,告知所有客户端停止相信
  • 客户端崩溃:重连后,怀疑所有缓存,向服务器发送TestAuth查询
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
操作系统导论》是一本关于操作系统基本概念和原理的教材。操作系统是计算机系统中最核心的软件之一,它管理和控制计算机硬件资源,并提供给用户和应用程序一个简单易用、高效稳定的接口。 《操作系统导论》主要内容包括操作系统的历史、发展背景,以及操作系统的基本概念、功能和特性等。通过对操作系统的研究,读者能够了解操作系统的架构和组成,掌握操作系统的重要原理和算法,并能够利用这些知识进行操作系统的设计和开发。 在《操作系统导论》中,读者将深入学习操作系统的各个模块,比如进程管理、内存管理、文件系统等。通过对这些模块的学习,读者能够理解操作系统的核心功能,并能够掌握操作系统的基本工作原理。此外,书中还介绍了操作系统的各种经典算法和策略,如调度算法、页面置换算法等,这些算法是实现操作系统功能的基础。 除了基本概念和原理外,《操作系统导论》还涵盖了一些研究热点和前沿技术,如分布式系统、虚拟化技术和云计算等。通过深入了解这些新领域的内容,读者可以了解到操作系统在不同领域的应用和发展趋势。 总之,《操作系统导论》是一本系统介绍操作系统的教材,内容丰富、深入浅出,适合计算机科学与技术相关专业的学生和从业人员阅读使用。通过学习这本书,读者能够全面了解操作系统的基本概念和原理,提高操作系统的设计和开发能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值