有两种通信模型:消息传递模型 和 共享内存。

消息传递模型:通信进程通过彼此之间交换消息来交换信息。消息可以直接或通过一个共同的邮箱间接地在进程之间得到交换。

在通信前,必须打开连接。必须知道另一个通信实体的名称,他可能是同一CPU上的进程,也可能是通过通信网络连接的另一计算机上的进程。

网络上的每台计算机都有一个host name(主机名)。同样host(主机)也有一个网络标识,如IP地址。类似的,每个进程也有进程名,它通常转换成标识符以便操作系统引用。系统调用get hostid和get processid用于这一转换。

这些标识符再传递给文件系统提供的通用open()/close()系统调用,或者open connection()/close_connect()系统调用,具体的由系统的通信模型决定的。

接收方进程通常通过acceptconnect()调用来允许通信。大多数接收连接的进程都是专用的守护进程,它们是为此目的而提供的系统程序。他们执行wait for connection()系统调用,当有连接时候被唤醒。通信源被称为客户机(client),而接收方称为服务器(server),通过read message()和write_message()系统调用来交换消息。

close_connection()系统调用终止通信。

共享内存模型:进程使用shared memory create()和shared memory attach()系统调用来获得其他进程所拥有的内存区域的访问权。

results matching ""

    No results matching ""