Share to: share facebook share twitter share wa share telegram print page

 

虚拟内存

虚拟内存(英語:Virtual memory)是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续可用的内存(一个连续完整的地址空间),而实际上物理内存通常被分隔成多个内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。与没有使用虚拟内存技术的系统相比,使用这种技术使得大型程序的编写变得更容易,对真正的物理内存(例如RAM)的使用也更有效率。此外,虚拟内存技术可以使多个进程共享同一个运行库,并通过分割不同进程的内存空间来提高系统的安全性。

要注意的是,虚拟内存不只是「用磁盘空间来扩展物理内存」的意思——这只是扩充内存级别以使其包含硬盘驱动器而已。把内存扩展到磁盘只是使用虚拟内存技术的一个结果,它的作用也可以通过覆盖或者把处于不活动状态的程序以及它们的数据全部交换到磁盘上等方式来实现。对虚拟内存的定义是基于对地址空间的重定义的,即把地址空间定义为「连续的虚拟内存地址」,以借此「欺骗」程序,使它们以为自己正在使用一大块的「连续」地址。

那些需要快速存取或者响应时间非常稳定的嵌入式系统,以及其他的具有特殊应用的计算机系统,可能会为了避免让运算结果的可预测性降低,而选择不使用虚拟内存。

用途与实现

虚拟内存技术是现代计算机系统结构中不可分割的一部分。现代所有用于一般应用的操作系统都对普通的应用程序使用虚拟内存技术,例如文字处理软件,电子制表软件,多媒体播放器等等。大部分架构通过CPU中独立的硬件内存管理单元来辅助实现这一功能。部分仿真器虚拟机也能够通过宿主系统中的硬件来提高性能。[1]老一些的操作系统,如DOS和1980年代的Windows[2],或者那些1960年代的大型机,一般都没有虚拟内存的功能——但是Atlas英语Atlas_(computer)B5000英语Burroughs_large_systems#B5000苹果公司Lisa都是很值得注意的例外。

Intel 80286开始,X86指令集通过保护模式引入了虚拟内存技术,但是由于其使用的存储器分段技术对大内存段的支持不佳,后续的80386在分段技术框架下支持了内存分页技术。

Windows操作系统的虚拟内存

对于32位进程,其逻辑内存空间为4G。Windows API提供了一套函数操纵进程的虚拟内存:

  • VirtualAlloc(PVOID开始地址,SIZE_T大小,DWORD内存类型,DWORD保护属性)。 内存类型有MEM_RESERVE(保留)、MEM_RELEASE(释放)和MEM_COMMIT(提交)。保留是指占用一块逻辑地址空间,但未实际分配物理内存;提交是实际分配物理内存。MEM_RESET用于把内存清零。 保护属性为: PAGE_NOACCESS、PAGE_READONLY、PAGE_READWRITE、PAGE_EXECUTE、PAGE_EXECUTE_READ、PAGE_EXECUTE_READWRITE。
  • VirtualProtect(PVOID基地址,SIZE_T大小,DWORD新保护属性,DWORD旧保护属性)。更改保护属性。
  • VirtualFree(PVOID基地址,SIZE_T大小,DWORD内存类型)。页面释放。内存类型是MEM_DECOMMIT或者MEM_RELEASE
  • VirtualLock
  • VirtualUnlock
  • VirtualQuery

参见

参考资料

  1. ^ AMD-V™ Nested Paging (PDF). AMD. [28 April 2015]. (原始内容 (PDF)存档于2022-03-21). 
  2. ^ Windows Version History. Microsoft. 2005-07-19 [2008-12-03]. (原始内容存档于2015-02-26). 
Kembali kehalaman sebelumnya


Index: pl ar de en es fr it arz nl ja pt ceb sv uk vi war zh ru af ast az bg zh-min-nan bn be ca cs cy da et el eo eu fa gl ko hi hr id he ka la lv lt hu mk ms min no nn ce uz kk ro simple sk sl sr sh fi ta tt th tg azb tr ur zh-yue hy my ace als am an hyw ban bjn map-bms ba be-tarask bcl bpy bar bs br cv nv eml hif fo fy ga gd gu hak ha hsb io ig ilo ia ie os is jv kn ht ku ckb ky mrj lb lij li lmo mai mg ml zh-classical mr xmf mzn cdo mn nap new ne frr oc mhr or as pa pnb ps pms nds crh qu sa sah sco sq scn si sd szl su sw tl shn te bug vec vo wa wuu yi yo diq bat-smg zu lad kbd ang smn ab roa-rup frp arc gn av ay bh bi bo bxr cbk-zam co za dag ary se pdc dv dsb myv ext fur gv gag inh ki glk gan guw xal haw rw kbp pam csb kw km kv koi kg gom ks gcr lo lbe ltg lez nia ln jbo lg mt mi tw mwl mdf mnw nqo fj nah na nds-nl nrm nov om pi pag pap pfl pcd krc kaa ksh rm rue sm sat sc trv stq nso sn cu so srn kab roa-tara tet tpi to chr tum tk tyv udm ug vep fiu-vro vls wo xh zea ty ak bm ch ny ee ff got iu ik kl mad cr pih ami pwn pnt dz rmy rn sg st tn ss ti din chy ts kcg ve 
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9