linux(system V标准)进程间通信2

这篇具有很好参考价值的文章主要介绍了linux(system V标准)进程间通信2。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录:

             1.回顾上一节的代码

             2.shmat、shmdt的使用

             3.共享内存的大小为什么最好设置成4096字节的整数倍呢?

             4.操作系统如何管理共享内存的

-------------------------------------------------------------------------------------------------------------------------------

1.回顾上一节的代码

linux(system V标准)进程间通信2

 以上就是我们上一节的代码全部内容


2.shmat、shmdt的使用

linux(system V标准)进程间通信2

 linux(system V标准)进程间通信2

 linux(system V标准)进程间通信2

linux(system V标准)进程间通信2

 我们刚刚是一个进程和共享内存关联,我们现在两个进程和我们的共享内存关联呢??

linux(system V标准)进程间通信2

 linux(system V标准)进程间通信2

linux(system V标准)进程间通信2

 linux(system V标准)进程间通信2

 linux(system V标准)进程间通信2

linux(system V标准)进程间通信2 

 这样子我们两个进程都挂接上了我们的共享内存

接下来我们来写一点测试的代码

linux(system V标准)进程间通信2

 linux(system V标准)进程间通信2

我们运行起来看看

linux(system V标准)进程间通信2

 linux(system V标准)进程间通信2

 这样子我们就完成了依靠共享内存进行进程间通信

linux(system V标准)进程间通信2

共享内存是所以进程间通信速度最快的!! 因为它是直接将一块共享内存映射该进程的地址空间当中,另一边一旦写入,我这边立马就能看到(没有了拷贝环节)

共享内存不提供任何同步或者互斥机制,需要程序员自行保证数据的安全

3.共享内存的大小为什么最好设置成4096字节的整数倍呢?

linux(system V标准)进程间通信2

 我们在shmget创建共享内存的时候。通常建议是4096的整数倍

linux(system V标准)进程间通信2

4.操作系统如何管理共享内存的

我们先看看操作系统用户层给我们暴露出来的数据结构

linux(system V标准)进程间通信2

 我们也来认识一下消息队列的接口

linux(system V标准)进程间通信2

我们来看看信号量的用户层数据结构和一些调用接口

linux(system V标准)进程间通信2

 ----------------------------------------------------------------------------------------------------------------------------

我们发现了共享内存、消息队列、信号量的接口都是类似的

数据结构的第一个结构类型的完全一样的!!(struct ipc_perm)

在内核当中,所有的IPC资源都是通过,数组组织的

linux(system V标准)进程间通信2

可是怎么通过数组组织的呢???

linux(system V标准)进程间通信2文章来源地址https://www.toymoban.com/news/detail-471588.html

到了这里,关于linux(system V标准)进程间通信2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux】进程间通信——System V信号量

    目录 写在前面的话 一些概念的理解 信号量的引入 信号量的概念及使用            System V信号量是一种较低级的IPC机制 ,使用的时候需要手动进行操作和同步。在现代操作系统中,更常用的是 POSIX信号量 (通过 sem_* 系列的函数进行操作)或更高级的同步原语(如互斥锁

    2024年02月11日
    浏览(49)
  • 【Linux】进程间通信——system V共享内存 | 消息队列 | 信号量

    共享内存是一种在多个进程之间进行进程间通信的机制。它允许多个进程访问相同的物理内存区域,从而实现高效的数据交换和通信。 因为 进程具有独立性(隔离性) ,内核数据结构包括对应的代码、数据与页表都是独立的。OS系统为了让进程间进行通信,必须让不同的进

    2024年02月15日
    浏览(53)
  • Linux之进程间通信——system V(共享内存、消息队列、信号量等)

    本文介绍了另一种进程间通信——system V,主要介绍了共享内存,消息队列、信号量,当然消息队列了信号量并非重点,简单了解即可。 共享内存 :不同的进程为了进行通信看到的同一个内存块,该内存块被称为共享内存。 进程具有独立性,它的内核数据结构包括对应的代

    2024年02月08日
    浏览(61)
  • 【探索Linux】—— 强大的命令行工具 P.15(进程间通信 —— system V共享内存)

    在多进程编程中,进程间通信(IPC)是一项关键技术,它使得不同的进程能够相互交换数据和协调行为。而在众多的IPC机制中,System V共享内存是一种高效且强大的通信方式。通过使用共享内存,我们可以将数据从一个进程快速地传递给另一个进程,避免了复制数据的开销,

    2024年02月05日
    浏览(62)
  • linux(system V标准)信号量

    目录:             1.什么是信号量             2.信号量的本质 1.什么是信号量   2.信号量的本质  什么是临界资源呢?? 凡是倍多个执行流同时访问的资源就是临界资源!!! 我们看一个问题,我们fork()之后创建一个子进程,那么我们的全局变量,是不是我们父

    2024年02月07日
    浏览(43)
  • linux目录/usr/lib/systemd/system目录详解

    init 的进化经历了这么几个阶段: CentOS 5: SysV init,串行 CentOS 6:Upstart,并行,借鉴ubuntu CentOS 7:Systemd,并行,借鉴MAC 今天我们一起来看看systemd的使用 Systemd 新特性: (1)系统引导时实现服务并行启动:服务间无依赖关系会并行启动 (2)按需激活进程:若服务非立刻使用,不会立刻

    2024年02月01日
    浏览(43)
  • 标准C库之raise,abort函数(进程通信函数,发送信号类函数)

    如果,想要深入的学习标准C库中的raise,abort函数,还是需要去自己阅读Linux系统中的帮助文档。 具体输入命令: 即可查阅到完整的资料信息。 raise 是一个C语言标准库函数,它的作用是给当前进程发送信号。它属于信号处理库(signal.h),允许程序员通过代码控制信号的发送

    2023年04月26日
    浏览(43)
  • C/C++ 进程间通信system V IPC对象超详细讲解(系统性学习day9)

    目录 前言 一、system V IPC对象图解 1.流程图解: ​编辑 2.查看linux内核中的ipc对象:  二、消息队列 1.消息队列的原理 2.消息队列相关的API 2.1 获取或创建消息队列(msgget)  实例代码如下: 2.2 发送消息到消息队列中  实例代码如下: 2.3 从消息队列中获取消息   实例代码如

    2024年02月08日
    浏览(38)
  • linux 查看某个进程所在目录

    1、通过 ps -ef | grep xxx 查看进程信息 2、通过 ll /proc/PID 命令查看进程所在目录位置 Linux在启动一个进程时,系统会在 /proc 下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程的信息,其中包括一个名为exe的文件即记录了绝对路径,通过 ll 或 ls –l 命令即可查看. cw

    2024年02月16日
    浏览(72)
  • 【Linux】对system V本地通信的内核级理解

             通过之前的学习,我们大致可以感受出来,共享内存,消息队列和信号量在使用的时候是有很多共性的。它们三个的接口,包括接口中传的参数有的都有很大的相似度。其实,共享内存,消息队列和信号量是操作系统针对本地进程间通信特意设计出来的system V版本

    2024年04月23日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包