资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,第,3,章 网络操作系统的通信,在操作系统中,通信分为低级通信和高级通信,低级通信一般那用于本机内进程之间,而高级通信不仅适用于本机,还适用于网络。,低级通信一般包括信号、信号量等,他们都是采用共享变量的方式来实现的。,高级通信有消息队列、共享内存、套接字和邮箱通信等。网络上主要使用高级通信技术。,考核内容,共享变量通信方式概念,消息传递通信方式概念,远程过程调用的概念,各种通信机制的特点及比较,消息传递通信机制的算法实现,考核知识点,-,识记,进程间低级通信方式,实现通信原语的三种类型,消息传递的通信方式,远程过程调用以及其他通信的概念,各种通信机制的原理,考核知识点,-,领会,客户机,/,服务器进程通信模式,进程间通信的原语,各类信号量的意义,客户机与服务器之间的通信协议,同步原语与异步原语;缓冲原语与非缓冲原语;可靠原语与非可靠原语,单机环境下过程调用的方法及参数传递机制,远程过程调用的实现方式,组通信及其实现方式,考核知识点,-,应用,消息缓冲通信的算法实现,理解信箱的数据结构,信箱通信的工作过程,收发的算法实现,客户机与服务器之间通信的算法实现,流媒体广播的应用,3.1,进程间通信的基本方式,进程间低级通信,消息缓冲通信,信箱通信,进程间低级通信,进程间的低级通信方式以信号量为主,通过两个,P,、,V,原语对信号量进行操作。,P,、,V,操作是一种很有效的进程同步机制。,用信号量可以实现互斥和同步,用信号量实现互斥方法,先为临界资源设置一个互斥信号量,其初值为,1,,在每个进程中,将临界区代码置于,P(S),和,V(S),原语之间。,在运行过程中,必须成对使用,P,和,V,原语,缺少,P,原语,则不能保证互斥访问;缺少,V,原语,则不能在使用临界资源之后将其释放。,P,、,V,原语不能颠倒、重复或遗漏,Type def semaphore,Semaphore,mutex,=1,Void booking(,Ci,No,),Int,temp=0,P(mutex,),temp=read(NO);,If(temp,=0),V(mutex,);,Return(0);,Else,temp=temp-1;,write(temp,No,);,V(mutex,);,用信号量实现同步方法,先为进程设置一个同步信号量,S,,其初值为,0,,在进程需要同步的地方,分别插入,P(S),原语和,V(S),原语。,一个进程使用,P,原语是,则另一个进程往往使用,V,原语与之对应。,P,、,V,原语应对应并分散在不同进程之间。,Typedef,int,semaphore,Semaphore,mutex,=1,Semaphore tickers=10,Void,standby_passenger(Pi,),While(1),P(tickers,),P(mutex,);,sell_ticket(Pi,),V(mutex,),Void,refund_ticket(Pj,),P(mutex,),refund_ticket(Pj,),V(mutex,),V(tickers,),消息缓冲通信,消息缓冲机制的通信技术是一种高级通信机制,其基本思想是根据“生产者,-,消费者”的基本原理,利用公共消息缓冲区实现进程之间和各结点机之间的信息交换。,消息缓冲机制通信的基本方法,一般由发送者调用消息发送原语,send(receiver,a,),,而接收者调用消息接收原语,receive(b,),,其中参数,a,和,b,分别表示发送进程中准备发送的消息在内存区的首地址和接收进程用于存放收到的消息在内存的首地址。,在发送者和接收者对内存消息区访问时需要遵循互斥约束。,消息缓冲通信的基本原理,通常由操作系统在系统空间维护一组缓冲区,并封装好通信原语,send,和,receive,。当发送者要发信息时,执行,send,系统调用命令,产生自愿性中断进入操作系统核心。此时,操作系统为发送者分配一个空缓冲区,并将所发送的消息内容从发送者空间复制到该缓冲区中,然后将此缓冲区连接到接收者的消息队列末尾。,接收者执行,receive,系统调用命令时,也产生自愿性中断,进入操作系统核心,操作系统将载有消息的缓冲区从消息队列中取出,并将消息内容复制到接收者空间中,然后收回空闲缓冲区,排列到空闲缓冲区末尾。,信箱通信,信箱通信也称为邮箱通信,是一种高级通信,也是间接通信。,信箱是一种数据结构,逻辑上分为两个部分:信箱头和若干格子组成的信箱体。,信箱头,信箱体,进程间信箱通信要满足的条件,发送者发送消息时,信箱中至少要有一个空格存放该信件。,接收者接收消息时,信箱中至少有一个信件存在。,信箱通信时发送者和接收者之间存在的四种关系,一对一关系:可以为发送者和接收者建立一条专用的通信链路,多对一关系:允许多个发送者与单个接收者进行交互,也称客户机,/,服务器交互,一对多关系:允许一个发送者与多个接收者交互,使发送者用广播的形式发送信件,多对多关系:允许建立一个公用信箱,让多个发送者都能向信箱投递消息,多个接收者也可以取走属于自己的信件。,3.2,基于消息传递的通信方式,消息传递的通信机制,客户机,/,服务器模式,客户机,/,服务器间的通信,进程间通信的原语,通信协议,消息传递的通信机制,各结点主机上的通讯之间普遍采用消息传递的通讯方式进行通讯,一个进程发送消息 另外一个进程接受消息,客户,/,服务器模式,工作过程 采用一种简单的无连接的请求,应答协议,客户端发送一个请求,服务器完成请求后返回计算结果或者错误信息。,客户,/,服务器的通讯,通讯过程,1,服务端:获得本地计算机,IP,地址 创建通讯端口 打开监听 等待客户机连接,2,服务端数据处理 接收到客户机发送的请求,处理请求,返回结果,3,客户机 建立与服务器的通讯连接,连接成功后可以向服务发送消息,等待结果,客户,/,服务器的通讯,Void Server,(),IpAddress,=,GetIP,(),LisSocket,=,NewSocket(AddreeFamily,InterNetwork,sockettype,Stream,ProtocolType,Tcp,),While(true,),Newsocket.receive(byteMessage,),处理消息,NewSocket.send(byteDate,),进程间通信的原语,通信原语是按照通信协议的规定建立的,通信原语构成了网络操作系统的通信机制。,原语即是原子操作,不可分割,是指系统的一组指令集合,该组指令在执行过程中不可被中断,这样的操作方式可以保证指令执行的完整性。,通信协议,网络协议也称为网络通信协议,就是对计算机之间通信的信息格式、能被收,/,发双方接收的传送信息内容的一组定义。,网络协议是一种特殊的软件,是计算机网络实现其功能的最基本的机制。网络协议的本质是通信规则,即各种硬件和软件必须遵循的共同守则。,OSI,参考模型各层中的协议,物理层中的物理接口通信协议(,RS-232C,、,RS-449,、,V.35,等),数据链路层的数据链接协议(,CSMA/CD,、,SDLC,、,HDLC,等),网络层的路由层协议(,IP,、,RIP,、,OSPF,、,IGRP,等),传输层的传输控制协议(,TCP,、,FTP,、,TFTP,等),应用层(,POP3,、,SMTP,、,SNMP,、,DNS,等),3.3,通信原语的设计,通信原语的类型,同步原语和异步原语,缓冲原语和非缓冲原语,可靠原语和非可靠原语,同步原语,当一个进程调用一个,send,原语时,在消息开始发送后,发送进程便处于,阻塞状态,,直至消息完全发送完毕,,send,原语的后继语句才能继续执行。当一个进程调用一个,receive,原语时,并不立即返回控制,而是等到把消息实际接收下来,并把它放入指定的接收区,才返回控制,继续执行该原语的后继指令。在这段时间它一直处于,阻塞状态,。上述的,send,和,receive,被称为,同步通信,原语或,阻塞通信,原语。,同步原语的优缺点,优点 消息的传递不过多的占用处理时间,缺点 造成死锁,异步原语,如果一个,send,原语是非阻塞的,它在消息实际发送之前,就立即把控制返回给调用者。也就是说,发送进程在发送消息时并不进入,阻塞状态,,它不等消息发送完就继续执行其后继语句。,先查到接收者,不管找到还是未找到,无论信息是否发出,异步原语都返回执行其他程序,异步原语的有缺点,优点 解决了同步原语的死锁问题,若先前的数据没有发送成功,发送者又将新的消息送入缓冲区,就会覆盖原有数据,同步原语,阻塞的发送和接收;有死锁和饥饿的可能,带复制的异步发送原语和带测试的异步发送原语,非阻塞,并发性高;系统开销大,带中断的异步原语,效率高,并发度大;不利于调试,缓冲原语和非缓冲原语,服务进程在内核中开辟一块缓冲区用来存放发送的信息。,缓冲通信原语与非缓冲通信原语的根本区别在于是否在内核存在有一块内存用来存放过早到达的信息,如果有则是缓冲原语,否则就是非缓冲原语。,缓冲区原语工作过程,让服务进程在内核中开辟一块缓冲区,对传送来的消息保留一段时间,以期望一个合适的接收者很快的调用接收原语并取走信息。,一个不期而遇的消息到达时,立即启动计时器开始计时,如果计时器到达某个规定值时仍无接收者出现,将信息丢弃。,可靠原语和非可靠原语,不能保证发送者发送的信息是完整可靠的,也不能保证信息一定会送达接收者手里的这种通信原语称为非可靠原语。,发送者发出的信息保证会送达接收者手里,发出去的信息有回执的这种通信原语称为可靠原语,远程过程调用,在网络系统中,不同结点主机之间采用过程调用的方式进行通信,称之为远程过程调用。,远程过程调用使用的是客户机,/,服务器模式,请求进程是客户机,而服务提供进程则是服务器。,远程过程调用是在原来消息传递通信原语的基础上发展起来的。,RPC,跨越了网络通信的开发系统互连(,OSI,)模型中的传输层与应用层。,远程过程调用与通信原语,远程调用的参数传递在异构平台之间的通用性能不能满足用户的要求。,由于远程过程调用设计为请求,/,应答模式,因此不能在一次调用过程中多次接收中间结果,缺乏灵活性,远程调用不用传送大量的数据,远程过程调用优点 使用方便,消息传递 较大的灵活性,用户可以组织,组通信,组是定义为在某一个系统中相互有关系的进程的集合。当一个信息发给这个组时,该组的所有成员都可以接收。组通信实现了一对多的通信形式。,组的建立是动态的。,组通信的实现一般需要网络硬件的支持。,网络多播技术,当一个信息按规定地址发送时,所有的组成员都可以接收,这一技术称为网络多播技术,也称多址通信。用多播式实现组通信是很直接的,只需要给每一组分配一个不同的多播地址即可。,广播技术,客户机的消息发送到网络上所有的结点上,并注明是广播信息。每个结点对收到的广播信息都需要检查一下,看这个信息是否是发给自己的,如果不是,则将信息抛弃。,流媒体数据广播,流媒体是指在网络中使用流式传输技术的连续时基媒体。,流媒体传输技术就是把连续的声音和图形信息经过压缩处理后放到服务器上,用户不必一次下载完毕才能够开始播放,而是一边下载,一边收看的高效网络传输方式。,实现流媒体传输的方法:实时流媒体传输和顺序流媒体传输,实时流媒体传输,实时流媒体传输指保证媒体信号带宽与网络连接匹配,使媒体可被实时观看到。,需要专用的流媒体服务器与传输协议。,顺序流媒体传输,顺序流媒体传输是顺序下载,在下载文件的同时用户可观看在线内容,在给定时刻,用户只能观看已下载的部分,而不能跳到还未下载的部分。用户观看前必须经历时延。,流媒体播放方式,单播,多播,点播与广播,
展开阅读全文