Li Yingping's Studio.

《高级操作系统》复习纲要

字数统计: 1.8k阅读时长: 6 min
2021/01/12

一、分布式系统概述


1. 什么是分布式系统?

  • 分布式系统是若干独立计算机的集合,它们对于用户来说就像一个系统。
  • 分布式系统屏蔽系统中种类各异的计算机和网络,常常通过一个软件层(中间件)组织起来。
  • 常见的分布式系统有:大学或公司的工作站网络、支持订单自动处理的工作流系统以及万维网。

2. 分布式系统中透明性的种类、定义。

  • 分布式系统的透明性
透明性 描述
访问 隐藏数据表示形式以及访问方式的不同
位置 隐藏数据所在位置
迁移 隐藏资源是否已移动到另一个位置
重定位 隐藏资源是否在使用中已移动到另一个位置
复制 隐藏资源是否已被复制
并发 隐藏资源是否由若干相互竞争的用户共享
故障 隐藏资源的故障和恢复
持久性 隐藏资源(软件)位于内存里或在磁盘上

3. 分布式系统中的拓展技术有哪些?

  • 分布式系统的拓展技术

    • 隐藏通信等待时间
      • 异步通信
      • 减少通信量
    • 分布技术:分割组件、分散到系统中(DNS、WWW)
    • 复制技术:多拷贝
  • 减少通信量的实例:将由服务器检验表单改成由客户端检验表单;

  • 分布技术的实例:将DNS名字空间划分为区;
  • 复制技术的实例:
    • 复制:增加可用性,有助于负载均衡;
    • 缓存:在访问资源的客户周围制作资源备份;
    • 复制技术带来了一致性问题。

二、体系结构


1. 客户端-服务器模型

  • 如下图所示,在C-S模型中,服务器(Server)指实现某个特定服务的进程;客户端(Client)指向服务器请求服务的进程;客户端-服务器之间的一般交互形式是请求/回复(Request/Reply)

    image-20210110163857420

  • 在局域网内,可以建立无连接的协议,高效,但会受传输故障的影响;在广域网上,可以建立基于连接的协议,性能相对较低,但可靠。

  • 在Client上,应用程序常常被组织为三个层次:用户界面层处理层数据层

    • 用户界面层:用户交互所需的一切;
    • 处理层:应用程序核心功能;
    • 数据层:操作数据或文件系统,保持一致性;

image-20210110164057779

2. 多层体系结构

  • 在常见的C-S模型中(物理两层体系结构),客户端和服务器的界限划分有多种可能:

    image-20210110164249737

  • 同时,服务器也可以充当客户端的角色,比如下面这一应用场景(物理三层体系结构):

    image-20210110164346045

三、分布式进程管理


1. 进程与线程的比较。

比较项 进程 线程
地址空间和资源 进程间相互独立 同一进程下的线程共享
通信 进程间通信通过IPC进行 线程间通信可直接读写进程的数据段,但需要同步和互斥技术保证一致性
调度 进程上下文切换慢 线程上下文切换快
  • 进程与线程的总结:
    • 多线程能提高性能;
    • 线程不像进程那样彼此隔离,并受到系统自动提供的保护,因此多线程应用程序开发需要付出更多努力。

2. 多线程服务器的优点。

  • 显著简化服务器代码;
  • 使得应用并行技术开发高性能服务器变得更加容易;
  • 保留顺序处理的思路,使用阻塞性的系统调用以提升性能;

3. 代码迁移的动机有哪些?

  • 实现负载均衡:将进程从负载重的系统迁移到负载轻的系统,从而改善整体性能;
  • 改善通信性能:交互密集的进程可迁移到同一个节点执行以减少通信开销;当进程要处理的数据量较大时,最好将进程迁移到数据所在的节点;
  • 保障可用性:需长期运行的进程可能因为当前运行机器要关闭而需要迁移;
  • 使用特殊功能:可以充分利用特定节点上独有的硬件或软件功能。

4. 进程对资源以及资源对机器的绑定

  • 进程对资源的绑定类型有三种,由强到弱分别是按标志符按值按类型
  • 资源对机器的绑定类型有三种,由强到弱分别是紧固连接附着连接未连接
  • 在代码迁移时,对于资源的处理有四种形式:
    • MV:移动资源;
    • GR:建立全局系统范围内引用;
    • CP:复制资源;
    • RB:将进程重新绑定到本地同类型资源。
  • 相应的,在每一种绑定类型下可以进行的操作如下表所示:
未连接 附着连接 紧固连接
按标志符 MV、GR GR、MV GR
按值 CP、MV、GR GR、CP GR
按类型 RB、MV、CP RB、GR、CP RB、GR

四、分布式系统通信


1. 远程过程调用

  • 远程过程调用(Remote Procedure Call)是分布式系统通信处理的事实标准,实现消息传输的透明性,其原理如下图所示。

    image-20210110194300220

  • 远程过程调用的步骤如下:

    1. 客户过程以正常的方式调用客户存根;
    2. 客户存根生成一个消息,然后调用本地操作系统;
    3. 客户端操作系统将消息发送给远程操作系统;
    4. 远程操作系统将消息交给服务器存根;
    5. 服务器存根将参数提取出来,然后调用服务器;
    6. 服务器执行要求的操作,操作完成后将结果返回给服务器存根;
    7. 服务器存根将结果打包成一个消息,然后调用本地操作系统;
    8. 服务器操作系统将含有结果的消息发送回客户端操作系统;
    9. 客户端操作系统将消息交给客户存根;
    10. 客户存根将结果从消息中提取出来,返回给调用它的客户过程。

2. 持久通信与暂时通信的区别

  • 在持久通信中,通信双方不需要保持运行;在暂时通信中,通信系统只在发送者和接受者运行时存储消息。

3. 同步通信与异步通信的区别

  • 在同步通信中,客户端需要自我阻塞等待服务器的回复;在异步通信中,客户端不等待,立即执行其他程序。

4. 消息通信的类型

  • 持久异步通信持久同步通信

    image-20210110215033630

  • 暂时异步通信基于接收的暂时同步通信

    image-20210110215539655

  • 基于交付的暂时同步通信基于响应的暂时同步通信

    image-20210110215719436

5. 多播通信

CATALOG
  1. 1. 一、分布式系统概述
    1. 1.1. 1. 什么是分布式系统?
    2. 1.2. 2. 分布式系统中透明性的种类、定义。
    3. 1.3. 3. 分布式系统中的拓展技术有哪些?
  2. 2. 二、体系结构
  3. 3. 三、分布式进程管理
  4. 4. 四、分布式系统通信