学习资料

自考网络操作系统考点:可靠原语、RPC远程过程调用与组通信

先看重点

本文梳理自考《网络操作系统》中进程间通信的核心考点:如何用可靠原语保证消息不丢失、远程过程调用RPC的原理与透明性、调用十个步骤及优缺点,以及组通信的定义、特征与实现方式,帮助考生系统复习。

本文目录6 个章节

进程间通信如何保证消息不丢失

在客户—服务器模型中,消息可能在网络传输中丢失,为保证对方确实收到,可采用可靠原语。其做法是:客户向服务器发出请求后,服务器方由内核向客户内核返回一个确认(ACK),客户内核收到确认后唤醒客户进程。

自考网络操作系统考点配图:桌面上的笔记本电脑与文具静物特写

客户与服务器之间一次请求/应答共涉及四个消息:客户向服务器的请求、服务器内核向客户内核的确认、服务器到客户的应答、客户内核向服务器内核的确认。理解这四个消息的方向是常考的简答题要点。

  • 请求:客户 → 服务器
  • 确认:服务器内核 → 客户内核
  • 应答:服务器 → 客户
  • 确认:客户内核 → 服务器内核

远程过程调用(RPC)的基本原理与透明性

在分布式系统中,节点A上的进程调用节点B上的一个进程时,节点A上的进程被挂起,被调用的过程在节点B上执行,消息以参数形式从调用进程传送到被调用进程,执行结果再返回给调用进程,这种通信方式称为远程过程调用。

其基本原理是允许某一节点上的程序调用其他节点上的过程或函数,而对程序员隐藏消息传递和I/O处理过程。

RPC的透明性指的是使远程调用尽可能像本地调用一样:调用方不知道被调过程在另一台机器上执行,被调方也不知道由哪个机器上的进程调用。为保证透明性,在客户机上设置客户代理,在服务器机上设置服务器代理。

  • 透明性的关键:客户代理 + 服务器代理
  • 对程序员不可见:消息传递、参数打包、I/O处理

远程过程调用的步骤

RPC的完整执行过程共十个步骤,答题时可按客户端、传输、服务器端三段来记忆。

  • 客户过程以通常方式调用客户代理
  • 客户代理构造消息并陷入内核
  • 本地内核把消息发送给远程内核
  • 远程内核把消息送给服务器代理
  • 服务器代理取出参数并调用服务器
  • 服务器执行服务,把结果送给服务器代理
  • 服务器代理将结果打包成消息并陷入内核
  • 远程内核把消息发回客户机内核
  • 客户机内核把消息传送给客户代理
  • 客户代理取出结果,返回给客户调用程序

RPC的优缺点与实现难点

优点是格式化好、使用方便、透明性好;缺点是缺乏灵活性。在具体实现上还有三个难点需要解决。

备考时建议把优点与难点对应起来理解:透明性是优点来源,但正因屏蔽了底层,灵活性不足、跨机型适配和数据量问题随之出现。

  • 参数在不同机型之间的通用能力不足
  • 缺乏一次调用中多次接收返回结果的能力
  • 缺乏传送大量数据的能力

组通信的定义、特征与实现

在网络系统中,一个相互作用的进程集合称为组。一个发送者在一次操作中将一个消息发送给多个接收者,称为组通信,其形式是“一对多”——组内所有成员都能收到该消息。

组通信适用于网络系统中需要向多个进程同时分发同一消息的场合。其实现很大程度上依赖硬件,一些网络系统可为组指定一个特殊的网络地址。

实现方式包括多播式、广播式和单播式三种,需注意三者适用范围的差别,这是选择题的常考对比点。

  • 组:相互作用的进程集合
  • 特征:一对多,组内成员均接收
  • 实现:多播式、广播式、单播式

常见疑问

可靠原语中的确认消息有几个?方向分别是什么?

一次请求/应答共四个消息:客户向服务器的请求、服务器内核向客户内核的确认、服务器到客户的应答、客户内核向服务器内核的确认。

RPC靠什么实现透明性?

在客户机上设置客户代理,在服务器机上设置服务器代理,由两个代理完成参数和消息的打包、传递,使远程调用看起来像本地调用。

组通信有哪些实现方式?

主要有多播式、广播式和单播式,具体实现很大程度上依赖于硬件,有些网络系统可为组指定一个特殊的网络地址。

把资料用在自己的选择上

读完这篇,接着了解

继续选院校 继续看专业
带着本篇问题咨询自动带上文章,方便说明你的需求
把一个问题,了解得更完整

接下来,按问题继续读

电话 · 微信咨询

报考疑问,老师一对一说清楚,欢迎随时来电

拨打电话151 9600 0697 立即拨打
添加微信微信与手机同号

不方便通话?在线报名登记,老师回电