在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

深度剖析虛擬內存

科技觀察員 ? 來源:allaboutcircuits ? 作者: 斯蒂芬·圣邁克爾 ? 2022-04-28 17:06 ? 次閱讀

本文將從高層次探討什么是虛擬內存、它存在的原因以及它是如何工作的。

在之前的文章中,我們討論了CPU 緩存的好處。緩存是由于內存訪問速度和 CPU 處理能力之間的差異而發明的。通過使用硬件緩存,最近從主內存加載的項目存儲在更小的內存中,更靠近 CPU,以便在需要時可以快速檢索它們。因此,緩存解決了速度問題。

但是容量呢?

在本文中,我們將了解什么是虛擬內存以及它如何幫助解決 CPU 容量問題。

內存層次結構

現代計算機系統可以同時運行數十個甚至數百個不同的應用程序。由于內存是一種有限資源,隨著越來越多的應用程序消耗它,性能可能會下降,甚至完全停止。這就是虛擬內存的用武之地。圖 1 顯示了一個內存層次結構,包括高速緩存、主內存和虛擬內存。

poYBAGJqWTGAZ5HWAAAd69G80zw354.jpg

圖 1. 內存層次結構

如圖 1 所示,虛擬內存的存在是為了增加系統的內存容量。這是通過將磁盤驅動器的一部分作為“看起來”像主內存的專用內存塊分配給可能需要它的任何應用程序來完成的。

為了防止磁盤訪問降低速度性能,主內存充當虛擬內存的完全關聯緩存,存儲最近訪問的磁盤位置。因此,通過使用虛擬內存,主內存成為緩存層次結構中的另一層。

雖然細節超出了本文的范圍,但應該注意的是,虛擬內存是通過計算機操作系統處理器的內存管理單元 (MMU) 之間的交互來管理和控制的。

緩存與分頁

回想一下,高速緩存將物理內存地址分解為多個字段。這樣做是為了識別存儲最近訪問的數據的緩存條目。對于完全關聯的緩存,這些字段是緩存標記和字節偏移。緩存條目由匹配的標簽和包含數據的緩存塊組成。

如果沒有找到匹配的標簽,這稱為緩存未命中。

pYYBAGJqWTKABv6CAAAXNE9Z0qY727.jpg

圖 2. 緩存命名法

虛擬內存的工作方式類似,但使用虛擬地址的概念。

虛擬地址由虛擬頁號和頁偏移量組成。虛擬地址用于定位內存中稱為頁框的項,通常大小為 4kB。

頁框包含頁框號和實際數據,簡稱為頁。

頁偏移量用于訪問 4kB 頁內的單個字。如果虛擬地址不指向在物理內存中找到的位置,則會發生頁面錯誤,并且系統必須向磁盤驅動器發出請求的數據。當確實發生頁面錯誤時,磁盤上的頁面被移動到內存中的頁面框架。在主存和磁盤之間移動頁面稱為分頁(或交換)。

poYBAGJqWTOALMsGAAAeyj6z328352.jpg

圖 3. 分頁命名法

由于使用虛擬內存來擴展系統內存的容量,因此需要一種既考慮磁盤上的位置又考慮主內存中的位置的尋址方案。這就是虛擬地址的用武之地。

虛擬地址跨越磁盤驅動器和主內存,導致虛擬地址多于物理內存地址。因此,在訪問頁面中的數據之前,系統必須確定該數據是駐留在物理內存還是虛擬內存中。這是通過地址轉換完成的。

pYYBAGJqWTSABcN2AACBSuy04QE782.jpg

圖 4. 虛擬地址映射到虛擬和物理內存

地址翻譯

如前所述,物理內存充當虛擬內存的完全關聯緩存?;叵胍幌拢耆P聯的緩存是具有多個條目的單個集合。每個條目都與緩存標記進行比較以進行匹配。由于頁面大小為 4kB,即使是小型虛擬內存系統也需要數千個比較器電路。為了解決這個問題,使用了頁表。

頁表

頁表是一種將虛擬頁號(虛擬地址的一部分)映射到頁框號的數據結構。

頁表包含每個虛擬地址的條目以及表示該頁面是否在物理內存中的有效位。如果頁表項有效,則將頁幀號與頁偏移量(虛擬地址的另一部分)結合起來構建物理內存地址,即所需數據在內存中的存儲位置。圖 5 說明了如何使用頁表將虛擬地址轉換為物理地址。

poYBAGJqWTWAYnlXAABY5Fg_APQ762.jpg

