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. 二、体系结构
    1. 2.1. 1. 客户端-服务器模型
    2. 2.2. 2. 多层体系结构
  3. 3. 三、分布式进程管理
    1. 3.1. 1. 进程与线程的比较。
    2. 3.2. 2. 多线程服务器的优点。
    3. 3.3. 3. 代码迁移的动机有哪些?
    4. 3.4. 4. 进程对资源以及资源对机器的绑定
  4. 4. 四、分布式系统通信
    1. 4.1. 1. 远程过程调用
    2. 4.2. 2. 持久通信与暂时通信的区别
    3. 4.3. 3. 同步通信与异步通信的区别
    4. 4.4. 4. 消息通信的类型
    5. 4.5. 5. 多播通信