1 分布式系统及其透明性
分布式系统是由多个相互连接的处理资源组成的计算系统,它们在整个系统的控制下可合作执行一个共同任务,最少依赖于集中的程序、数据或硬件。进一步说明如下:
1) 系统由多个处理器组成 。
2) 这些计算机资源可以是物理上相邻的、使用机器内部总线或开关连接处理器,通过共享主存进行通信;也可以是地理上分开的、使用计算机通信网络(远程网或局部网)连接的计算机系统,使用报文(message)进行通信。
3) 这些计算资源组成一个整体,对用户是透明的,即用户使用任何资源时不必知道这些资源在哪里。
4) 一个程序可以分散到各计算机上运行 。
5) 各计算机地位平等,除了受全系统的操作系统控制外,不存在主从控制和集中控制环节。
透明性:分布式系统追求这样一个目标——打开一个文件时,不管此文件是在本地还是在远处,都应能用同一种方式,网络对用户或程序员来说是透明的,也就是说,用户或程序员看不见网络的存在,正像虚拟存储器中隐匿了外存储器一样,这样,从用户开看,网络中的全部机器表现为一个,用户看不到(隐匿了的)机器的边界和网络本身。透明性包括数据透明和进程透明,也就是说用户不必知道数据放在什么地方以及进程在何处执行。
2 远程进程通信
一个良好的进程间通信机制很重要,原因在于,我们必须以与语言、网络位置,甚至主机操作系统无关的统一方式访问分布于局域网(甚至广域网)中的各种资源。为了达到这个目标,进程间通信设施必须同时提供能影响通信进程之间、进程与资源之间的局部通信和远程通信的策略及机制。
远程进程通信可使用不同的原语集,最常用的有消息传递、远程过程调用(RPC)、事务处理等三种。它们