内存寻址=概念,其中当操作系统给CPU一个进程来执行时,它为该进程分配一部分RAM,并且CPU为该部分生成虚拟地址。 cpu生成的虚拟地址和ram上实际物理地址之间的映射存储在页表中
虚拟内存 = 将硬盘的一部分用作 RAM 的概念,这样 RAM 的大小似乎可以处理更多。这里RAM地址和硬盘地址之间的映射也存储在页表中。
所以页表在两个概念中都有不同的含义
因此,在存在虚拟内存且存在 5 个进程的场景中,该场景中存在 5 个(每个进程本地)+ 1(操作系统级别的虚拟内存)= 6 个页表。
请告诉我我的理解是否正确。
提前致谢
在大多数技术文献中,“虚拟内存”意味着第一件事:它是虚拟地址和物理地址之间的转换。它用于将进程彼此隔离以及与真实硬件隔离,并简化操作系统的内存管理。
虚拟内存由页表定义,页表包含每个虚拟页的物理地址。它还包含其他参数:页面是否可写?可执行的?它是仅限内核的吗?它到底存在吗?替换页表会更改虚拟内存的映射 - 这就是操作系统在进程之间切换的方式。在大多数 CPU 架构上,页表格式由 CPU 决定 - 因为它是由硬件读取的。然而,软件驱动的系统也存在(众所周知 - MIPS)。表的内容由操作系统填写 - 它决定哪些地址将映射到哪些地址。
第二件事通常称为“页面交换”,或简称“交换”。我只在面向外行的半营销材料中看到它被称为“虚拟记忆”。页面交换完全由操作系统在软件中完成:
磁盘和虚拟地址之间的映射完全是操作系统的问题 - 它可以使用任何内部数据结构。我从来没有听说过它被称为“页表” - 但我想它并不是完全不准确。大多数 CPU 还允许操作系统使用页表中的空记录 - 只要它不触及“不存在”位。