zoukankan      html  css  js  c++  java
  • POSIX systemV共享内存的区别

    POISX共享内存分为两种方式:

    1、内存映射文件

    特点:共享内存的改变能在文件中体现;

    2、共享内存区对象

    特点:共享内存的改变在文件上看不出来(实际上根本打不开该文件);

    以上两者都是基于mmap函数实现的。

    先看mmap函数的作用:

    mmap函数主要的功能就是将文件或设备映射到调用进程的地址空间中,当使用mmap映射文件到进程后,就可以直接操作这段虚拟地址进行文件的读写等操作,不必再调用read,write等系统调用。在很大程度上提高了系统的效率和代码的简洁性。

    使用mmap函数的主要目的是:

    • 对普通文件提供内存映射I/O,可以提供无亲缘进程间的通信;
    • 提供匿名内存映射,以供亲缘进程间进行通信。
    •  对shm_open创建的POSIX共享内存区对象进程内存映射,以供无亲缘进程间进行通信

    mmap成功后,可以关闭fd,一般也是这么做的,这对该内存映射没有任何影响。

    SYSTEM V共享内存的实现要比POISX早且更完善,更易用,但其缺点是:内存大小在创建时确定,之后不能改变(POISX可以)。

  • 相关阅读:
    ApiDoc 一键生成注释
    质量报告之我见
    一些 ssh 小技巧
    virtualenv简介以及一个比较折腾的scrapy安装方法
    用scrapy数据抓取实践
    linux rootfs制作
    ubuntu环境下android开发环境安装
    弱符号 与 强符号, 强引用 与 弱引用
    链接器和加载器
    wine的使用
  • 原文地址:https://www.cnblogs.com/candl/p/8534140.html
Copyright © 2011-2022 走看看