标签:#虚拟内存

共 18 篇文章

PSE-36

在计算机领域,PSE-36(,即36位元页面大小扩展)是一个x86处理器特性,它可将電腦數據存貯器的寻址能力从32位元扩展到36位元,允许寻址最多64 GB内存。相较于物理地址扩展(PAE)方法,PSE-36是解决4 GB内存瓶颈的更简单方案。它采用(PSE)模式和一个修改的页面目录表来映射4 MB的页到一个64 GB物理地址空间。PSE-36的缺点是,不同于PAE,它在4 GB以上的区域没有4 KB的页面粒度。 PSE-36随Pent…

虚拟内存

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

寫入時複製

寫入時複製(,简称COW)是一种计算机程式設計領域的优化策略。其核心思想是,如果有多個呼叫者(callers)同時请求相同資源(如内存或磁盘上的数据存储),他們會共同取得相同的指標指向相同的資源,直到某個呼叫者试图修改資源的内容時,系統才會真正複製一份专用副本(private copy)給該呼叫者,而其他呼叫者所见到的最初的资源仍然保持不变。這過程對其他的呼叫者都是的。此作法主要的優點是如果呼叫者沒有修改該資源,就不會有副本(priva…

内存管理单元

处理器协同使用]] 内存管理单元(,缩写为MMU),有时称作分页内存管理单元(,缩写为PMMU)。它是一种负责处理中央处理器(CPU)的内存访问请求的计算机硬件。它的功能包括虚拟地址到物理地址的转换(即虚拟内存管理)、内存保护、中央处理器高速缓存的控制,在较为简单的计算机体系结构中,負責总线的仲裁以及存储体切换(,尤其是在8位的系统上)。 在现代系统中,程序通常使用可访问计算机架构理论最大内存容量的地址,即32位或64位地址。MMU将各…

虚拟地址

虚拟地址()在電腦的专用术语中是指标识一个虚拟(非物理地址)的实体地址。虚拟地址这个术语常用在虚拟内存和虚拟网络地址当中。 用途 允許作業系統使用頁表來將虛擬位址對應到物理位址,使得應用程式可以使用比實際記憶體更大的地址空間。 参见 页表 物理地址 * 虚拟内存 參考資料 Virtueller Adressraum

抖動 (計算機科學)

在计算机科学中,抖动是指当系统中运行的进程过多,导致物理内存(RAM)严重不足时,每个进程的当前工作集无法完全载入内存。这迫使操作系统在磁盘和内存之间持续进行极其频繁的页面交换(分頁)並導致页缺失,進而降低大多数应用程序的处理速度。 此時的这种状态被称为抖动。此外抖動發生時,已意味著電腦性能下降甚至系統開始崩溃。这种情况可能会无限期地持续下去,直到用户关闭一些正在运行的应用程序以释放虚拟内存资源。 参考文献

Zswap

zswap是一项Linux内核的虚拟内存压缩功能,可为将要交换的页面提供压缩回写缓存。当内存页将要交换出去时,zswap不将其移动到交换设备,而是对其执行压缩,然后存储到系统RAM内动态分配的内存池中。回写到实际交换设备的动作则会延迟,甚至能完全避免,从而显著减少Linux系统用于交换的I/O;副作用则是压缩所需的额外CPU周期。 zswap能减少I/O,因而有利于使用固态存储的设备,包括嵌入式设备、上网本及其它相似的低端硬件设备,也包…

Zram

zram(也称为zRAM,先前称为compcache)是Linux核心的一项功能,可提供虚拟内存压缩。zram通过在RAM内的压缩块设备上分页,直到必须使用硬盘上的交换空间,以避免在磁盘上进行分页,从而提高性能。由于zram可以用内存替代硬盘为系统提供交换空间的功能,zram可以在需要交换/分页时让Linux更好利用RAM,在物理内存较少的旧电脑上尤其如此。 即使RAM的价格相对较低(),zram仍有利于嵌入式设备、上网本和其它相似的低…

分頁

分頁(),是一種作業系統裡記憶體管理的一種技術,可以使電腦的主記憶體可以使用儲存在輔助記憶體中的資料。作業系統會將輔助記憶體(通常是磁盘)中的資料分割成固定大小的區塊,稱為「頁」(pages)。當不需要時,將分頁由主記憶體(通常是内存)移到輔助記憶體;當需要時,再將資料取回,載入主記憶體中。相對於分段,分頁允許資料儲存於記憶體的不連續區塊。分页是磁盘和内存间传输数据块的最小单位。 分頁/虛擬記憶體能有助“大大地”降低整體及額外非必要的 …

分頁表

