作業系統 儲存管理(2)

2021-09-26 03:51:15 字數 901 閱讀 3771

為了解決上述的問題,主要是解決記憶體不夠的問題,現代作業系統採用了虛擬記憶體的方式。

基於區域性性原理,在程式裝入階段,可以將程式的一部分裝入記憶體,其餘部分留在外存,就可以讓程式啟動起來了。在程式執行過程中,當訪問的資訊不在記憶體時,由作業系統將所需要的部分調入記憶體,然後繼續執行程式。另一方面,作業系統將記憶體中暫不使用的記憶體換到外存上,從而騰出空間存放要調入記憶體的資訊。

請求分頁還是分頁,為了支援虛擬儲存器豐富了頁表,增加了請求調頁功能和頁面置換功能。還需要提供硬體支援如頁表機制、缺頁中斷機構和位址變換機構。

傳統的頁表只有兩項,分別是頁號和物理塊號,支援虛擬儲存器之後,頁表變成下面的樣子。

頁號物理塊號

狀態為p

訪問欄位a

修改位m

外存位址

程序執行時,若其訪問的頁面不在記憶體而需要從外存調入,但是記憶體已經沒有空餘空間時,就需要從記憶體中調出一頁程式或資料,送入磁碟的對換區。選擇調出頁面的演算法就稱之為頁面置換演算法。常用的置換演算法有以下幾種:

注意:belady異常是指所分配的物理塊增大但是缺頁故障樹不減反增的現象。翻譯**話就是記憶體空間越大,缺頁率竟然上去了。堆疊類演算法不會出現這種異常,fifo會出現,因為fifo是基於佇列的。

在頁面置換過程中最糟糕的情況就是,剛剛換出的頁面馬上又要換到主存,剛剛換入的馬上要換出來,這種就叫抖動

工作集(駐留集)是指在某段時間間隔內,程序要訪問的頁面集合。經常被使用的頁面需要在工作集中,長期不被使用的頁要衝工作集中捨去,為了防止系統出現抖動現象,需要選擇合適的工作集大小。

工作集模型的原理:讓作業系統跟蹤每個程序的工作集,並為程序分配大於其工作集的物理塊。如果還有空間物理塊,則可以再調乙個程序以增加多道程式數。如果所有的工作集之和增加以至於超過了可用物理塊的總數,那麼作業系統會暫停乙個程序,將其頁面調出並且將其物理塊分配給其他程序,防止出現抖動現象。

作業系統 儲存管理2

非連續儲存分配 概念 將程序儲存在非連續的記憶體空間 進而需要將程序劃分成小的部分 根據劃分粒度的大小可以分為 段式 頁式記憶體分配方式 1.頁式儲存管理 前提 程序並不要求邏輯位址必須連續 注意 其實程序被分為許多片段,零散的分布在記憶體中不存在確定的順序 頁式儲存管理具體操作 將物理空間等分為固...

作業系統 儲存器管理(2)

1.程序的換入與換出 由於核心執行某些操作而發現記憶體不足時,便呼叫 或喚醒 對換程序,主要任務便是實現程序的換入換出。1 程序的換出指 對換程序在實現程序換出時,將記憶體中的某些程序調出至對換區以便騰出記憶體空間。步驟 選擇被換出的程序。選擇優先順序最低的處於阻塞或睡眠狀態的程序,考慮程序在記憶體...

作業系統筆記 儲存管理(2)

位址重定位 快表兩級頁表 分段儲存管理 位址變換 資訊共享 分段與分頁比較 段頁式儲存管理 目的 減少分割槽式分配的內外零頭浪費的問題。思想 將目標程式分為若干的頁 頁面 這裡的頁是對於邏輯位址而言的線性位址。記憶體也要劃分為若干的頁框,頁框是對具體的實體地址進行的劃分,頁 頁面 與頁框的大小相同,...