1、ACTIVITY I1: ACCESSING THE SUPPLEMENTARY MATERIAL中提到的实践活动分布在哪些章节,活动的目的是什么,采用什么格式编排,本活动的先决条件、学习成果和方法分别是什么?
活动概述
活动分布在四个核心章节(进程视角、通信视角、资源视角、架构视角)和分布式系统章节。
活动目的
- 巩固关键概念
- 让读者进行更广泛的探索(许多活动涉及可配置的实验或模拟,支持进行假设情景的探索)
活动格式
活动采用统一格式编排,包含以下要素:
- 学习成果
- 方法
- 预期结果
- 反思环节
先决条件
本活动无特定先决条件。
学习成果
- 熟悉文中活动的形式和目的
- 熟悉配套支持资源
方法
本活动分两步进行:
-
找到并访问本书的在线资源网站
i. 本书在线网站地址为: http://booksite.elsevier.com/9780128007297
ii. 通过页面底部的“资源”标签访问资源 -
将资源复制到本地计算机
2、在第2 - 7章的应用开发练习中,一般采用什么方法来扩展应用程序的功能?
第2至7章涵盖了与各章节特定内容相关的应用开发练习。通用的做法是,先仔细查看给出的示例代码,把应用程序的表现和程序逻辑关联起来,之后依据具体任务的规定添加新特性,以此拓展应用程序的功能。
3、创建一个基于双向套接字的进程间通信(IPC)应用程序(扩展提供的示例代码,在一对进程之间发送消息并返回回复)。步骤如下:第一步,检查 IPC_socket_Sender 和 IPC_socket_Receiver 程序的源代码,这两个程序构成了套接字入门应用程序。第二步,重新安排现有程序,创建一个新的应用程序版本,在该版本中,发送给接收方的原始消息(发送到端口 8007)被修改后发送回原始发送方(这次使用端口 8008)。修改可以是简单的操作,例如反转消息中字符的顺序。新发送方程序需要进行的主要修改如下:1. 创建一个新的套接字用于接收回复消息。2. 创建一个新的套接字地址结构,其中包含本地计算机的地址和端口号 8008。3. 将新的接收套接字绑定到本地地址结构。4. 在当前的发送语句之后,添加一个接收语句,使用新的接收套接字等待回复消息。5. 在控制台输出中显示接收到的回复消息。新接收方程序需要进行的主要修改如下:1. 创建一个新的套接字用于发送回复消息。2. 修改现有的接收方法,使其存储消息发送方进程的地址。3. 创建一个新的套接字地址结构,其中包含发送方进程的地址(以便可以将回复发送回该进程)和端口号 8008。4. 编写一个方法来反转接收到的消息(或执行其他简单的转换)。5. 在当前的接收语句之后,添加一个发送语句,使用新的发送套接字将回复消息发送回第一条消息的发送方。
此任务要求创建双向套接字的 IPC 应用程序,具体步骤如下:
- 检查
IPC_socket_Sender和IPC_socket_Receiver程序源代码。 - 重新安排程序,将发往端口 8007 的消息修改后通过端口 8008 返回给发送方。
新发送方程序修改点:
- 创建接收回复消息的新套接字;
- 创建含本地计算机地址和端口 8008 的新套接字地址结构;
- 将新接收套接字绑定到本地地址结构;
- 在发送语句后添加接收语句等待回复;
- 在控制台显示回复消息,代码可从原接收方程序复制修改。
新接收方程序修改点:
- 创建发送回复消息的新套接字;
- 修改接收方法存储发送方进程地址;
- 创建含发送方进程地址和端口 8008 的新套接字地址结构;
- 编写反转消息的方法;
- 在接收语句后添加发送语句发送回复消息,代码可从原发送方程序复制修改。
4、解释远程过程调用(RPC)和远程方法调用(RMI)之间的根本区别。
- RPC是远程调用过程的一种方式,用于C等过程式语言,也得到C++的支持;
- RMI是在远程对象上远程调用方法的一种方式,用于Java语言,C#中也支持类似的称为远程处理的机制;
- RMI可以被视为RPC的面向对象版本。
5、指出使用套接字 API 原语实现进程间通信时通信死锁可能发生的一种方式,并说明一种简单的避免方法。
-
通信死锁可能发生的方式 :当接收套接字都配置为阻塞 IO 模式,且发送操作和接收操作在两个进程的同一线程上,并且两个进程同时等待接收消息时,会出现通信死锁。
-
简单的避免方法 :
- 确保至少有一个进程使用非阻塞套接字 IO 模式;
- 或者使用单独的线程来处理发送和接收操作,使发送线程在接收线程阻塞时能继续运行。

最低0.47元/天 解锁文章
613

被折叠的 条评论
为什么被折叠?



