作業系統 儲存管理2

2022-09-08 07:57:06 字數 1503 閱讀 5730

------非連續儲存分配-------

概念:將程序儲存在非連續的記憶體空間-->進而需要將程序劃分成小的部分

根據劃分粒度的大小可以分為:段式/頁式記憶體分配方式

1.頁式儲存管理--前提(程序並不要求邏輯位址必須連續)

注意:其實程序被分為許多片段,零散的分布在記憶體中不存在確定的順序

* 頁式儲存管理具體操作

# 將物理空間等分為固定長度的資料塊--稱為頁幀(frames)-f

# 將邏輯空間等分為長度固定的資料塊--稱為頁面(pages)--p

注意:頁面和頁幀的大小保持一致;通常頁面大小是2的冪

大小在512b--8192b之間

# 頁表:是乙個陣列:下標是:頁號;元素是:頁幀。

# 將邏輯位址翻譯成實體地址的過程

1.將邏輯位址空間2^m 頁面長度2^n,總頁面個數2^(m-n);後n位對應的

2^ n為該頁面偏移量d

2.頁號:邏輯位址的前(m-n)位,通過頁號查詢頁表,找到該頁面

對應的頁幀f。

3.實體地址= 頁幀值*頁面大小+頁面偏移量 realadd = f*2^(2^n) + d;

2.頁式記憶體管理中os所起的作用、負責的是什麼

* os負責監控所有的空閒頁幀

若程序需要n個邏輯頁面,os分配n個空閒頁幀給程序,使得程序

可以將資料和**裝進記憶體

* os分配頁表所需要的物理空間,布置好頁表定義對映函式;

注意:頁式分配存在內部碎片

3.如何實現頁表?

* 頁表必須常駐記憶體(暫存器大小有限)陣列實現

* 頁表的基位址暫存器--必須指向頁表的首位址

* 頁表的長度暫存器表示頁面佔的記憶體空間大小

4.如何提高頁式儲存分配的速度?

* 按照頁表在記憶體中,位址轉化需要訪問兩次記憶體;解決兩次記憶體訪問

tlbs:translation look-aside buffers

借助tlbs快表實現對頁表部分內容的快取;減少一次訪問記憶體(空間區域性)

tlb本質是乙個硬體裝置---是關聯儲存器(該結構支援並行搜尋-速度超快)

tlb支援對位址(p,d)翻譯

命中:p在tlb裡面,直接獲取頁幀

不命中:p不再tlb裡面,在記憶體中的頁表找到頁幀號,並將該頁楨copy進tlb

5.頁式分配--記憶體保護

在頁面的每個頁表項中,為每個頁設定乙個包含位代表--有效、保護

有效:表示該頁面在程序的邏輯位址範圍,因此是合法頁面可以訪問

無效:表示該頁面在程序的邏輯位址範圍外,不可以進行訪問

保護位:操作的型別限制;唯讀等。

6.共享頁面

共享**:唯讀的**(可重入)只需要儲存乙份,供若干個程序共享

對於所有程序來說共享的**必須位於邏輯位址相同的位置

程序自有**資料:程序各自擁有乙份,為自有的**資料分配的頁面

可以分布在邏輯位址空間的任意位置

7.對於頁表過大的處理

# 採用多級頁表

# 採用反向頁表

作業系統 儲存管理(2)

為了解決上述的問題,主要是解決記憶體不夠的問題,現代作業系統採用了虛擬記憶體的方式。基於區域性性原理,在程式裝入階段,可以將程式的一部分裝入記憶體,其餘部分留在外存,就可以讓程式啟動起來了。在程式執行過程中,當訪問的資訊不在記憶體時,由作業系統將所需要的部分調入記憶體,然後繼續執行程式。另一方面,作...

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

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

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

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