分布式计算
l 计算机网络:它提供逻辑上的共享 内存接口。这个接口使用以信息包为基础 的网络来支持对内存块的存取。
设计分布式内存系统时,需要考虑如下的 基本问题:
l内存接口:网络方式下,需要为内存提供一个单 独的接口吗?或者,利用现有的主存接口存取远 程内存?
l位置透明度:关于远程地址空间中的位置,一个 进程可以了解到什么程度?
由于计算的可调度单元在不同的机器上创 建并执行,操作系统必须提供有效的方法 在需要时同步它们的运行。这一领域的发 展有两个主要方向:
l 直接同步:程序员利用操作系统提 供的机制在需要时同步计算单元的执行。
l 事务处理和并行控制:由服务器负 责同步。因此,问题集中于服务器上操作 单元的效果,而与客户端请求无关。
8.3.2.4 调度
在分布式环境下。有两种主要的调度方式:
l
直接调度:由应用程序的程序员负责确
定计算单元的执行位置。
l
透明调度:应用程序的进程最初作为单
进程在一台机器上运行。当计算单元被创建并
准备运行时,由本机上的调度程序负责和其他
的调度程序交互,以决定该计算单元的最佳执
行位置。
8.3.2.5进程的并行
8.3 分布式计算
8.3.1 分布式系统概述 8.3.1.1 分布式系统的设计目标 设计目标有四个:通信、资源共享、分布
计算和可靠性。
8.3.1.2 分布式操作系统的实现考虑
1)数据迁移 2)计算迁移 3)进程迁移 4)分布式共享内存 5)鲁棒性的实现
8.3.2 分布式进程管理
8.3.2.1 任务分割 8.3.2.2 支持分割计算 8.3.2.3 常规进程管理
l共享单元:在地址空间中,共享单元应该是什么? 例如某个数据结构、页面、段,或者其他的单元。
l命名管理:信息在输入输出时需要对共享单元命 名(以便唯一标志该单元)。这又该怎么处理, 或者说,它应该遵循什么规则?
l执行效率:假设有两个进程,并且它们的地址空 间位于不同的机器。那么,采用哪种方法来存取 远程共享内存效率更高呢?
8.3.3.2 计算范型
客户机/服务器模式是一种用来描述分布 式计算的范型(或说是组织模式)。任 何特定的应用都可以使用这个范型将计 算分解成两个部分:以被动方式工作的 服务器端和以主动方式工作的客户端。 客户端根据应用的需要输入数据并调用 服务器端程序。
8.3.4远程过程调用
8.3.4.1 RPC的工作原理 RPC是作为网络协议的一个集合来实现 的。它允许一个过程调用不同机器上的 另一个过程,调用时要给出参数的拷贝。 因此,RPC在与调用进程不同的地址空 间执行。
8.3.5.1 远程内存
1)内存接口 (1)POSIX共享内存接口 (2)Linda程序设计语言
2)内存单元的大小
3)位置透明度
8.3.5.2 分布式虚拟内存 8.3.5.3 分布式对象
8.3.4.2 RPC的实现
1)通用组织结构 2)根据本地调用为远程调用建模 3)远程过程定位 4)stub 的产生 5)网络支持
8.3.5 分布式内存管理
有两种类型的结构可以实现分布式内存:
l 多计算机:多处理器模式也可以说 是“多计算机”,因为它使用多个不同的 处理器,且每台处理器都可以访问机器的 全部内存。“多计算机”中,各台机器对 内存的存取是不均匀的(称为不均匀内存 存取,nonuniform memory access),因 为不同位置的内存的存取时间与处理器有 关。
l 实现消息发送方和接收方的同步。
在网络体系中,为了把信息放入远程计 算机上某个进程的地址空间,往往需要 将信息的内容复制多次。图8-14 在逻辑 上简要列出一次发送信息的操作需要进 行的复制。
8.3.3.1 消息传递接口
PVM(并行虚拟机)就是一种被广泛使 用的消息传递接口
1)同步
2)事务处理 相 关 消 息 流 称 为 事 务 —— 它 是 一连串的指令,这些指令或者全 被执行,或者全都不执行。一个 事务形成一个由微操作和组成成 分间的交互操作构成的特殊集合。
3)并发控制
8.3.3分布式环境下消息传递
消息就是由一个进程发送给另一个接受 进程的信息块。它服务于以下两个目标: