c - 什么是命名内存块

标签 c memory-management operating-system

我知道,一般来说,命名内存块是共享内存,您可以通过名称分配和访问它。 我想知道的是使用命名内存块的优点是什么,什么时候应该在内存管理方面使用它?

最佳答案

您所描述的名称因操作系统而异。 它是一个页面范围,可以映射到多个进程的地址空间。它实际上有两个组成部分:

1)页面文件中的存储

2) 物理内存——有了分页,可能不会一直有与之关联的物理内存。

名称作为识别共享内存的方式,以便它可以映射到进程地址空间。

它用于在进程之间共享数据。它们非常常用于数据库系统。它们是最快的进程间通信方法,但需要应用程序必须实现的某种锁定机制。它们通常与一个作者和多个读者一起使用。

如果进程 A 和 B 映射到共享内存块,并且进程 A 写入该 block ,B 会立即看到更改。

关于c - 什么是命名内存块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27970821/

相关文章:

c - recv 是否从 pcaps 缓冲区中删除数据包?

java - C 进程和 JAVA 应用程序之间的 FIFO 问题

c - 从http请求中提取号码

iphone - ARC 是否在任何自定义 -dealloc 代码之前或之后在 -dealloc 中插入代码?

memory-management - 虚拟内存和物理内存有什么区别?

c++ - MySQL/C++ 连接器 mysql_real_escape_string 函数

c - 哪种方式为字符串保留内存?

php - 改进 PHP 导入脚本的内存使用

windows - "/"和 "\"在不同操作系统中的故事

unix - execlp() 系统调用如何工作?