計算機作業系統 虛擬儲存

2021-10-16 19:31:10 字數 1511 閱讀 4078

請求分頁儲存管理方式(虛擬儲存的情況下)

相較於傳統的儲存(將程序所需要的全部裝入記憶體)虛擬儲存時在程序執行之前只把程式資料只裝入一部分先要執行的進去執行 後面需要的資料再慢慢裝入 拿分頁式來說就是某個程序在執行時 有一部分頁時裝進了記憶體有一部分不在記憶體 需要進行頁面置換

也就是將一部分磁碟記憶體(外儲存)當記憶體使用

區域性性原理

在乙個短時間內 程式執行僅侷限於某個部分 他所訪問的儲存空間侷限在某個區域

1.程式執行時 除了少部分的轉移和過程呼叫指令歪歪 在大多數情況下是順序執行的

2.過程呼叫將會是程式的執行軌跡有一部分區域轉移至另一部分區域 但是另一部份區域也不會很遠

時間侷限性:程式中的某條指令或資料被執行 則不久後該指令可能被再次執行

空間侷限性: 一旦程式訪問了某個儲存單元 在不久後 其附近的儲存單元也將被訪問

系統的可用記憶體空間並非計算機系統中的實際物理記憶體 他包含物理記憶體及一部分磁碟空間

虛擬儲存空間實際上是有乙個大小限制的 並不能把所有的外儲存當作虛擬記憶體 其實是受到邏輯位址空間的限制如果計算機時32位的 就不能64位的虛擬記憶體空間

與虛擬儲存類似的 比如說虛擬cpu(就是cpu的併發執行 給使用者體驗以為是有多個cpu在執行 又比如說虛擬伺服器)

在虛擬儲存的請求分頁儲存管理方式中 頁表一般是

頁號物理塊號

狀態位p

訪問欄位a

修改位m

外存位址

狀態位(標識該頁是否在記憶體中)

修改位(標識該頁被調入記憶體後是否有被修改過)

外存位址(該頁在外存上的位址 通常是物理塊號)

訪問欄位a(記錄該頁在一段時間內被訪問次數 或記錄該頁最近已有多長時間未被訪問)

就是頁面置換的不好 剛置換出去的頁面等下又要用 頁面置換占用了大量的時間

程序分到的頁框數少 要不斷地發生頁面置換

置換演算法不好

系統負載過高 也就是系統中執行的程序數過多

程序發生排程執行的時候會發生位址轉換(應該就是把該程序的程式裝入記憶體中)

如果系統支援tlb(虛擬位址和實體地址的對映關係快取到tlb中。tlb是虛擬快取記憶體 )(快表 儲存最近訪問的頁表項)cpu會先去檢查tlb 如果該程序所需的頁表項(就是第幾頁)在tlb中 也就意味著相應頁塊已經儲存進了記憶體 就可以直接找到該頁表在記憶體中的實體地址

但是如果在tlb中沒有找到(沒有找到的原因:採用的是虛擬記憶體 所有有一部分頁沒有裝進來) 那麼就要去頁表 頁表中有狀態位(標識該頁是否在記憶體中)和修改位(標識該頁是否有被修改過) 通過儲存位我們就能直到該頁是否在記憶體中

如果該頁表項在記憶體中 則需要把該頁表項更新進記憶體中 也更新進tlb中

如果該頁表項不在記憶體中 則會發生乙個缺頁中斷處理 被執行的程序就會發生阻塞 然後去尋找需要的那個頁 在找到後 先判斷是否有足夠的記憶體塊儲存相應的頁

計算機作業系統 虛擬

想理解虛擬記憶體,首先要說一下傳統記憶體,對比一下,更好理解其然所以然。一次性操作和資料必須一次性全部裝入記憶體後,方能開始執行。這會導致兩種情況發生 a 當資料量很大,不能全部被裝入記憶體時,將使該程式無法執行 b 當大量程式要求執行時,由於記憶體不足以容納所有資料,只能使少數程式先執行,導致多道...

計算機作業系統

為什麼要有作業系統 計算機系統是乙個複雜的系統,如果每位程式設計師在程式設計時都必須掌握計算機系統的所有細節,就會嚴重影響程式設計師的開發效率 作業系統可以對計算機硬體加以管理和優化使用,為使用者程式提供更好的執行環境。作業系統以及其位置 作業系統組成 作業系統功能 應用程式直接與作業系統及其抽象打...

計算機作業系統

實驗一 熟悉linux作業系統 程序觀測 實驗目的 1 了解在linux作業系統中程序的特點和表現形式 2 掌握linux檢視程序的方式與方法 3 在乙個程序中建立另乙個程序的方法 4 掌握父程序和子程序的關係和fork的用法 實驗內容 1 編寫乙個簡單的程式,使用ps或top工具觀察該程序的的id...