Memory 内存地址是什么意思?

Memory 内存地址是什么意思?,memory,computer-science,byte,Memory,Computer Science,Byte,十六进制内存地址是否代表整个内存中的位置 e、 g.4GB内存,有一个内存地址。它是否指向数据开始的位置(以字节为单位)?e、 g.在2.1 gb 在数据加载到内存之前,硬盘上的内存地址是如何工作的 是否曾经有过这样的情况:部分数据从内存中提取,而其他数据从磁盘中提取?地点如何区分 谢谢现代操作系统带来的好处 这意味着使用程序访问内存中某个字节的地址纯粹是“虚拟”的,不存在。操作系统通过特殊的硬件控制器将其映射到完全不同的实际内存位置,对于给定地址可能根本没有物理内存位置。例如,您可以将一个文件

十六进制内存地址是否代表整个内存中的位置

e、 g.4GB内存,有一个内存地址。它是否指向数据开始的位置(以字节为单位)?e、 g.在2.1 gb

在数据加载到内存之前,硬盘上的内存地址是如何工作的

是否曾经有过这样的情况:部分数据从内存中提取,而其他数据从磁盘中提取?地点如何区分


谢谢

现代操作系统带来的好处


这意味着使用程序访问内存中某个字节的地址纯粹是“虚拟”的,不存在。操作系统通过特殊的硬件控制器将其映射到完全不同的实际内存位置,对于给定地址可能根本没有物理内存位置。例如,您可以将一个文件放入(虚拟)内存中,访问虚拟地址处的一个字节意味着访问文件的一个字节。类似地,如果某些页面长时间未使用,操作系统可能会将页面从物理RAM复制到磁盘。在这种情况下,虚拟内存也不会指向物理内存位置。

在大多数情况下-是。但有些处理器使用2个值来计算实际地址。例如英特尔8086。 硬盘是唯一的存储器,它有自己的系统来存储信息。因此,在执行任何CPU操作之前,必须将数据加载到RAM中。

十六进制内存地址(如打印出指针值时所看到的地址)指向虚拟内存中的某个位置

在32位系统上,每个进程都有完整的4GB虚拟内存。该虚拟内存由CPU和操作系统管理。当您访问虚拟内存中的某个位置时,CPU和操作系统将确定该位置在系统实际物理内存中的映射位置,并从该位置检索数据


操作系统还可以从物理内存中取出一些东西并将它们交换到磁盘,以便在物理内存中为其他东西腾出空间。然后,如果您试图访问从物理内存交换到磁盘的某个对象的虚拟内存位置,则会生成一个“页面错误”,导致操作系统将页面从磁盘重新加载到物理内存。

@aljaree我认为处理虚拟内存的策略在某种程度上与操作系统有关。你到底对什么情况感兴趣?@mitch wheat是的,我在发帖之前没有读过(因为我熟悉虚拟内存的概念)。糟糕的是这篇文章的状态如此糟糕<代码>:/谢谢。那么虚拟内存是存储在磁盘上还是存储在内存中?@aljaree虚拟内存是“虚拟的”,不存在。它没有存储在任何地方。在任何特定时刻,它都可以映射到物理RAM位置、交换中的地址、mmap文件中的地址等等。有趣的情况是,当某个虚拟内存地址根本没有映射到任何地方,而您正试图访问它时。在这种情况下,会生成访问冲突,也称为分段错误。我现在有点困惑。我是从程序员的角度来看它的。如果必须编写程序集,虚拟内存将从何而来?虚拟机中的虚拟一词与虚拟内存有相同的概念吗?关于虚拟内存的最佳书籍?谢天谢地,虚拟机除了虚拟内存这个词外,与虚拟内存的概念没有任何共同之处。作为一名程序员,您要求操作系统通过在可执行映像中分配段,将一些虚拟页面与实际存储相关联。然后,OS可执行加载程序将完成这项工作,使堆栈和堆段可用。这两个区域以后都可以扩展。您建议使用反汇编程序来了解更多信息吗?此外,反汇编程序中提供了什么内存地址?物理内存地址?虚拟内存与此有什么关系?谢谢,谢谢。所以,当计算机不久前内存不足时,如果需要的数据超过了可用内存,该怎么办?我的意思是,活动字节导致系统无法释放内存。他们不得不等待新的硬件?嗯,虚拟内存系统有点帮助。但是,如果应用程序是内存密集型的,那么系统最终可能会进行交换。我建议验证交换了多少页。使用Windows中的任务管理器查找。不,我还没有关于这方面的线索。我很感兴趣,只是想知道这个问题。谢谢