(02335)网络操作系统-第3章-网络操作系统的通信_第1页
(02335)网络操作系统-第3章-网络操作系统的通信_第2页
(02335)网络操作系统-第3章-网络操作系统的通信_第3页
(02335)网络操作系统-第3章-网络操作系统的通信_第4页
(02335)网络操作系统-第3章-网络操作系统的通信_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章 网络操作系统的通信在操作系统中,通信分为低级通信和高级通信,低级通信一般那用于本机内进程之间,而高级通信不仅适用于本机,还适用于网络。低级通信一般包括信号、信号量等,他们都是采用共享变量的方式来实现的。高级通信有消息队列、共享内存、套接字和邮箱通信等。网络上主要使用高级通信技术。考核内容共享变量通信方式概念消息传递通信方式概念远程过程调用的概念各种通信机制的特点及比较消息传递通信机制的算法实现考核知识点-识记进程间低级通信方式实现通信原语的三种类型消息传递的通信方式远程过程调用以及其他通信的概念各种通信机制的原理考核知识点-领会客户机/服务器进程通信模式进程间通信的原语,各类信号量的意

2、义客户机与服务器之间的通信协议同步原语与异步原语;缓冲原语与非缓冲原语;可靠原语与非可靠原语单机环境下过程调用的方法及参数传递机制远程过程调用的实现方式组通信及其实现方式考核知识点-应用消息缓冲通信的算法实现理解信箱的数据结构,信箱通信的工作过程,收发的算法实现客户机与服务器之间通信的算法实现流媒体广播的应用3.1进程间通信的基本方式进程间低级通信消息缓冲通信信箱通信进程间低级通信进程间的低级通信方式以信号量为主,通过两个P、V原语对信号量进行操作。P、V操作是一种很有效的进程同步机制。用信号量可以实现互斥和同步用信号量实现互斥方法先为临界资源设置一个互斥信号量,其初值为1,在每个进程中,将临

3、界区代码置于P(S)和V(S)原语之间。在运行过程中,必须成对使用P和V原语,缺少P原语,则不能保证互斥访问;缺少V原语,则不能在使用临界资源之后将其释放。P、V原语不能颠倒、重复或遗漏Type def semaphoreSemaphore mutex =1Void booking (Ci,No)Int temp =0P(mutex ) temp =read (NO);If(temp = 0)V(mutex); Return(0);Else temp = temp-1; write(temp,No);V(mutex);用信号量实现同步方法先为进程设置一个同步信号量S,其初值为0,在进程需要同步

4、的地方,分别插入P(S)原语和V(S)原语。一个进程使用P原语是,则另一个进程往往使用V原语与之对应。P、V原语应对应并分散在不同进程之间。Typedef int semaphoreSemaphore mutex =1Semaphore tickers=10Void 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)消息缓冲通信消息缓冲机制的通信技术是一种高级通信机制,其

5、基本思想是根据“生产者-消费者”的基本原理,利用公共消息缓冲区实现进程之间和各结点机之间的信息交换。消息缓冲机制通信的基本方法一般由发送者调用消息发送原语send(receiver,a),而接收者调用消息接收原语receive(b),其中参数a和b分别表示发送进程中准备发送的消息在内存区的首地址和接收进程用于存放收到的消息在内存的首地址。在发送者和接收者对内存消息区访问时需要遵循互斥约束。消息缓冲通信的基本原理通常由操作系统在系统空间维护一组缓冲区,并封装好通信原语send和receive。当发送者要发信息时,执行send系统调用命令,产生自愿性中断进入操作系统核心。此时,操作系统为发送者分配

6、一个空缓冲区,并将所发送的消息内容从发送者空间复制到该缓冲区中,然后将此缓冲区连接到接收者的消息队列末尾。接收者执行receive系统调用命令时,也产生自愿性中断,进入操作系统核心,操作系统将载有消息的缓冲区从消息队列中取出,并将消息内容复制到接收者空间中,然后收回空闲缓冲区,排列到空闲缓冲区末尾。信箱通信信箱通信也称为邮箱通信,是一种高级通信,也是间接通信。信箱是一种数据结构,逻辑上分为两个部分:信箱头和若干格子组成的信箱体。信箱头信箱体进程间信箱通信要满足的条件发送者发送消息时,信箱中至少要有一个空格存放该信件。接收者接收消息时,信箱中至少有一个信件存在。信箱通信时发送者和接收者之间存在的

7、四种关系一对一关系:可以为发送者和接收者建立一条专用的通信链路多对一关系:允许多个发送者与单个接收者进行交互,也称客户机/服务器交互一对多关系:允许一个发送者与多个接收者交互,使发送者用广播的形式发送信件多对多关系:允许建立一个公用信箱,让多个发送者都能向信箱投递消息,多个接收者也可以取走属于自己的信件。3.2基于消息传递的通信方式消息传递的通信机制客户机/服务器模式客户机/服务器间的通信进程间通信的原语通信协议消息传递的通信机制各结点主机上的通讯之间普遍采用消息传递的通讯方式进行通讯一个进程发送消息 另外一个进程接受消息客户/服务器模式工作过程 采用一种简单的无连接的请求应答协议,客户端发送