圖 5. 使用頁表進行地址轉換

重要的是要記住,頁框號代表頁面的存儲位置,而物理地址代表頁面中單個字的位置。如果頁表項的有效位未設置,則虛擬地址必須映射到存儲在磁盤上的頁。

頁表本身與用于定位的頁一起存儲在主存中。因此,使用頁表,讀取或寫入任何頁實際上需要兩次內存訪問。這似乎違反直覺,如果不是翻譯后備緩沖區或 TLB,它會導致很大的性能損失。

翻譯后備緩沖區

由于頁面大小為 4kB,因此頁面內的數據同時表現出時間和空間局部性。這使得頁表條目成為緩存的完美候選者。

轉換后備緩沖區或 TLB 是一個小型的完全關聯緩存,用于存儲最近訪問的頁表條目。通過緩存最近使用的頁表條目,系統可以放棄多次查找頁表,從而避免兩次訪問內存的問題。TLB 通常只包含幾百個條目,但它的命中率非常高(高達 99%)。

圖 6 顯示了一個具有四個條目的 TLB。

pYYBAGJqWTaAEDYsAAAvMV3X6bo685.jpg

圖 6. 實現為全關聯緩存的簡化 TLB

結論

本文介紹了虛擬內存的概念。虛擬內存是用于擴展系統容量的內存系統的擴展。

虛擬內存還允許在應用程序或進程之間保護和隔離內存。它由計算機的操作系統和處理器的 MMU 控制和管理。虛擬內存通過分配一部分磁盤空間作為系統內存的一部分來工作。

