首页 > 其他分享 >操作系统(2.6.2)--消息传递通信的实现方式

操作系统(2.6.2)--消息传递通信的实现方式

时间:2023-03-25 23:07:00浏览次数:41  
标签:发送 -- 通信 信箱 消息 链路 进程 消息传递 2.6

1.直接消息传递系统

这是指发送进程利用OS所提供的发送命令,直接把消息发送给目标进程。

1.1直接通信原语

(1)对称寻址方式。

系统提供下述两条通信命令(原语)

Send(Receiver,message); 发送一个消息给接收进程;

Receive(Sender,message); 接收Sender发 来的消息;

例如,原语Send(P2, m)表示将消息m1发送给接收进程P2;而原语Receive(P1,my)则 表示接收由P1发来的消息m1。

(2)非对称寻址方式

通常,系统提供下述两条通信命令(原语):

Send(P,message);发送 一个消息给进程P;

Receive(id,Imessage);接收来自任何进程的消息,id变量可设置为进行通信的发送方进程id或名字。

1.2消息的格式

在消息传递系统中所传递的消息,必须具有一定的消息格式。

通常,可把一个消息分成消息头和消息正文两部分。

消息头包括消息在传输时所需的控制信息,如源进程名、目标进程名、消息长度、消息类型、消息编号及发送的日期和时间;

消息正文则是发送进程实际上所发送的数据。在某些0S中,消息采用比较短的定长消息格式,在有的0S中,采用变长的消息格式,即进程所发送消息的长度是可变的。

1.3进程同步方式

在进程之间进行通信时,同样需要有进程同步机制,以使诸进程间能协调通信。我们可得到以下三种情况:

(1)发送进程阻塞,接收进程阻塞。这种情况主要用于进程之间紧密同步,发送进程和接收进程之间无缓冲时。这两个进程平时都处于阻塞状态,直到有消息传递时。

(2)发送进程不阻塞,接收进程阻塞。这是一种应用最广的进程同步方式。平时,发送进程不阻塞,因而它可以尽快地把一一个或多个消息发送给多个目标;而接收进程平时则处于阻塞状态,直到发送进程发来消息时才被唤醒。

(3)发送进程和接收进程均不阻塞。这也是一.种较常见的进程同步形式。平时,发送进程和接收进程都在忙于自己的事情,仅当发生某事件使它无法继续运行时,才把自己阻塞起来等待。

1.4通信链路

为使在发送进程和接收进程之间能进行通信,必须在两者之间建立一条通信链路。有两种方式建立通信链路:

第一种方式是由发送进程在通信之前用显式的“建立连接”命令(原语)请求系统为之建立一条通信链路;在链路使用完后,也用显式方式拆除链路。这种方式主要用于计算机网络中。

第二种方式是发送进程无须明确提出建立链路的请求,只须利用系统提供的发送命令(原语),系统会自动地为之建立一条链路。这种方式主要用于单机系统中。

而根据通信方式的不同,则又可把链路分成两种:

①单向通信链路,只允许发送进程向接收进程发送消息,或者相反;

②双向链路;即允许由进程A向进程B发送信息,也允许进程B同时向进程A发送消息。

2.信箱通信

信箱通信属于间接通信方式,即进程之间的通信需要 通过某种中间实体来完成。该实体用来暂存发送进程发送给目标进程的消息;接收进程则从该实体中取出对方 发送给自己的消息。 通常把这种中间实体称为信箱。信箱可分为信箱头和 信箱体两部分。利用信箱通信方式,既可实现实时通信, 又可实现非实时通信。 系统为信箱通信提供了若干条原语,分别用于信箱的创建、撤消和消息的发送、接收等。

2.1信箱的结构

信箱定义为一种数据结构。在逻辑上,可以将其分为两个部分:

(1)信箱头,用以存放有关信箱的描述信息,如信箱标识符、信箱的拥有者、信箱口令、信箱的空格数等;

(2)信箱体,由若千个可以存放消息(或消息头)的信箱格组成,信箱格的数目以及每格的大小是在创建信箱时确定的。

