在本文中,分布式编程指的是使用通过网络连接的不同自主计算机来解决单个问题。这种硬件配置被称为多计算机;这些计算机无法直接访问彼此的内存和外围设备。 多计算机编程需要不同于正常系统的模型,在这种模型中,程序员可以通过共享内存(在全局变量或堆栈中)在程序的不同部分之间传输数据。
编写分布式程序的原因如下:
要运行分布式应用程序,应解决以下问题:
使用诸如 telnet 或 rsh 之类的程序在另一台计算机上启动程序并不难。 但是,交换数据和同步可能会非常困难和复杂。 这些问题会分散程序员对其原始项目的注意力,并可能成为众多错误的根源。
Linux 已经有一些机制可以让同一台计算机中的进程交换数据并在彼此之间进行同步。 这称为进程间通信或 IPC。 一个突出的例子是 System V IPC,它最初在 AT&T 的 System V UNIX 中引入。 这是一组机制,包括:
这些机制在许多 UNIX 编程书籍中都有记录,并为许多 UNIX 版本中的 IPC 提供了一个熟悉的界面。