1. 程式人生 > >作業系統 儲存管理

作業系統 儲存管理

1、儲存器:

速度:暫存器---->主存---->輔存

容量:輔存---->主存---->暫存器

2、快取記憶體和磁碟快取:

快取記憶體:解決cpu與主存之間速度不平衡

磁碟快取:解決主存與磁碟之間速度不平衡,他是記憶體中開闢的一個區間,並不是實際存在的一個儲存器

3、程式的執行過程:
編譯、連線、裝入

編譯:將名稱空間程式設計邏輯地址

連結:連結是指將這組目標模組以及所需的庫函式裝配成一個完整的裝入模組

1、靜態連結

2、裝入時動態連結

3、執行時動態連結

裝入:將模組裝入記憶體

1、絕對裝入方式

2、可重定位裝入方式:可以將模組裝入至記憶體的任何位置

3、動態執行時裝入方式:裝入時不立即將邏輯地址立刻裝換成實體地址

4、儲存管理的方式:

1、單一連續區管理

2、分割槽管理

3、分頁管理

4、分段管理

5、段頁式管理

其中連續分配儲存管理方式有:單一連續分配方式和分割槽管理的方式

單一連續分配:早期的,老早老早就GG了。

分割槽管理:

1、固定分割槽管理:分割槽大小相同,分割槽大小相等兩種形式,所以固定分割槽是大小確定不相等。會造成內碎片。

2、動態分割槽管理:動態分配記憶體,將涉及資料結構和分配演算法和回收。

2.1 順序搜尋演算法:FF首次適應,BF最佳適應(容易造成外碎片),最壞適應,迴圈首次適應

2.2 索引搜尋演算法:快速適應,夥伴系統、雜湊演算法

3、動態可重定位分割槽分配管理:

3.1 緊湊技術:將記憶體中的所有作業都進行移動來講記憶體的區域聚集在一起,能獲得更大的記憶體空間,但是記憶體位置都發生了變換,每次緊湊之後需進行重定位

演算法和動態分割槽一致,但增加了緊湊這一步,就在分配時加一步,是否可以放的下,放不下就緊湊,重定位。

離散儲存管理方式:分頁管理、分段管理、段頁式管理

1、分頁管理:固定大小,會造成頁內碎片但較小,系統為每個程序建立一張表,稱為頁表。但是頁表儲存需要的記憶體會佔很大,所以可以只將當前需要的部分頁表向調入記憶體。

2、分段管理:滿足使用者需要,方便程式設計,資訊共享,資訊保護,動態增長,動態連結。段表對每個分段分配一個連續的分割槽,程序的各個短可以離散的裝入記憶體,由於段表是根據段來建立的,那要找到記憶體中的某個資料需要知道是哪個程序的?程序中哪個段的?所以地址是二維的!

3、段頁式管理:兩種結合。先把作業分段,然後進行分頁

5、虛擬儲存器

1、虛擬記憶體中使用請求分頁技術

2、將部分程式放在外存,用時呼叫

3、虛擬的,而非物理上擴充了記憶體

6、請求分頁管理方式

1、請求分頁表

2、中斷

3、演算法

例題:

在分割槽儲存管理方法下,導致碎片的原因是 ( )。
   A.         重定位                           B.         分割槽的個數固定
   C.         分割槽的大小固定             D.         作業連續儲存

解析:選D,固定分割槽會導致內碎片就是由於分割槽大小固定,作業是連續儲存的。動態分割槽是會造成外碎片還是由於作業必須連續儲存。

在下列有關請求分頁管理的敘述中,正確的是(  )。
A.程式和資料是在開始執行前一次性裝入的
B.產生缺頁中段一定要淘汰一個頁面
C.一個被淘汰的頁面一定要寫回外存
D.在頁表中要有“訪問位”和“改變位”等資訊

解析:選D,C肯定被pass,B中不一定要淘汰頁面,如果記憶體還能容納頁面,直接把它調進來就好了,沒必要淘汰,A的話請求分頁就是把當前不適用的頁面放在外存的,感覺A的話有點不太對

系統“抖動”現象的發生是由(    )引起的。
 A置換演算法選擇不當     B交換的資訊量過大
 C記憶體容量不足        D請求頁式管理方法

解析:選A,抖動的根本原因還是:程序太多,而分配的物理塊太少了。但仔細一想,為什麼物理塊太少,還是一位置換演算法不當。