2.2心想通信原语

(1)信箱的创建和撤消。进程利用信箱创建原语来建立一个新信箱。当进程不再需要读信箱时,可用信箱撤消原语将之撤消。

(2)消息的发送和接收。当进程之间要利用信箱进行通信时,必须使用共享信箱,并利用系统提供的通信原语进行:

Send(mailbox,message);将一个消息发送到指定信箱;

Receive(mailbox,message); 从 指定信箱中接收一一个消息;

操作系统(2.6.2)--消息传递通信的实现方式_链路

2.3信箱的类型

信箱分为以下三类:

1)私用信箱:由用户进程创建,并作为该进程的- -部分。信箱的拥有者有权从信箱中读取消息,其他用户则只能将自己构成的消息发送到该信箱中。-- 单向通信链路

2)公用信箱:由操作系统创建,并提供给系统中的所有核准进程使用。--双向通信链路核准进程既可把消息发送到该信箱中,也可从信箱中读取发送给自己的消息。

3)共享信箱:由某进程创建,需指出共享进程的名字。

标签:发送,--,通信,信箱,消息,链路,进程,消息传递,2.6
From: https://blog.51cto.com/hwuu/6149652

相关文章

  • 华为云ECS/HECS:中小企业上云第一步
    华为云ECS/HECS:中小企业上云第一步1.上云是目前中小企业最火热的话题博主目前担任中型企业架构师,在与客户的沟通过程中,”你们公司上云了吗“是谈及最多的话题,在客户的眼里,上......
  • 为什么要将程序部署到云服务器上?华为云Web及移动App上云解决方案体验测评
    Web及移动App上云是指将Web应用程序或移动应用程序部署到云计算平台上,以便用户可以通过互联网访问这些应用程序。这种部署方式可以提高应用程序的可靠性、可扩展性和安全性,......
  • 基于Agora SDK实现Android端的声动互娱(三)——播放音效
    除了背景音乐之外,配音对音视频的影响也是至关重要的,比如喜剧啦、相声啦会配音掌声如雷和哄堂大笑,此外有人新加入直播间时的敲门声也是一种音效。Agora提供了简单易用的SDK让......
  • 新概念2册L68笔记(动名词的主语作主语&宾语的区分)
    L68Persistent单词理解语法理解动作词的逻辑动名词的主语:1、无特殊说明:句子主语/泛指任何人2、逻辑主语:动名词作主语:所有格动名词作宾语:所有格/宾格课文理解......
  • 云桌面技术哪家强?亲身体验后才知道 | 华为云测评
    一.简介作为一家领先的云计算服务提供商,华为云提供了丰富的云计算服务,其中包括云桌面服务。华为云桌面Workspace(DAAS)是一种基于云计算的桌面虚拟化服务,可以帮助企业将用户......
  • LeetCode199.二叉树的右视图
    1.题目:给定一个二叉树的根节点root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例1:输入: [1,2,3,null,5,null,4]输出: [1,3,4]来源:力......
  • 关于 Web 应用的内联 css 和 scss 文件里的 var 关键字用法
    为什么网站性能调优准则里都强调要UseinlinefontsandCSSinsteadofloadingthemasynchronously?网站性能优化的一个重要目标是尽可能地缩短页面加载时间,使用户可以......
  • 关于 Web 应用的 Above-the-Fold Loading 加载机制
    Above-the-FoldLoading是一种网页加载技术,可以让网页的上半部分尽快地显示在屏幕上,让用户能够更快地看到网页的内容,提高用户体验。具体来说,Above-the-FoldLoading会优先......
  • 会声会影2023旗舰版最低配置要求
    会声会影2023旗舰版是一款广受欢迎的视频编辑软件,它的最新版本,会声会影2023,已经发布。在这篇文章中,我们将探讨会声会影2023的新功能以及它对视频制作人员的影响。会声会影20......
  • 什么是devops?
    DevOps是一个完整的面向IT运维的工作流,以IT自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程式开发、测试、系统运维等所有环节。  DevOps的概念DevOps一词的来自于Dev......