专接本网络操作系统课件第三章网络操作系统的通信_第1页
专接本网络操作系统课件第三章网络操作系统的通信_第2页
专接本网络操作系统课件第三章网络操作系统的通信_第3页
专接本网络操作系统课件第三章网络操作系统的通信_第4页
专接本网络操作系统课件第三章网络操作系统的通信_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

网络操作系统第三章网络操作系统的通信主讲人:阚宝朋TEL/p>

E-mail:kbaopeng@163.com

QQ:40983356学习目标通过本章的学习,希望您能够了解:基于共享变量的低级通信方式的基本概念消息队列通信方式的基本概念和算法实现其他通信方式的概念通信原语和通信的模式本章内容1.进程间通信基本方式2.基于消息传递的通信方式3.通信原语的设计4.远程过程调用5.组通信课程议题1.进程间通信的基本方式前言在操作系统中通信分为:低级通信:一般用于本机内进程之间高级通信:不仅适用于本机,还适用于网络。一、进程间的低级通信特点:传递的信息量少,访问条件较严格。方式:以信号量为主,通过两个P、V原语对信号量进行操作。在互斥资源中:临界区代码置于P、V之间,P、V必须成对出现,不能颠倒、重复、遗漏注:P、V操作是基于共享变量的方式实现操作实例售票系统解释:为保证售票对象的唯一性,因此要产生争用,即票是共享资源。若不采用这种方式,有可能有多个人同时来买这张票,产生错误。具体过程见课本P94、P95的进程互斥与同步的案例。请尝试利用P、V操作写出综合P95页同步关系。二、消息缓冲通信P、V信号量的进程间通信是基于共享变量的通信方式,适用于网络中各结点内部进程间的通信,也就是限于本机内。基于消息传递的消息缓冲机制的通信方式适用于网络中各结点主机间的进程通信。消息缓冲机制的通信技术是一种高级通信技术,利用公共消息缓冲区实现进程间和各结点机之间的信息交换。消息缓冲通信消息缓冲通讯技术由Hansen首先提出的,基本思想是:根据“生产者——消费者关系”原理,利用公用消息缓冲区实现进程间的信息交换。通信过程(一)发送进程在利用发送原语发送消息之前,应先在自己的内存空间,设置一发送区a,把待发送的消息正文、发送进程标识符、消息长度等信息填入其中,然后调用发送原语,把消息发送给目标(接收)进程。发送原语首先根据发送区a中所设置的消息长度a.size来申请一缓冲区i。接着,把发送区a中的信息复制到缓冲区i中。为了能将i挂在接收进程的消息队列mq上,应先获得接收进程的内部标识符j,然后将i挂在j.mq上。由于该队列属于临界资源,故在执行insert操作的前后,都要执行wait和signal操作。通信过程(二)在操作系统空间设置一组缓冲区;当发送进程需要发送消息时,执行send系统调用,产生访管中断,进入操作系统;操作系统为发送进程分配一个空缓冲区,并将所发送的消息从发送进程copy到缓冲区中,然后将该载有消息的缓冲区连接到接收进程的消息链链尾,如此就完成了发送过程;发送进程返回到用户态继续执行;当接收进程执行到receive接收原语时,也产生访管中断进入操作系统。由操作系统将载有消息的缓冲区从消息链中取出,并把消息内容copy到接收进程空间,之后收回缓冲区,如此就完成了消息的接收,接收进程返回到用户态继续进行。消息缓冲区结构消息缓冲区结构如下

typemessagebuffer=record

sender ;发送者进程标识符

size ;消息长度

text ;消息正文

next ;指向下一个消息缓冲区的指针

endPCB中还应该增加如下的数据项:1)mq:消息队列头指针,初值为空。

由于接收进程可能会收到几个进程发来的消息,故应将所有的消息缓冲区链成一个队列,其队头通过在接收进程PCB中设置队首指针mq来指出。2)mutex:消息队列互斥信号量,初值为1。

消息队列属于临界资源,故在PCB中设置了互斥信号量mutex,每当对消息链操作之前和结束操作之后,应在mutex上分别执行wait操作和signal操作。

3)sm:消息队列同步计数信号量(消息队列资源信号量)。初值为0。

