1. 程式人生 > >作業系統(4)虛擬儲存--覆蓋與交換、區域性性原理、虛擬頁式儲存、虛擬段式儲存、缺頁異常

作業系統(4)虛擬儲存--覆蓋與交換、區域性性原理、虛擬頁式儲存、虛擬段式儲存、缺頁異常

文章目錄

1. 虛擬儲存的需求背景

   虛擬儲存可以看出是非連續分割槽儲存的延續,在非連續分割槽的基本上,把一部分內容放到外存裡,從而增大應用程式的使用空間。

  1. 儲存層次結構
    通過下圖的層次結構,使系統處於繁忙的狀態,實現價格、容量、訪問速度方面的均衡。
    ==1==
  2. 解決計算系統常出現的記憶體不夠用問題的辦法
  1. 覆蓋:應用程式手動把需要的指令和資料儲存在記憶體中,這種方式加大了應用開發的難度
  2. 交換:作業系統自動把暫時不能執行的程式儲存到外存中,這種方式開銷大
  3. 虛擬儲存:在有限容量的記憶體中,以頁為單位自動裝入更多更大的程式。

2. 覆蓋和交換技術 (過時技術)

  1. 覆蓋
    在這裡插入圖片描述
  2. 交換
    ==3==
    在這裡插入圖片描述

3. 區域性性原理(虛擬儲存的可實現前提)

虛擬儲存是把原來放在記憶體中的一部分地址資訊放到外存中。

  1. 虛擬儲存的目標
  1. 只把部分程式放到記憶體中,從而執行比實體記憶體大的程式。不同於覆蓋技術,這部分工作由作業系統自動完成。
  2. 實現程序在記憶體與外存之間的交換,從而獲得更多的空閒記憶體空間
  1. 區域性性原理
    分支區域性性就比如迴圈
    在這裡插入圖片描述

4. 虛擬儲存概念

  1. 原理
  1. 裝載程式時:只講當前指令執行需要的部分頁面或段裝入記憶體中,不同於之前的需要把整個程序放到記憶體中
  2. 當指令執行過程中需要的指令或者資料不在記憶體中時(稱為缺頁或者缺段),處理器通知作業系統將相應的內容調入記憶體
  3. 作業系統將記憶體中暫時不用的頁面或段儲存到外面(引出置換演算法來決定調出哪些)。
  1. 實現方式:虛擬頁式儲存+虛擬段式儲存

  2. 虛擬儲存的基本特徵
    ==6==

  3. 支援技術

    • 硬體:頁式或短時儲存中的地址轉換機制
    • 作業系統:管理記憶體和外存間頁面或段的換入和換出

4. 虛擬頁式儲存

在頁式儲存管理的基礎上,增加請求調頁和頁面置換。

  1. 實現思路
    ==7==
    頁式儲存管理是將所有的頁面都加入到記憶體中,只是可以實現儲存的不連續,因此也不會出現所謂的缺頁異常。

  2. 地址轉換
    ==8==
    地址轉換過程和頁式儲存管理差不多,只不過增加了缺頁異常的一些處理機制,這樣就會導致很多東西需要修改

  3. 頁表項結構(區別於頁式儲存管理的頁表項)
    在頁表項中添加了4個標識位:駐留位,保護位,修改位,訪問位
    ==9==
    ==10==
    ==11==
    ==12==

5. 缺頁異常

  1. 缺頁異常(中斷)的處理流程(頁面置換演算法)
    ==13==
  2. 上圖第4步詳細流程
    ==14==
  3. 虛擬頁式儲存的外存管理
    ==15==
  4. 管理的效能
    ==16==