映射和分配

时间:2015-10-12 10:17:14

标签: memory

我对术语映射很困惑,例如,当我们说数据库的映射内存时,它意味着我们在某个内存位置为该数据库分配了特定数量的内存?

还是为内存分配内存同义词吗?

我经常遇到这两个术语,对我来说不太清楚。

如果有人能澄清这两个词,我将非常感激。

2 个答案:

答案 0 :(得分:1)

这可能是stackoverflow向软件社区提出的问题。但是,我是CS。

我会说术语并不总是准确而精确地使用。

通常,分配内存会使程序的内存可用于某个活动目的,例如为缓冲区分配内存来保存文件或内存结构现在

保留记忆通常用于表示同样的事情。但是,它有时更加被动。例如,如果存储器是未来需求,则保留存储器,或者针对不同目的防止过多的存储器分配。

通常在使用术语“映射”时,它适用于文件。它可能与分配完全相同。或者意味着更多;映射可以使用由虚拟内存管理系统提供的底层机制,其中虚拟内存的一部分被“映射”到文件,而不实际将文件读入物理内存。诀窍是,当访问内存映射文件时,正在访问的块/页面在必要时“无形地”读取到进程。这使用称为请求分页的机制。它的好处是一个程序可以访问该文件,就好像它全部被读入内存,但只有实际访问的部分是从持久存储系统(磁盘,闪存,等等)中检索出来的,如果只是小部分,这可能是一个巨大的胜利。该文件是必需的。

此外,它简化了程序,可以将其编写为整个文件都在内存中。而不是应用程序开发人员试图跟踪文件的哪些部分已被加载到内存中,操作系统会这样做。

更好的是,可以要求操作系统跟踪哪些块/页面的内容已更改,并且可以要求它定期将其写回到持久存储。这甚至可以进一步简化应用程序。

这在某些数据库中很受欢迎。

答案 1 :(得分:0)

映射基本上意味着分配。除了在函数的情况下我们经常需要1对1的映射。如果您定义对象的功能,物理的或仅仅是逻辑的,并定义它的关系以及它在转换下如何变化,那么您已经映射了它。