1.   概述

Linux由于历史原因,其IPC分为SYSTEM V版本和POSIX版本。本文主要讨论在共享内存方面这两个版本之间的区别。

各共享内存IPC的函数对照表:

IPC

POSIX

SYSTEM V

头文件

IPC创建和删除

shm_open

shm_unlink

shmget

IPC控制

ftruncate

fstat

shmctl

IPC操作

mmap

munmap

msync

shmat

shmdt

在实现机制方面,POSIX共享内存是采用IO映射的方式来实现的,即通过系统调用mmap()映射一个普通文件实现共享内存。SYSTEM V共享内存则是通过对特殊文件系统shm中的文件来映射实现的,也就是说,每个共享内存区域���应特殊文件系统shm中的一个文件。它们之间的关键区别是POSIX共享内存把一个普通文件映射到系统内存中实现,而SYSTEM V共享内存则是直接在shm特殊文件系统上实现。

2.   低压集抄嵌软中共享内存使用分析

目前低压集抄嵌软采用POSIX共享内存实现进程间通信和系统级数据的内存共享。而POSIX共享内存需要通过一个普通文件来映射实现共享内存,于是系统在启动时创建ramfs文件系统,再在其上建立共享内存文件。ramfs是内存文件系统,它直接建立在内存上,占用相当多的内存空间。同时由于低压集抄系统采用的ucLinux不支持虚拟内存,这样在映射时又占用一大部分内存空间,直接导致了共享内存对双份内存空间的占用。

那为什么不能将普通文件建立在flash文件系统上呢?由于NAND FLASH存储器件的写操作的特殊性,决定了嵌软的写数据操作不能太频繁,否则有可能影响NAND FLASH器件的寿命。据《Linux内核源代码情景分析》下载见 http://www.linuxidc.com/Linux/2011-05/36202.htm,POSIX共享内存会由系统不定时将共享内存中的内容刷新到普通文件中。基于此,当初设计时采用ramfs也不是没有道理的。

3.   低压集抄嵌软中共享内存改进建议

由于目前装置生产中成本控制较严,内存容量较小,而低压集抄系统须共享的数据较多,如在北京集抄嵌软中系统共享数据达到10M,通过POSIX共享内存映射机制实现进程信息共享后,将内存耗去20M。基于此,建议共享内存采用SYSTEM V版本提供的方法来实现。由于SYSTEM V共享内存不需要通过普通文件映射来实现,所以不需要刷新到普通文件中。在实际使用中可以比POSIX省近一半内存,非常可观。

要验证以上设想,还需要做两点工作:

1、确认目前所用的Linux系统支持SYSTEM V共享内存及shm特殊文件系统。

2、实现一个原型,证明以上设想是实际可行的。

linux共享内存变量 tiaojianbianliang,低压集抄系统中Linux共享内存使用分析相关推荐

  1. php 集群 session共享,Session共享:php和redis集群如何实现Session共享

    本篇文章给大家带来的内容是关于Session共享:php和redis集群如何实现Session共享,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 一.redis 数据库集群安装软件版 ...

  2. 基于Linux的集群系统(五) Linux集群系统的实现

    1.设计目标 设计一个基于Linux的集群系统,它能够提供负载平衡的功能.系统能够不断监视集群中各台实际服务器的负载状况,并且将来自外部网的多种请求转发到内部网中的某一台实际服务器上执行. 具体来说, ...

  3. 集抄终端测试软件,远程抄表集抄系统

    产品名称:远程抄表集抄系统 产品链接:http://cn.trustexporter.com/cp-henghandq/o5661404.htm 手机版链接:https://m.trustexport ...

  4. 智能水表集抄系统——助力智慧城市公共事业发展!

    随着中国工业化.现代城市化建设步伐的加快,科学高效的利用好管理好水资源的需求日益迫切.在这样的大环境下,如何快速构建现代化城市智慧水务系统迫在眉睫.传统水务系统对城市用水的管理模式普遍以人工巡检.人工 ...

  5. 【博士论文】集群系统中的网络流调度

    来源:专知 本文为论文,建议阅读5分钟当前,集群系统的部署和使用非常广泛. 来自清华大学张彤的博士论文,入选2021年度"CCF优秀博士学位论文奖"初评名单! https://ww ...

  6. MODBUS转profibus网关在运输机集控系统中的应用

    本系统中主要介绍MODBUS转profibus网关YT-PB-01在带输机集控系统中的应用. 本系统配置一台上位监控计算机,安装有西门子Wincc组态监控软件,安装在胶带机尾部集中控制室内:4台分别配 ...

  7. linux共享内存变量 tiaojianbianliang,修改linux共享内存大小

    这是实际linux系统显示的实际数据: beijibing@bjb-desktop:/proc/sys/kernel$ cat shmmax 33554432 beijibing@bjb-deskto ...

  8. linux nfs系统客户端,Linux系统中挂载共享目录NFS文件系统客户端安装与配置

    NFS服务简介      NFS是Network  File System(网络文件系统).主要功能是通过网络让不同的服务器之间可以共享文件或者目录.NFS客户端一般是应用服务器(比如web,负载均衡 ...

  9. win10网络邻居看到linux,在Deepin 20系统中网络共享Windows无法访问的另类解决方法...

    本文在Deepin 20系统中实现网络共享Windows,但无法访问,以下是另类的解决方法之一. 系统环境 共享主机:Deepin 20. 访问共享:Windows7\10家庭版或专业版. 配置和出现 ...

最新文章

  1. poj 2677 tour
  2. cuda9.1 tensorflow1.6
  3. OpenCL异构并行计算编程笔记(2):命令队列与内存对象
  4. linux传文件到其他用户,Linux怎样拷贝文件到其他用户
  5. LeetCode Longest Absolute File Path(栈和前缀和解法)
  6. 【操作系统】RedHat7系安装显卡驱动
  7. Rancher2.0中邮件通知的设置
  8. C++11 统一初始化(Uniform Initialization)
  9. 【转载】ArrayList 中数据删除 fail fast
  10. SharePoint 2013 激活标题字段外的Menu菜单
  11. DIAView 嵌入视频监控(海康威视)
  12. 如何在谷歌浏览器官网下载谷歌浏览器32位、64位或其他版本最新的离线安装包?
  13. JS 延时函数 setTimeout 或者 rxjs 写法
  14. python初步学习笔记(上)
  15. Win11右键显示更多选项设置教程
  16. 取消windos开机时的磁盘检查,提升开机速度
  17. 在线编译器汇总|2020年最新版
  18. 遥感科普|中国高分系列卫星综述(2020版)
  19. Cesium 关于相机的orientation 及 destination并制作地球动画
  20. 七号信令系统在GSM中的应用

热门文章

  1. Waymo在美国推出自动驾驶汽车共享服务
  2. cve-2014-7911安卓提权漏洞分析
  3. linux系统下的权限知识梳理
  4. python学习——函数及其参数
  5. 移动端:判断是否微信端、判断手机操作系统(ios或android)
  6. [翻译]用 Puppet 搭建易管理的服务器基础架构(3)
  7. Apache 安全配置方法
  8. MFC日志(2011.4.9)
  9. 2.14 加载Firefox配置
  10. C++ - 构造和析构 2018-01-10