当发送进程发来一个消息,在此信号量上执行signal(sm);而当接收进程从消息队列上欲取走一个消息时,先对信号量执行wait(sm),如果有消息,则从消息链中取走mq所指出的第一个消息。三、信箱通信信箱通信,是一种高级通信,也是一种间接通信。信箱是一种数据结构,有两部分组成:信箱头:信箱容量、信件格式、信箱名称等;信箱体:若干格子,用来存放信件;发送进程A…邮箱体

邮箱头接收进程BDeposite(m)Remove(m)

邮箱通信结构三、信箱通信分类私有信箱共享信箱公用信箱信箱使用规则

若发送信件时信箱已满,则发送进程被置为“等信箱”状态,直到信箱有空时才被唤醒若取信件时信箱中无信,则接收进程被置为“等信件”状态,直到有信件时才被唤醒发送进程和接收进程间关系一对一关系即可以为发送进程和接收进程建立一条专用的通信链路;多对一关系允许提供服务的进程与多个用户进程进行交互,也称客户/服务器交互;一对多关系允许一个发送进程与多个接收进程交互,使发送进程用广播的形式,发送消息;多对多关系允许建立一个公用信箱,让多个进程都能向信箱投递消息,也可取走属于自己的消息。

进程通信使用的信箱逻辑上分成信箱头和______两部分。进程通信使用的信箱按所有者和权限可分为私有信箱、公用信箱和_______________三种类型。简述在消息缓冲通信方式中,接收进程PCB中应增加的数据项。课程议题2.基于消息传递的通信方式一、消息传递的通信机制不需要使用共享变量各结点主机上的进程之间普遍采用消息传递的通信方式进行通信。一个进程发送消息,另一个进程接收消息。在托管环境中使用消息队列(了解)应用程序可以使用消息队列发送消息并继续运行,无论接收应用程序正在运行还是可以通过网络进行访问。应用程序使用消息队列应用程序编程接口(API)调用来发送或接收消息。消息在发送方和接收方之间传输时,消息队列将这些消息保存在名为队列的保留区域中。这些队列能够避免消息在传输过程中丢失,并在接收方已准备好接收消息时提供检索消息的位置。消息队列中安全相关功能的示例(了解)在任何涉及消息队列的应用程序中,安全始终是一项重要的注意事项。从管理和应用程序设计的角度来看,消息队列包含多个相关的安全功能。以下列表中提供了一些示例:消息身份验证:消息身份验证提供了确保消息完整性以及验证消息发送方的方法。对消息完整性进行身份验证可确保没有人篡改过该消息或更改过其内容。

安全描述符:安全描述符提供了使用能够管理Windows中的所有安全对象访问的访问控制模型对队列访问进行管理的方法。

加密服务:加密服务为在整个企业中发送40位或128位的专用加密消息提供了安全通道。发送专用消息后,消息队列可确保消息正文在从离开源队列管理器至到达目标队列管理器期间始终保持加密状态。

审核服务:审核服务提供了对消息队列企业中的队列执行访问操作审核的方法。可以审核的操作包括创建队列、打开队列、设置或检索队列属性以及删除队列。