分页表(page table)是一种数据结构,它用于计算机操作系统中的虚拟内存系统,其存储了虚拟地址到物理地址间的映射。虚拟地址在访问进程中是唯一的,而物理地址在硬件(比如内存)中是唯一的。 分页表的角色 在操作系统中使用虚拟内存,每个进程会认为使用一块大的连续的内存。事实上,每个进程的内存散布在物理内存的不同区域。或者可能被调出到备份存储中(一般在硬盘)。当一个进程请求自己的内存,操作系统负责把程序生成的虚拟地址,映射到实际存储的物理…

页缺失

-{zh-cn:页缺失;zh-tw:分頁錯誤;}-(,又名硬错误、硬中断、-{zh-cn:分页错误;zh-tw:頁缺失;}-、寻页缺失、缺页中断、页故障等)指的是当软件试图访问已映射在虚拟地址空间中,但是目前并未被加载在物理内存中的一个分页时,由中央处理器的内存管理单元所发出的中断。 通常情况下,用于处理此中断的程序是操作系统的一部分。如果操作系统判断此次访问是有效的,那么操作系统会尝试将相关的分页从硬盘上的虚拟内存文件中调入内存。而如…

物理地址

在计算机科学中,物理地址(),也叫实地址(real address)、二进制地址(binary address),是指主存的某个可以讓数据总线訪問的特定存储单元的内存地址。 在和虚拟内存的计算机中,物理地址这个术语多用于区分虚拟地址。尤其是在使用内存管理单元(MMU)转换内存地址的计算机中,虚拟和物理地址分别指在经MMU转换之前和之后的地址。 在计算机网络中,物理地址有时又是MAC地址的同义词。这个地址实际上是用于数据链路层,而不是如它…

工作集

工作集()是一个计算机科学术语,定义为在一个特定的时间段内一个进程所需要的内存。 定义 美國計算機科學家将一个进程在时间t的工作集 W(t, \tau) 定义为在时间段 (t - \tau, t) 内进程所使用的信息的集合。 一般来说信息的单位是页。 这通常被作为一个进程在未来(比如下一个 \tau 时间内)会访问的页的集合的估计,也被认作是为了能使进程在执行期间完成尽可能多的工作所需要保留在主存储器内的页的集合。 参考文献

逻辑地址

逻辑地址,在计算机体系结构中是指应用程序角度看到的内存单元(memory cell)、存储单元(storage element)、网络主机(network host)的地址。 逻辑地址往往不同于物理地址(physical address),通过地址翻译器(address translator)或映射函数可以把逻辑地址转化为物理地址。 内存逻辑地址 在计算机内存体系结构中,内存管理器件(memory management unit,MMU…

内存映射文件

内存映射文件(Memory-mapped file),或称“文件映射”、“映射文件”,是一段虚拟内存逐字节对应于一个文件或类文件的资源,使得应用程序处理映射部分如同访问主内存。 得益 主要用处是增加I/O性能,特别是用于大文件。对于小文件,内存映射文件会导致碎片空间浪费,因为内存映射总是要对齐页边界,最少耗費4 KiB。故一个5 KiB的文件将会映射占用8 KiB内存,浪费了3 KiB内存。访问内存映射文件比直接文件读写要快几个数量级。…

覆盖 (编程)

在一般的计算机概念中,覆盖(Overlay)表示将一块指令或数据替换为另一块的行为。覆盖是一种编程技术,允许程序在主存空间不足时仍能运行。在嵌入式系统中,由于缺乏虚拟内存机制,覆盖技术也被广泛应用以克服物理内存的限制。 用法 构建一个覆盖程序需要程序员将程序手动分割为独立的目标代码。覆盖管理器由操作系统或程序本身提供,用于从外存读取所需数据并交换到主存中。通常情况下,链接器都会提供对覆盖的支持。 例子 以下是一个示例,展示了用于使OS/…

内核页表隔离

内核页表隔离(,缩写KPTI,也简称PTI,旧称KAISER)是Linux内核中的一种技术,旨在更好地隔离用户空间与内核空间的内存来提高安全性,缓解现代x86 CPU中的“熔毁(Meltdown)”硬件安全缺陷。 前身 KPTI补丁基于KAISER,它是一个用于缓解不太重要问题的早期补丁,当时业界还未了解到Meltdown的存在。 如果没有KPTI,每当执行用户空间代码(应用程序)时,Linux会在其分頁表中保留整个内核内存的映射,并保…

物理地址扩展

物理地址扩展(Physical Address Extension,缩写为PAE),又釋實體位置延伸,是x86处理器的一个功能,讓中央处理器在32位元操作系统下存取超过4GiB的實體記憶體。 PAE为IntelPentium Pro及以上级别的CPU(包括除了总线频率为400MHz的这个版本的奔腾M之外的所有新型号奔腾系列处理器)所支持,其他兼容的处理器,如速龙(Athlon)和AMD的较新型号的CPU也支持PAE。 x86的处理器增加…