首页 > 系统相关 >进程通信

进程通信

时间:2022-12-11 17:11:06浏览次数:55  
标签:操作系统 通信 互斥 管道 进程 共享

①知识总览

images

②进程通信的定义

  • 顾名思义,进程通信就是指进程之间的信息交换
  • 进程是分配系统资源的独立单位(包括内存地址空间),因此各进程拥有的内存地址空间相互独立
  • 为了保证安全,一个进程不能直接访问另一个进程的地址空间。但是进程之间的信息交换又是必须实现的。为了保证进程间的安全通信,操作系统提供了一些方法(共享存储、消息传递、管道通信)

③共享存储

images
  • 两个进程对共享空间的访问必须是互斥的(互斥访问通过操作系统提供的工具实现)
  • 操作系统只负责提供共享空间和同步互斥工具(如P、V操作)
  • 基于数据结构的共享存储:比如共享空间里只能放一个长度为10的数组。这种共享方式速度慢、限制多,是一种低级通信方式
  • 基于存储区的共享存储:在内存中画出一块共享存储区,数据的形式、存放位置都由进程控制,而不是操作系统。相比之下,这种共享方式速度更快,是一种高级通信方式

④管道通信

images
  1. 管道只能采用半双工通信,某一时间段只能实现单向的传输。如果要实现双向同时通信,则需要设置两个管道
  2. 各进程要互斥地访问管道
  3. 数据以字符流地形式写入管道,当管道写满时,写进程的write()系统调用将被阻塞,等待读进程将数据取走。当读进程将数据全部取走后,管道变空,此时读进程的read()系统调用将被阻塞
  4. 如果没写满,就不允许读;如果没读空,就不允许写
  5. 数据一旦被读出,就从管道中被抛弃,这就意味着读进程最多只能有一个,否则可能会有读错数据的情况

⑤消息传递

​ 进程间的数据交换以格式化的消息(Message)为单位。进程通过操作系统提供的“发送消息/接受消息”两个原语进行数据交换

images
  • 直接通信方式

    • 消息直接挂到接收进程的消息缓冲队列上
images
  • 间接通信方式

    • 消息要先发送到中间实体(信箱)中,因此也称“信箱通信方式”。Eg:计网中的电子邮件系统
images

⑥总结:

images

参照:王道计算机操作系统

标签:操作系统,通信,互斥,管道,进程,共享
From: https://www.cnblogs.com/MuYg/p/16973920.html

相关文章

  • 【进程】Linux进程创建过程
    一、Linux中对进程的表示在Linux中,是用一个task_struct来实现Linux进程的(线程也同样使用task_struct来表示)。task_struct定义在include/linux/sched.h//file:include......
  • ogg启动抓取进程时报错OGG-01044
    问题描述:ogg启动抓取进程时报错OGG-01044,如下所示:源端:oracle10.2.0.464位异常重现:GGSCI(leo-10g-ogg)4>startextaSendingSTARTrequesttoMANAGER...EXTRACTEXTA......
  • STM32与PS2的无线通信和相关函数介绍
    PS2采用SPI通信协议源码和参考文件获取:https://github.com/Sound-Sleep/PS2_Based_On_STM32接收器接口DI:手柄->主机,时钟的下降沿传送信号,信号的读取在时钟由髙到低......
  • 进程的状态与转换
    ①进程的状态进程是程序的一次执行。在这个执行过程中,有时进程正被CPU处理,有时又需要等待CPU服务,可见,进程的状态是会有各种变化。为了方便对各个进程的管理,操作系统需要将......
  • python多进程&多线程
    python多进程&多线程1.多进程定义  2.多线程  3.应用  3.1不使用多线程则顺序执行1importlogging2fromthreadingimportThread3fromti......
  • 进程的定义、组成、组织方式、特征
    ①进程的定义​ 程序段、数据段、PCB三部分组成了进程实体(进程映像)。一般情况下,我们把进程实体就简称为进程,例如,所谓创建进程,实质上是创建进程实体中的PCB;而撤销进程,实质......
  • 设置进程名称(标题)
    1. 程序中栈的结构                                1.命令行参数:./nginx-12-v......
  • 实现虚拟机与外部网络的通信
    设置cpu虚拟化设置,安装putty,使用putty登录centos根据以前的步骤创建一个实例1、准备镜像(创建镜像) 以下为 demo2、设置安全组(添加SSH和ping命令的规则)lcmp3、创建......
  • m基于STBC的MIMO通信系统性能仿真和信道容量仿真
    1.算法概述空时分组编码STBC(SpaceTimeBlockCoding)用在无线通信中传输一个数据流的多个拷贝。通过许多天线来产生数据的多种接收版本,提高数据传输的可靠性。接收机接收到......
  • m基于STBC的MIMO通信系统性能仿真和信道容量仿真
    1.算法概述       空时分组编码STBC(SpaceTimeBlockCoding)用在无线通信中传输一个数据流的多个拷贝。通过许多天线来产生数据的多种接收版本,提高数据传输的可靠......