强模式:加强模式通过支持只使用HTTP(SRMP)消息的方案来增强Internet上运行的消息队列3.0计算机的安全性二、客户机/服务器模式基本思想:把操作系统构造为一个相互合作的进程。在网络中每个结点既可以作为一个服务器,也可以作为客户机。聊天软件就是消息传递的客户机/服务器的模式信箱通信中的多对一的方式也是一个典型的客户机/服务器的模式。工作过程:采用一个简单的无连接的请求/应答协议,客户端发送一个请求信息给服务器要求某种服务,服务器完成这一请求返回结果。所有通信由底层内核通过系统调用的原语完成。采用Socket的方式建立连接四、进程间通信的原语网络操作系统间,为实现进程间的通信,需要设计一些通信原语,这些通信原语是按照通信协议的规定建立的。如send()和receive()原语:一组指令的集合,执行过程不可被中断。五、通信协议作用:识别不同的系统、及不同的网络操作指令定义:计算机之间通信的信息格式、能被收/发双方接收的传送信息内容的一组定义。实现方式:OSI参考模型分类:基础型协议:提供网络连接服务,如TCP/IPIPX/SPXnetbeui应用型协议:提供网络服务,如HTTP、FTP、PP网络规模小、资源共享,使用netBEUI网络规模大、结构复杂,使用TCP/IP课程议题3.通信原语的设计一、通信原语的类型一次通信的过程有两对send()和receive()原语完成。在原语设计上主要分为四种:同步原语和异步原语缓冲原语和非缓冲原语可靠原语和非可靠原语二、同步原语与异步原语同步原语,也称阻塞原语。发送者调用同步原语过程:1.当发送者调用该原语时,必须对接收者具有明确的要求。2.当接收者准备就绪可以接受信息时,发送者立即将信息发送给对方,若接收者未准备好,那么发送者会自我阻塞,等待接收者就绪。3.而且,当处于发送状态时,发送者会等待信息完全发送完毕后再返回。二、同步原语与异步原语接收调用同步原语过程:接收者的原语若是同步原语的话,当其接收信息时,若此时发送者尚未发送信息,那么接收者会自我阻塞直到发送者发送信息。一旦信息发送者将信息发来,接收者会立即唤醒并接收信息,直到将接收到的信息放入指定进程的缓冲区后,接收原语才返回调用程序,继续执行下面的指令。同步原语优缺点优点:信息的传递不过多的占用处理机时间。缺点:设计不当会造成死锁或饥饿(1)互相等待(2)找不到接收者或找不到发送者进程A……Receive(B,q)Send(B,q)……进程B……Receive(A,q)Send(A,q)……进程死锁异步原语也称非阻塞原语。工作原理:放发送者调用异步通信原语时,先查找接收者,不管找到还是未找到,无论信息是否发出,原语立即返回调用程序,并返回发送成功或失败信息,继而继续执行下面的指令代码。优点:进程运行效率得以保证缺点:因为发送者不知道何时信息发送完毕,发送缓冲区何时可用。若发送缓冲区的信息还未发送完,而发送者又将新的信息存入缓冲区,会产生系统崩溃。异步原语接收原语工作过程:对于异步接收原语来讲也是一样,当接收者调用异步原语时,未等发送者出现或发送完毕就会立即返回接收失败或成功的消息,但是对于成功信息而言,接收原语何时将信息送达接收者的缓冲区是不可知的,也会造成严重的后果。解决之道1.对于异步发送原语而言:若果在发送者调用发送原语时,立即将信息从用户进程复制进入内核缓冲区,原语返回时就可以允许用户继续使用发送缓冲区,此时发送者和异步发送原语可以并发,提高了处理机效率。当发送者再次调用异步发送原语时,若此时信息已经发送完毕,会立即执行下一次发送,若还没有发送完,则会产生阻塞。对于接收原语来讲不能解决任何问题,需要配合一个测试原语。用于测试信息是否到达接收者的缓冲区。解决之道缺点:发送原语增加了一次复制过程,不仅占用内存,而且信息量大时,系统额外开销也大。2.采用中断方式。当异步发送原语将信息发送完毕后产生一个中断,通知发送者可以进行下一次发送。或者,异步接收原语当完成数据接收以后向接收者发出一个中断,表示信息已到达目的地,从而保证信息发送和接收的准确。对通信原语的设计主要有三种1.同步原语,阻塞发送和接收;有死锁和饥饿的可能2.带复制的异步发送原语和待测试的异步接收原语,非阻塞,并发度高;系统开销大3.带中断的异步原语,效率高,并发度大;编程困难,不利于调试。三、缓冲原语目的:采用异步通信原语通信时,如何为信息设置缓冲区。原因:对于发送者,发送原语会将信息放入内核缓冲区,发送者可以继续运行。如果发送原语已经发送结束,则内核缓冲区已经腾空,可以接收信息进来若果未发送完,则控制发送者在调用异步原语时阻塞,等待发送完成后再次调用。设置缓冲区对于接收者:若有接收进程正在等待接收,则将信息传送到接收者进程缓冲区若接收进程未准备好,即不知道发送过来的消息是哪个进程需要的,一种方法是直接丢弃,但最好的方法是让服务进程在内核中开辟一块缓冲区,对传过来的信息保存一段时间。若计时器到达再丢弃。优势:在一定程度上降低了信息的重发率。缓冲原语和非缓冲原语缓冲原语和非缓冲原语最大的区别:是否在内核中存在一块内存用来存放过早到达的信息,如果有则是缓冲原语,否则就是非缓冲原语。对内核缓冲区管理的办法就是采用信箱的方式。四、可靠原语与非可靠原语可靠原语:发送者发出的信息保证会送达接收者手中,可以要求发出的信息有回执,在客户端和服务器端可以采用确认的方式。非可靠原语:不能保证发送者发送的信息是完整可靠地,也不能保证信息一定会送达接收者手里。实现方式一1.客户端向服务端请求时,请求发出后便自我阻塞。2.服务器接收到请求后,通过内核向客户端回送一个确认信号。3.客户机内核接收到确认信号后唤醒客户机的发送者进程,进行下一轮操作。特点:客户机的发送者和接收者均不知道确认的存在,因为是内核完成。如果没有收到确认信号,将会组织重发节点计算机内核客户机节点计算机内核客户机31241.客户请求2.服务确认3服务应答4用户确认实现方式二方式:利用服务器应答的信息作为服务器的确认信息,减少了一个网络上信息的传递。但,如果一个请求在服务端执行时间过长,客户机会一直阻塞,直到服务器的应答过来。如果客户机发出的请求丢失,或服务器未响应,则根据计时器,超过一定时间,重新发送请求信号。节点计算机内核客户机节点计算机内核客户机2131.客户请求2.服务应答3用户确认服务器接到用户请求后开始计算,并将结果发给客户机,服务器阻塞,直到客户机发过来确认信息。若果一定时间未收到,重发结果,若收到,清除结果。若计算结果时间过长,则通知客户机不必再请求,只需等待。课程议题4.远程过程调用一、远程过程调用的概念当用户需要调用计算机硬件资源或软件资源时,很多工作都是通过系统调用完成。在网络系统中,不同结点主机之间也可以采用过程调用的方式进行通信,称之为远程过程调用,简称RPC。实现方式:通过一次完整的函数运行远程过程调用是一个协议。使用客户机/服务器模型,请求进程是客户机,服务提供进程是服务器。不仅需要传递参数,还要传递结果。跨越了OSI模型中的传输层和应用层。二、远程过程调用实现LPC本地过程调用原理本机可以直接访问所映射的物理存储器,通信方式可以采用信号、共享存储区的方式。过程调用举例:item=read(fd,buf,nbytes)用户应用程序Win32子系统系统服务本地过程调用文件系统驱动用户态核心态远程过程调用由于分布在不同的结点主机上,共享内存是独立的,因此必须设计出不依赖与内存管理的调用方法。设计思想:使得远程过程调用尽可能像本地调用一样,具有透明性,用户结点调用进程应该不知道被调用的过程是在哪一台结点主机上执行,被调用过程也不知道是来自哪个用户结点主机的进程调用。远程调用过程1.在陷入系统服务时,若是RPC,则调用客户代理2.客户代理将消息发送个服务器,在发出send()后,紧接着阻塞receive(),等待应答3.服务器代理收到消息后,发现是RPC,则拆包取出参数,然后再本地过程调用方式调用本地read(),执行完后将结果存入服务器代理的内部缓冲区。用户应用程序Win32子系统系统服务客户代理用户态核心态系统服务本地过程调用文件系统驱动服务器代理网络连接客户端服务端远程调用过程4.当服务器代理调用完成后,把结果通过调用send()发送给客户机,然后又回到receive(),等待下一次消息的到来。5.消息返回客户机后,唤醒receive(),将消息解包并复制到系统服务进程缓冲区,并做一个唤醒操作,将客户进程唤醒。两端执行的过程都是透明,好像在本地执行一样。三、远程过程调用与通信原语的比较远程过程调用优点:使用方便,将底层复杂的操作屏蔽在千差万别的不同系统之外,减轻了用户编程的负担。消息传递的通信原语优点:具有较大灵活性,用户可以组合send()和receive()。远程过程调用的格式要求:1)参数传递在异构平台之间的通用性问题2)使用请求/应答形式,不能在一次调用过程中多次接收中间结果,缺乏人机交互的灵活性。3)不能传送大量数据。课程议题5.组通信一、组通信的概念在一对多通信的情况下,发送者的信息希望发送一次就可以被多个接收者接收,若部分接收者不能工作,客户机的请求仍能得到可靠的服务。这就需要采用组通信机制。组是定义为在某一系统中相互有关系的进程的集合。当一个信息发给这个组时,

温馨提示

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

最新文档

评论

0/150

提交评论