第三章 - 网络操作系统的通信
发布时间:2019-12-29 14:51来源:未知
第三章 网络操作系统的通信
一、本章复习建议
在历年考题中,本章是重点章节之一,其知识点在试卷各个题型中均有反映,且在难度和灵活度最大的应用题中基本上必有一道题涉及本章节的信号量的PV操作,因而学员必须重视本章节的学习。学习层次涵盖识记、领会和应用各个层面,建议学员不仅仅要求在学习和复习阶段透彻理解本章节的相关内容,而且需要平时针对信号量同步互斥的练习,打好基础。二、本章重要知识点讲解
通信分为低级通信和高级通信,低级通信一般用于本机内进程之间,而高级通信不仅适用于本机,还适用于网络。低级通信一般包括信号、信号量等,它们都采用共享变量的方法来实现。高级通信有消息队列、共享内存、套接字和邮箱通信等第一节 3.1 进程间通信的基本方式
(一)3.1.1 进程间低级通信 ★
通常,低级通信方式以信号量为主,通过两个P、V原语对信号量进行操作,P、V原语是一种的进程同步机制。信号量可以实现互斥和同步
【例题】P1、P2为两个合作进程,当P1因合作条件暂不具备而阻塞时,以后将其唤醒的应是( )
A.系统进程
B.P1自己
C.P2
D.P1、P2以外的其它用户进程
【答案】C
【解析】P1与P2以信号量及相关P/V操作来实现同步合作,若P1因为P操作而阻塞,将由P2的V操作来唤醒,所以C选项正确。
【例题】试用信号灯与 PV 操作实现司机与售票员之间的同步问题。设公共汽车上有一个司机和一个售票员,其活动如下图所示。 为了安全起见,显然要求 : (1)关车门后方能启动车辆; (2)到站停车后方能开车门。 亦即“启动车辆”这一活动应当在“关车门”这一活动之后,“开车门”这一活动应当在“到站停车”这一活动之后。
【答案】
semaphore s1=0,s2=0;
司机: 售票员:
while(1){ while(1){
p(s1); 关车门;
启动车辆; v(s1);
正常行驶; 售 票;
到站停车; p(s2);
v(s2); 开车门;
} }
(二)3.1.2 消息缓冲通信 ★
消息缓冲机制是一种高级通信机制,根据“生产者-消费者”的基本原理。
l 当发送者要发信息时,执行SEND系统调用命令,产生自愿性中断进入操作系统核心。将信息放到缓冲区。当接收者执行到RECEIVE系统调用命令时,也产生自愿性中断,进入操作系统核心。将信息从缓冲区取出。
l 发送原语send的作用:将欲发送的消息从发送区复制到消息缓冲区,并把它挂起在接收进程的消息缓冲队列末尾。
l 接收原语receive的作用:把发送者发来的消息从消息缓冲区复制到接收区,然后将消息缓冲区从消息队列中消去。
(三)3.1.3 信箱通信 ★
1.信箱通信是一种高级通信,也是间接通信。
2.信箱是一种数据结构,逻辑上由信箱头和若干格子组成的信箱体,每个格子可存放一个信件。发送者调用过程deposit将信件发送到信箱,接收者调用过程remove将信件从信箱中取出。如图:

3.信箱可以由OS创建,也可以由用户进程创建。