8、一个请求,服务器完成请求后返回计算结果或者错误信息。客户/服务器的通讯通讯过程1 服务端: 获得本地计算机IP地址 创建通讯端口 打开监听 等待客户机连接2 服务端数据处理 接收到客户机发送的请求,处理请求,返回结果3 客户机 建立与服务器的通讯连接,连接成功后可以向服务发送消息,等待结果客户/服务器的通讯Void Server()IpAddress=GetIP()LisSocket= NewSocket(AddreeFamily,InterNetwork,sockettype,Stream,ProtocolType,Tcp)While(true)Newsocket.receive(byteM

9、essage)处理消息NewSocket.send(byteDate)进程间通信的原语通信原语是按照通信协议的规定建立的,通信原语构成了网络操作系统的通信机制。原语即是原子操作,不可分割,是指系统的一组指令集合,该组指令在执行过程中不可被中断,这样的操作方式可以保证指令执行的完整性。通信协议网络协议也称为网络通信协议,就是对计算机之间通信的信息格式、能被收/发双方接收的传送信息内容的一组定义。网络协议是一种特殊的软件,是计算机网络实现其功能的最基本的机制。网络协议的本质是通信规则,即各种硬件和软件必须遵循的共同守则。OSI参考模型各层中的协议物理层中的物理接口通信协议(RS-232C、RS-4

10、49、V.35等)数据链路层的数据链接协议(CSMA/CD、SDLC、HDLC等)网络层的路由层协议(IP、RIP、OSPF、IGRP等)传输层的传输控制协议(TCP、FTP、TFTP等)应用层(POP3、SMTP、SNMP、DNS等)3.3通信原语的设计通信原语的类型同步原语和异步原语缓冲原语和非缓冲原语可靠原语和非可靠原语同步原语当一个进程调用一个send原语时,在消息开始发送后,发送进程便处于阻塞状态,直至消息完全发送完毕,send原语的后继语句才能继续执行。当一个进程调用一个receive原语时,并不立即返回控制,而是等到把消息实际接收下来,并把它放入指定的接收区,才返回控制,继续执行

11、该原语的后继指令。在这段时间它一直处于阻塞状态。上述的send和receive被称为同步通信原语或阻塞通信原语。 同步原语的优缺点优点 消息的传递不过多的占用处理时间缺点 造成死锁异步原语如果一个send原语是非阻塞的,它在消息实际发送之前,就立即把控制返回给调用者。也就是说,发送进程在发送消息时并不进入阻塞状态,它不等消息发送完就继续执行其后继语句。先查到接收者,不管找到还是未找到,无论信息是否发出,异步原语都返回执行其他程序 异步原语的有缺点优点 解决了同步原语的死锁问题若先前的数据没有发送成功,发送者又将新的消息送入缓冲区,就会覆盖原有数据同步原语,阻塞的发送和接收;有死锁和饥饿的可能带

12、复制的异步发送原语和带测试的异步发送原语,非阻塞,并发性高;系统开销大带中断的异步原语,效率高,并发度大;不利于调试缓冲原语和非缓冲原语服务进程在内核中开辟一块缓冲区用来存放发送的信息。缓冲通信原语与非缓冲通信原语的根本区别在于是否在内核存在有一块内存用来存放过早到达的信息,如果有则是缓冲原语,否则就是非缓冲原语。缓冲区原语工作过程让服务进程在内核中开辟一块缓冲区,对传送来的消息保留一段时间,以期望一个合适的接收者很快的调用接收原语并取走信息。一个不期而遇的消息到达时,立即启动计时器开始计时,如果计时器到达某个规定值时仍无接收者出现,将信息丢弃。可靠原语和非可靠原语不能保证发送者发送的信息是完

13、整可靠的,也不能保证信息一定会送达接收者手里的这种通信原语称为非可靠原语。发送者发出的信息保证会送达接收者手里,发出去的信息有回执的这种通信原语称为可靠原语远程过程调用在网络系统中,不同结点主机之间采用过程调用的方式进行通信,称之为远程过程调用。远程过程调用使用的是客户机/服务器模式,请求进程是客户机,而服务提供进程则是服务器。远程过程调用是在原来消息传递通信原语的基础上发展起来的。RPC跨越了网络通信的开发系统互连(OSI)模型中的传输层与应用层。远程过程调用与通信原语远程调用的参数传递在异构平台之间的通用性能不能满足用户的要求。由于远程过程调用设计为请求/应答模式,因此不能在一次调用过程中

14、多次接收中间结果,缺乏灵活性远程调用不用传送大量的数据远程过程调用优点 使用方便消息传递 较大的灵活性,用户可以组织组通信组是定义为在某一个系统中相互有关系的进程的集合。当一个信息发给这个组时,该组的所有成员都可以接收。组通信实现了一对多的通信形式。组的建立是动态的。组通信的实现一般需要网络硬件的支持。网络多播技术当一个信息按规定地址发送时,所有的组成员都可以接收,这一技术称为网络多播技术,也称多址通信。用多播式实现组通信是很直接的,只需要给每一组分配一个不同的多播地址即可。广播技术客户机的消息发送到网络上所有的结点上,并注明是广播信息。每个结点对收到的广播信息都需要检查一下,看这个信息是否是发给自己的,如果不是,则将信息抛弃。流媒体数据广播流媒体是指在网络中使用流式传输技术的连续时基媒体。流媒体传输技术就是把连续的声音和图形信息经过压缩处理后放到服务

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论