关于示例分布式程序

DIPC 应用程序由一些独立的程序组成,这些程序在不同的计算机上执行。清单 1 中显示的示例由两部分组成。一部分将字符串“Hello, Distributed Programming”发送到另一部分,后者再将其显示给用户。程序使用消息来完成此操作。对于这个简单的示例,不需要共享内存或信号量。尽管源代码是用 C 编写的,但应该注意的是,DIPC 是语言无关的,可以在任何允许访问操作系统系统调用的编程环境中使用。

第一部分,hello1.c,使用 msgget 系统调用和IPC_CREAT标志创建一个消息结构(称为消息队列),然后等待接收消息。另一部分,hello2.c,也使用 msgget 来查找相同的消息队列,然后将字符串作为消息发送。Hello1 将消息显示给用户,然后销毁消息队列。头文件 hello.h 被两部分使用,使它们能够使用相同的定义。要运行测试,请制作 hello1 和 hello2,然后首先启动 Hello1。Hello2 应该在此之后启动,因为它需要访问 Hello1 创建的消息队列。

使这个程序成为分布式的唯一原因是 Hello1 和 Hello2 在 msgget 系统调用中都使用了IPC_DIPC标志。这些程序可以在没有 DIPC 支持的系统上编译和运行。在具有 DIPC 支持的内核上,您可以选择在同一台计算机上或同一 DIPC 集群上的不同计算机上运行它们。简而言之,这些程序可以在任何地方使用,无需修改。

© . All rights reserved.