日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

操作系统——7.虚拟存储技术

發布時間:2023/12/16 windows 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统——7.虚拟存储技术 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JAVA后端開發知識總結(持續更新…)


虛擬內存與虛擬存儲技術


參考文檔

B站:《王道考研 操作系統》
《現代操作系統》

《虛擬內存的那點事兒》


文章目錄

  • 虛擬內存與虛擬存儲技術
  • 參考文檔
    • 一、虛擬內存基本概念
    • 二、請求分頁管理方式
      • 2.1 請求頁表機制
      • 2.2 缺頁中斷機構
      • 2.3 頁面置換算法


一、虛擬內存基本概念

??虛擬存儲技術是內存空間擴充的相關技術,在傳統存儲管理方式的基礎上,結合內存擴充技術從邏輯上擴充內存容量。

  • 傳統存儲管理方式的缺點

??一次性:作業必須一次性全部裝入內存后才能開始運行,造成兩個問題:①作業很大時,不能全部裝入內存;②當大量作業要求運行時,無法容納所有作業,只有少量作業能運行,導致多道程序并發度下降。

??駐留性:一旦作業被裝入內存,就會一直駐留在內存中,直至作業運行結束。但在一個時間段內,只需要訪問作業的一小部分數據即可正常運行,這就導致了內存中會駐留大量的、暫時用不到的數據,浪費了寶貴的內存資源。

??上述問題可以通過虛擬存儲技術解決,可以只裝入部分程序到內存就開始運行,虛擬存儲技術是基于局部性原理的:

  • 局部性原理

??時間局部性 :如果執行了程序中的某條指令,那么不久后這條指令很有可能再次執行;如果某個數據被訪問過,不久之后該數據很可能再次被訪問。(因為程序中存在大量的循環)

??空間局部性 :一旦程序訪問了某個存儲單元,在不久之后,其附近的存儲單元也很有可能被訪問(因為很多數據在內存中都是連續存放的,并且程序的指令也是順序地在內存中存放的)。

  • 應用局部性原理

??高速緩沖技術:時間局部性是通過將近期會頻繁訪問到的指令和數據放到更高速的緩存存儲器中,暫時用不到的數據放在更低速存儲器中。空間局部性通常是使用較大的高速緩存,并將預取機制集成到高速緩存控制邏輯中實現。
??虛擬內存技術實際上就是建立了“內存一外存”的兩級存儲器的結構,利用局部性原理實現髙速緩存。

  • 虛擬內存

??基于局部性原理,在程序裝入時,可以將程序中很快會用到的部分裝入內存,暫時用不到的部分留在外存,然后就可以讓程序開始執行。
??在程序執行過程中,當所訪問的信息不在內存時,由操作系統負責將所需信息從外存調入內存,然后繼續執行程序。
??若內存空間不夠,由操作系統負責將內存中暫時用不到的信息換出到外存。在操作系統的管理下,在用戶看來似乎有一個比實際內存大得多的內存,這就是虛擬內存。
??虛擬內存的重要意義是它定義了一個連續的虛擬地址空間,把內存擴展到硬盤空間是使用虛擬內存的必然結果。實際上,它通常是被分隔成多個物理內存碎片,還有部分暫時存儲在外部磁盤存儲器上,在需要時進行數據交換。
??虛擬內存為每個進程提供了一個一致的、私有的地址空間,它讓每個進程產生了一種自己在獨享主存的錯覺(每個進程擁有一片連續完整的內存空間)。

??虛擬內存的實現需要建立在離散分配的內存管理方式的基礎上,與傳統離散內存管理技術的區別是新增了兩大功能:

  • 操作系統提供請求調頁(或請求調段)功能:當所訪問的信息不在內存時,由操作系統負責將所需信息從外存調入內存,然后繼續執行程序。
  • 操作系統提供頁面置換(或分段置換)的功能:若內存空間不夠,由操作系統負責將內存中暫時用不到的信息換出到外存。
  • 二、請求分頁管理方式

    ??請求分頁存儲管理與基本分頁存儲管理的主要區別在于新增了請求調頁和頁面置換功能,根本區別在于是否將程序所需的全部地址空間都裝入內存。請求分頁是目前最常用的一種實現虛擬存儲器的方法。請求分頁存儲管理系統中,在作業開始運行之前,僅裝入當前要執行的部分頁即可運行。

    2.1 請求頁表機制

    2.2 缺頁中斷機構

    ??缺頁中斷是因為當前執行的指令想要訪問的目標頁面未調入內存而產生的,因此屬于內中斷。一條指令在執行期間,可能產生多次缺頁中斷。

    基本流程:

  • 在請求分頁系統中,每當要訪問的頁面不在內存時,便產生一個缺頁中斷,然后由操作系統的缺頁中斷處理程序處理中斷。
  • 此時缺頁的進程阻塞,放入阻塞隊列,調頁完成后再將其喚醒,放回就緒隊列。
  • 如果內存中有空閑塊,則為進程分配一個空閑塊,將所缺頁面裝入該塊,并修改快表和頁表中相應的頁表項
  • 如果內存中沒有空閑塊,則由頁面置換算法選擇一個頁面淘汰,若該頁面在內存期間被修改過,則要將其寫回外存,未修改過的頁面不用寫回外存。
  • 相應的地址變換機構:

    2.3 頁面置換算法

    • 最佳置換算法(OPT)

    ??每次選擇淘汰的頁面將是以后永不使用,或者在最長時間內不再被訪問的頁面,這樣可以保證最低的缺頁率。但是,最佳置換算法是無法實現的。

    • 先進先出置換算法(FIFO)

    ??每次選擇淘汰的頁面是最早進入內存的頁面。把調入內存的頁面根據調入的先后順序排成一個隊列,需要換出頁面時選擇隊頭頁面即可。

    • 最近最久未使用置換算法(LRU)

    ??每次淘汰的頁面是最近最久未使用的頁面。賦予每個頁面對應的頁表項中,用訪問字段記錄該頁面自上次被訪問以來所經歷的時間t。當需要淘汰一個頁面時,選擇現有頁面中 t 值最大的,即最近最久未使用的頁面。

    ??最佳置換算法性能最好,但無法實現;先進先出置換算法實現簡單,但算法性能差;最近最久未使用置換算法性能好,是最接近OPT算法性能的,但是實現起來需要專門的硬件支持,算法開銷大。

    ??時鐘置換算法是一種性能和開銷較均衡的算法,又稱CLOCK算法,或最近未用算法(LFU)。

    • 時鐘置換算法(CLOCK)

    ??為每個頁面設置一個訪問位和修改位,再將內存中的頁面都通過鏈接指針鏈接成循環隊列
    ??訪問位為1,表示最近訪問過,訪問位為0,表示最近沒訪問過。
    ??在其它條件都相同時,應優先淘汰沒有修改過的頁面,避免I/O操作。修改位=0,表示頁面沒有被修改過,修改位=1,表示頁面被修改過。改進型CLOCK置換算法選擇一個淘汰頁面最多會進行四輪掃描

    對比:

    總結

    以上是生活随笔為你收集整理的操作系统——7.虚拟存储技术的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。