gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 04:59:43 26 4
gpt4 key购买 nike

我经常对操作系统中的虚拟化概念感到困惑。将 RAM 视为物理内存,为什么我们需要虚拟内存来执行进程?

当来自外部硬盘驱动器的进程(程序)被带到主内存(物理内存)执行时,这个虚拟内存在哪里。

谁来管理虚拟内存,虚拟内存的大小是多少?

假设 RAM 的大小为 4GB(即 2^32-1 个地址空间),虚拟内存的大小是多少?

最佳答案

除其他外,虚拟内存是一种抽象,它给程序员一种在他们的系统上有无限可用内存的错觉。

虚拟内存映射对应于实际的物理地址。 操作系统 创建并处理这些映射 - 利用页表以及其他数据结构来维护映射。虚拟内存映射总是在页表或一些类似的数据结构中找到(在其他虚拟内存实现的情况下,我们可能不应该称它为“页表”)。页表也位于物理内存中——通常位于用户程序无法覆盖的内核保留空间中。

虚拟内存通常比物理内存大 - 如果虚拟内存和物理内存大小相同,则没有太多理由进行虚拟内存映射。

通常,只有程序所需的部分驻留在内存中 - 这是一个称为“分页”的主题。虚拟内存和分页密切相关,但 不是 同样的话题。虚拟内存还有其他实现方式,例如分段。

我可能在这里假设错了,但我敢打赌,您发现难以理解的事情与虚拟内存的特定实现有关,最有可能是分页。没有一种方式进行分页 - 有很多实现,您的教科书描述的实现可能与 Linux/Windows 等真实操作系统中出现的实现不同 - 可能存在细微差别。

我可以谈论一千段关于分页的内容……但我认为最好将其留给专门针对该主题的不同问题。

关于memory-management - 虚拟内存和物理内存有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14347206/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com