首页 > 试题广场 >

请你说一说虚拟内存与物理内存

[问答题]
请你说一说虚拟内存与物理内存
第一,虚拟内存可以使得进程对运行内存超过物理内存大小,因为程序运行符合局部性原理,CPU 访问内存会有很明显的重复访问的倾向性,对于那些没有被经常使用到的内存,我们可以把它换出到物理内存之外,比如硬盘上的 swap 区域。 第二,由于每个进程都有自己的页表,所以每个进程的虚拟内存空间就是相互独立的。进程也没有办法访问其他进程的页表,所以这些页表是私有的,这就解决了多进程之间地址冲突的问题。 第三,页表里的页表项中除了物理地址之外,还有一些标记属性的比特,比如控制一个页的读写权限,标记该页是否存在等。在内存访问方面,操作系统提供了更好的安全性。
发表于 2023-04-02 20:24:17 回复(0)
虚拟内存的目的是为了让物理内存扩充成更大的逻辑内存,让程序获得更多的可用内存。 - 空间独立。由于每个进程都有自己的页表,所以每个进程的虚拟内存空间就是相互独立的。进程也没有办法访问其他进程的页表,所以这些页表是私有的。这就解决了多进程之间物理地址冲突的问题。 - **可以扩充内存**。每个进程拥有自己独立的虚拟地址空间,但不需要让进程中所有的页都必须映射到物理内存中,当程序引用到不在物理内存中的页时,由硬件执行必要的内存映射,将缺失的部分装入物理内存并重新执行失败的指令,这也使得有限的内存运行大程序成为可能。 - **安全性强**。页表里的页表项中除了物理地址之外,还有一些标记属性的比特,比如控制一个页的读写权限,标记该页是否存在等。在内存访问方面,操作系统提供了更好的安全性。
发表于 2022-07-22 10:27:05 回复(0)
1、直接使用物理内存的缺陷:隔离性差,物理内存不够用; 2、虚拟内存;每个进程都可以自己搞一份,在需要的时候映射到物理内存,变相扩大了物理内存;同时隔离性也比较好;可以参考《程序员的自我修养》
发表于 2022-08-20 13:33:36 回复(0)
- 虚拟内存可以结合磁盘和物理内存的优势为进程提供看起来速度足够快并且容量足够大的存储; - 虚拟内存可以为进程提供独立的内存空间并引入多层的页表结构将虚拟内存翻译成物理内存,进程之间可以共享物理内存减少开销,也能简化程序的链接、装载以及内存分配过程; - 虚拟内存可以控制进程对物理内存的访问,隔离不同进程的访问权限,提高系统的安全性;
发表于 2022-08-11 09:01:26 回复(0)
物理内存是实际物理地址映射的物理内存,虚拟内存是为每个进程分配对应的虚拟内存
发表于 2024-04-28 16:09:08 回复(0)
虚拟内存是内存管理提出的一种概念,当程序运行时,OS为每个进程创建并管理虚拟内存空间,程序访问的也是虚拟地址,使用虚拟内存的好处是,让程序认为自己拥有一段独立且连续的内存空间,仅当访问某个虚拟地址时才分配物理内存,而不用去管物理内存和其他进程的实际情况,相比直接操作物理内存更加直观方便。分页系统为每个进程分配一个【页表】存储虚拟页号到物理页号映射,同时每个进程只能访问自己的页表,防止进程相互访问彼此空间,实现了进程隔离 物理内存是物理设备RAM的存储空间,物理地址可以直接访问内存中的位置,虚拟地址需要经过内存管理单元转换映射到响应的物理地址然后才能访问物理内存中的位置,
发表于 2024-04-17 14:24:47 回复(0)
直接使用物理内存隔离性差,内存大小不够用,虚拟内存每个进程都有,不受物理内存大小影响,在需要时才影射到物理内存,并且可以利用到swap来 3。每个页表中不仅有物理内存映射 而且还有标志位来控制读写权限是否存在等信息,更安全
编辑于 2024-03-03 13:53:29 回复(0)
物理内存:每个程序分配RAM大小的内存,容易导致内存不足,没有分配到资源的进程只能等待,新进程频繁装入内存的效率很低,且由于都直接访问物理内存导致进程间的隔离性差 虚拟内存:每个进程的虚拟内存理论上可以比RAM大得多,进程通过页面置换算法把磁盘中的数据映射到逻辑地址,再把逻辑地址映射到物理地址实现,但可能会出现缺页影响效率
发表于 2023-12-30 20:16:14 回复(0)
虚拟内存是一种内存管理技术,操作系统给每个进程分配一个私有的、独立的虚拟内存空间,从进程的角度来看,它们的内存地址完全是隔离的。另外,操作系统提供了一种机制,让不同的虚拟内存和不同的物理内存建立映射关系,这样各进程不会起冲突。 虚拟内存允许进程访问页面时才将其加载到物理内存上,而不需要一次性将所有的页面都加载到物理内存上,这让进程的运行内存远大于实际的物理内存。
发表于 2023-10-22 20:56:35 回复(0)
虚拟内存是为了防止多进程之间地址的相互影响,操作系统为每个进程分配了一套独立的虚拟地址空间,各个进程只需要关心自己的虚拟地址即可。虚拟地址和物理地址的相互转化是通过操作系统和内存管理单元(MMU)实现的。
发表于 2023-09-21 20:12:39 回复(0)
未来让物理内存扩充成更大的逻辑内存,让程序获得更多可用内存。 每个进程都有一个自己的虚拟地址空间,和私有的页表,程序认为自己有了连续可用内存,通过页表找到物理内存。 同时页表有标记属性的比特,表示一个页的读写权限,保证了物理内存的安全性。
发表于 2023-07-25 16:20:33 回复(0)