作為內存層次結構的擴展,虛擬內存已成為計算機整體架構的基本組成部分。了解虛擬內存可以增強您在日益復雜的世界中對計算機的理解。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 內存
    +關注

    關注

    8

    文章

    3111

    瀏覽量

    75032
  • 虛擬內存
    +關注

    關注

    0

    文章

    78

    瀏覽量

    8221
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    如何定義虛擬內存?

    本文將探討什么是虛擬內存,它為什么存在,以及它如何工作。緩存的發明是因為內存訪問速度和 CPU 處理能力之間的差異。通過使用硬件緩存,最近從主存儲器加載的項目被存儲在一個更小的內存中,更接近 CPU
    發表于 04-11 10:20

    虛擬內存是什么_虛擬內存有什么用

    虛擬內存是計算機系統內存管理的一種技術。它使得應用程序認為它擁有連續的可用的內存(一個連續完整的地址空間),而實際上,它通常是被分隔成多個物理內存碎片,還有部分暫時存儲在外部磁盤存儲器
    發表于 11-01 10:03 ?9878次閱讀
    <b class='flag-5'>虛擬內存</b>是什么_<b class='flag-5'>虛擬內存</b>有什么用

    簡單剖析虛擬內存與交換分區

    很多朋友會把虛擬內存認為就是交換分區。其實,虛擬內存并非真正存在的物理空間,它僅僅是一個虛擬的東西。
    的頭像 發表于 02-09 08:44 ?6525次閱讀

    虛擬內存不足怎么解決

    電腦的虛擬內存不足以后,很多功能就無法使用了,且會彈出如下所示的頁面。這就說明虛擬內存無法滿足我們的使用需求,就需要咱們對電腦的虛擬內存進行重新設置。那么如何設置呢?請看下文。
    的頭像 發表于 03-14 14:29 ?1.4w次閱讀

    虛擬內存設置多少合適

    虛擬內存是一種電腦內存管理的一種技術,虛擬內存通常用到的地方是玩大型游戲和使用較大的處理軟件時候虛擬內存才能起到作用,下面小編就給大家介紹悉尼內存
    的頭像 發表于 03-14 14:48 ?4.3w次閱讀

    虛擬內存是什么意思

    虛擬內存是計算機系統內存管理的一種技術。它使得應用程序認為它擁有連續的可用的內存(一個連續完整的地址空間),而實際上,它通常是被分隔成多個物理內存碎片,還有部分暫時存儲在外部磁盤存儲器
    的頭像 發表于 03-14 14:50 ?7925次閱讀

    虛擬內存怎么設置_虛擬內存注意事項

    虛擬內存是什么呢?虛擬內存,它只是相對于我們平時用的內存而說的,就比如如果系統的物理內存的空間是處于入不敷出的狀態的時候,電腦的操作系統此時就會在硬盤上開辟出來一塊磁盤空間,并且將其當
    發表于 06-11 10:45 ?2274次閱讀

    虛擬內存的概念與設置方法

    相信許多小伙伴們在使用電腦的時候都會遇到虛擬內存不足的提示,那小伙伴們是否知道什么叫做虛擬內存。今天小編就來為小伙伴們介紹一下虛擬內存的作用以及教大家如何去設置虛擬內存的容量,希望對小
    發表于 06-12 10:38 ?1779次閱讀

    虛擬內存低如何解決

    現在計算機的使用頻率相當高,在我們使用計算機的時候有時候就會出現虛擬內存低的情況,這時候我們就不知道該怎么辦了?我們都知道虛擬內存的設置一般都是默認的,是由系統管理的大小,如果虛線虛擬內存低我們需要做的就是對
    發表于 06-13 10:36 ?1275次閱讀

    進程虛擬內存布局以及進程的虛擬內存分配釋放流程,涉及的代碼

    我們計劃通過一系列文章來介紹虛擬內存分配/釋放,缺頁處理,內存壓縮/回收,內存分配器等知識,梳理虛擬內存的管理。本章節結合代碼介紹進程虛擬內存
    的頭像 發表于 06-28 09:38 ?4612次閱讀

    虛擬內存的作用和原理 如何調整虛擬內存設置

    虛擬內存,也稱為虛擬內存管理或頁面文件,是計算機操作系統中的一種內存管理技術。它允許系統使用硬盤空間作為額外的RAM(隨機存取存儲器),以彌補物理內存(RAM)的不足。
    的頭像 發表于 12-04 09:13 ?2092次閱讀

    虛擬內存不足如何解決 虛擬內存和物理內存的區別

    虛擬內存不足的解決方案 虛擬內存不足是計算機用戶經常遇到的問題,尤其是在運行大型軟件或多任務處理時。以下是一些解決虛擬內存不足問題的方法: 增加物理內存(RAM) : 這是最直接的解決
    的頭像 發表于 12-04 09:14 ?1353次閱讀

    什么是虛擬內存分頁 Windows系統虛擬內存優化方法

    虛擬內存分頁概述 在Windows操作系統中,虛擬內存是通過分頁機制實現的。分頁允許系統將內存中的數據移動到硬盤上,以便為當前運行的程序騰出空間。這個過程對于保持系統的流暢運行至關重要,尤其是在物理
    的頭像 發表于 12-04 09:16 ?1318次閱讀

    Linux下如何管理虛擬內存 使用虛擬內存時的常見問題

    在Linux系統中,虛擬內存管理是操作系統內核的一個重要功能,負責管理物理內存和磁盤上的交換空間。以下是對Linux下如何管理虛擬內存以及使用虛擬內存時常見問題的介紹: Linux下如
    的頭像 發表于 12-04 09:19 ?1255次閱讀

    虛擬內存溢出該怎么處理 虛擬內存在服務器中的應用

    在現代計算機系統中,虛擬內存是一種重要的資源管理技術,它允許系統使用硬盤空間來擴展物理內存的容量。然而,當系統運行的程序和進程超出了物理內存虛擬內存的總容量時,就會出現
    的頭像 發表于 12-04 09:49 ?728次閱讀
    主站蜘蛛池模板: tueb69xxxxxhd日本| 1024你懂的国产欧美日韩在 | 在线观看黄色一级片 | 狠狠色噜噜狠狠狠狠97不卡 | 欧美视频精品在线 | 午夜影院在线观看视频 | 台湾一级毛片永久免费 | 日本特黄视频 | 国产午夜毛片一区二区三区 | 女人69xxx | 欧美日韩性高爱潮视频 | 亚洲一在线 | 国产女人视频免费观看 | 国产情侣自拍小视频 | 天堂黄网 | 日韩一级一片 | 最近高清免费观看视频 | 国语一区 | 欧美成人午夜片一一在线观看 | 四虎国产永久在线观看 | 又粗又大的机巴好爽欧美 | 河南毛片 | 黄色网址大全免费 | 九九热在线免费视频 | brazzers在线播放 | 四虎影视色费永久在线观看 | 亚洲成人激情电影 | 天天色播 | 五月婷婷六月婷婷 | 国产网站免费视频 | 亚洲国产成人久久一区www | 成人精品人成网站 | 精品视频卡1卡2卡3 精品视频免费看 | 久插视频| 午夜片 飘香香影院 | 久色99| 国产精品美女一级在线观看 | 日b毛片| 妖精视频亚洲 | 欧美午夜精品久久久久久黑人 | 欧美福利视频网站 |