【例题】邮箱可以由操作系统创建,还可以由( )创建
A. 邮件服务器
B. 邮件管理器
C. 用户进程
D.客户机
【答案】C
【解析】信箱可以由OS创建,也可以由用户进程创建,所以C选项正确。
第二节 3.2 基于消息传递的通信方式
(一)3.2.1 消息传递的通信机制
在计算机网络系统中,各结点主机上的进程之间普遍采用消息传递的通信方式。这种通信方式不需要使用共享变量。
(二)3.2.2 客户机/服务器模式
客户机/服务器模式是网络操作系统通信的一种模式,其基本思想是把操作系统构造为一组相互合作的进程,在网络中,每个结点既可作为一个服务器,也可作为一个客户机。其工作过程采用一个简单的无连接的请求/应答协议,客户端发送一个请求信息给服务器要求某一种服务,服务器完成这一请求后返回计算结果或错误信息。
(三)3.2.3 客户机/服务器间的通信 ★
客户机/服务器间通信的过程是:
(1)服务器首先获得本地的计算机地址,创建通信端口,等待接收客户机消息;
(2)一旦接收到客户机发来的消息,服务器就会像客户机回送一条消息。
(3)客户机向固定地址的服务器建立通信连接,成功后向服务器发送一条消息,然后等待服务器返回应答。
(四)3.2.4 进程间通信的原语
原语即是原子操作,不可分割,是指系统的一组指令集合,该组指令在执行过程中不可被中断,这样的操作方式可以保证指令执行的完整性。
(五)3.2.5 通信协议 ★
网络协议也称为网络通信协议,就是对计算机之间通信的信息格式、能被收/发双方接收的传送信息内容的一组定义。
网络协议是一种特殊的软件,其本质是通信规则。可以分为基础型协议和应用型协议。TCP/IP、IPX/SPX、NetBEUI是基础型协议,HTTP、PPP、FTP是常用的应用型协议。
【例题】最常用的网络通信基础协议是( )
A. TCP/IP
B. IPX/SPX
C. NetBEUI
D. HTTP
【答案】A
【解析】TCP/IP、IPX/SPX、NetBEUI是网络通信基础协议,其中TCP/IP协议适用于几乎所有系统和应用环境,而HTTP是网络应用型协议,所以A选项正确。
第三节 3.3 通信原语的设计
(一)3.3.1 通信原语的类型
通信原语的类型有:同步原语和异步原语;缓冲原语和非缓冲原语;可靠原语和非可靠原语。
(二)3.3.2 同步原语和异步原语
同步原语也称为阻塞原语,就是当发送者调用该原语时,必须对接收者具有明确的要求:(1)当接收者准备就绪可以接收信息时,发送者立即将信息发送给对方;(2)若接收者未准备好,那么发送者会自我阻塞,等待接收者就绪。
异步原语也就是非阻塞原语,当发送者调用异步通信原语时,先查找接收者,不管找到还是未找到,无论信息是否发出,原语立即返回调用程序,并返回发送成功或失败的信息,进而继续执行下面的指令代码。
改进异步原语有两种方法:
(1)采用带复制的异步发送原语和带测试的异步接收原语;(2)带中断的异步原语。
(三)3.3.3 缓冲原语和非缓冲原语
缓冲通信原语和非缓冲通信原语的根本区别在于是否在内核中存在有一块内存用来存放过早到达的信息,如果有则是缓冲原语,否则就是非缓冲原语。
对内核缓冲区的管理最简单的方法是定义一个称为信箱的数据结构。
(四)3.3.4 可靠原语和非可靠原语
具体在客户机/服务器模型上的可靠原语可以采用“确认”的方法:
(1) 四回合应答:①从客户向服务器的请求;②从服务器内核向客户内核返回一个确认;③从服务器到客户的应答;④从客户的内核向服务器内核返回一个确认;
(2) 三回合应答:①客户请求;②服务器应答;③客户确认。
第四节 3.4 远程过程调用
(一)3.4.1 远程过程调用的概念
在网络系统中,不同结点主机之间也可以采用过程调用的方式进行通信,称之为远程过程调用(RPC)。远程过程调用是一个协议,用户进程可以使用这个协议请求网络中另一台计算机结点上某程序的服务而不需要知道网络细节。(其使用的是客户机/服务器模型,请求进程是客户机,而服务提供进程则为服务器)。
(二)3.4.2 远程过程调用的实现
(三)3.4.3 远程过程调用与通信原语的比较
远程调用的优缺点:
(1)优点:格式化好、使用方便、透明性好;
(2)缺点:缺乏灵活性。
第五节 3.5 组通信
(一)3.5.1 组通信的概念
在网络系统中,一个相互作用的进程集合称为组。当一个消息发送给这个组时,该组的所有成员都可以接收,组通信具有“一对多”的形式。
(二)3.5.2 实现方法
组通信的实现在很大程度上依赖于硬件。在一些网络系统中,可以为组指定一个特殊的网络地址。可采用(1)多播式;(2)广播式;(3)单播式。
(三)3.5.3 流媒体数据广播
流媒体传输技术是一边下载,一边收听、观看高效网络传输方式。
1.流媒体传输方式:实时流媒体传输、顺序流媒体传输
2.流媒体播放方式:(1)单播(2)多播(3)点播与广播