採用多層結構儲存器的原因:
儲存器要求有速度快、容量大、便宜三個特點,由於至今無法同時滿足,所以採用多級結構。
1.儲存器的多層結構
儲存層次
越往上,速度越快,**越高,容量越小
2.可執行儲存器
可執行儲存器因為與輔存訪問機制不同,速度更快
1.主儲存器
作用
儲存程序執行時的程式和資料
2.暫存器
與處理機速度相同,所以貴且小
1.快取記憶體
作用
備份主存中較常用的資料,以減少處理機對主存的訪問次數
2.磁碟快取
作用
備份=磁碟中較常用的資料,以減少對磁碟的訪問次數
特點
磁碟快取不是實際存在的,而是利用主存中的一部分作為磁碟快取
程式要執行必須先裝入記憶體,再轉變為可以執行的程式
裝入記憶體的步驟
編譯:編譯程式對使用者源程式進行編譯,形成若干個目標模組
裝入:裝入程式將裝入模組裝入記憶體
1.絕對裝入方式
條件
系統小,單道程式,知道程式在記憶體什麼位置
過程
程式編譯後的絕對位址,和之前程式中寫的邏輯位址是相同的,所以可以直接按照原有邏輯位址進行裝入
注意事項
程式中採用符號位址,編譯後後才轉變為絕對位址
2.可重定位裝入方式
條件
多道程式中,編譯程式不知道將會把目標程式放在記憶體的何處,所以形成的絕對位址會與邏輯位址不同
過程
將所有的邏輯位址自加上裝入位置的首位址
注意
所有的指令位址和指令中操作的位址都要自加
位址變換在程式裝入時一次完成,所以又稱靜態重定位
3.動態執行時的裝入方式
條件
程式裝入記憶體後不立刻修改位址,而是在程式即將執行時修改位址
根據進行鏈結的時間不同進行分類
該過程將各個互相diaoyong
1.靜態鏈結方式
2.裝入時動態鏈結
在目標程式裝入的時候再鏈結,即裝入時需要呼叫哪個模組,再將該模組找來裝入
這樣便於模組的共享和修改
3.執行時動態鏈結
由於程式執行時要執行哪些模組是不確定的,所以按照上面的方法,需要全部鏈結和裝入
該種方法是在程式執行時需要哪些再鏈結、裝入哪些。
程式進入記憶體,需要分配一塊記憶體空間。
連續分配方式時早出現的一種儲存器分配方法,曾廣泛用於60~80年代。
具體表現為:邏輯位址相鄰則分配的絕對位址相鄰。
以下為四種方式:
記憶體中只裝有乙個程式,用於單道程式環境下
在多道程式系統下,將記憶體分為幾個分割槽,每個分割槽執行乙個程式。
劃分分割槽的方法
根據程序的實際需求,動態的為之分配記憶體空間
1.資料結構
作用:
描述分割槽的分配情況
形式
2.分配演算法
即4.3.4和4.3.5
3.分割槽分配操作
分配記憶體
檢索分割槽表或鏈,找到大於需要空間的記憶體分割槽,若它比需要記憶體大出的那一部分小於事先規定的最小分割大小,則全分給他,否則就將多出來的留下來下次用,然後再把正好的分給它。
**記憶體
程序執行完要**記憶體,要**的那一部分稱為**區,此時有四種情況
順序搜尋就是使用鏈結構,依次查詢
1.首次適應演算法
方法優點
留下高位址的大空間,為後來的大作業分配空間創造了機會
缺點
低位址會留下很多無法利用的小空間,每次從低位址開始,會浪費時間
2.迴圈首次適應演算法
方法優缺點和上一方法完全相反
3.最佳適應演算法
方法
鏈按照從小到大排列,從頭依次尋找,第乙個合適的就是最小的滿足條件的分割槽,將該分割槽分配出去
缺點
形成難以利用的碎片空間
4.最壞適應演算法
和上乙個剛好相反
優點是效率高,缺點是會缺少大空間
這種演算法適用於中大型系統,上一種適用於小型系統
1.快速適應演算法/分類搜尋法
方法
將分割槽按照大小進行分類,同一類設定乙個鍊錶來鏈結。設定乙個管理索引表,來記錄這些鍊錶。分配時,根據索引表找到最小的符合項,將該表項對應的鏈第乙個分配給他,不會進行分割。
分類是按照常用空間大小分類,如2,4,8.像7這樣的大小可以分到4或者特許空間區鍊錶
優點
快,不會留下碎片
缺點
歸還方式複雜,不切割導致空間利用率低
2.夥伴系統
保證每乙個空閒分割槽和非空閒分割槽都是2n。根據n的大小對分割槽進行分類。
每次需要乙個大小為m的分割槽,就找大小為2i大小的分割槽。
保證:2(i-1)
i然後將該分割槽分給它。
如果沒有,則找2i+1的分割槽,將該分割槽分為兩個,乙個分配,乙個加入2i類別。
還沒有則找2i+2,分割,乙個加入2i+1 類別,另乙個分割後同上一句話。
以此類推
優點是增加空間利用率,缺點是效率降低
3.雜湊演算法
利用雜湊快速查詢的方法完成
1.緊湊
為了利用記憶體中的碎片記憶體,將已用記憶體進行移動,從而使碎片記憶體和為乙個大記憶體,該過程為緊湊
2.動態重定位
動態執行時裝入方法中有乙個重定位暫存器,記錄程式的開頭位址,發生緊湊時,只需要改變這個位址即可。
3.動態重定位分割槽分配演算法
與動態分割槽分配類似。額外加乙個,如果沒有分割槽可以分,但是碎片加起來可以大於所需記憶體,則進行緊湊然後分配記憶體。
《作業系統》學習筆記 儲存管理
目錄早期的記憶體管理方式 分頁分段 分頁和分段的區別 段頁式虛擬記憶體 請求分頁 頁面置換演算法 記憶體塊的分配和抖動 動態執行時裝入方式 程序的記憶體映像在不同時候處於不同位置 將邏輯位址轉變為記憶體實體地址的過程 缺點 動態重定位 在程式執行期間,每次訪問記憶體之前進行重定位 缺點 需要硬體支援...
作業系統學習筆記(10) 虛擬儲存管理
1 程式訪問區域性性原理 2 虛擬儲存器 3 請求頁式儲存管理 位址轉換過程 以頁號為索引搜尋快表 如果在快表中命中,立即送出頁框號,並與頁內位址拼接成實體地址,然後,進行許可權檢查,如獲通過程序就可以訪問實體地址了 如果在快表中不命中,以頁號為索引搜尋程序頁表,頁表的始址由硬體頁表控制暫存器指出 ...
四作業系統儲存器管理
儲存部件的層次 cpu暫存器 快取記憶體 主 存 磁碟快取 磁 盤 可移動儲存介質 1 程式的裝入和鏈結 程式進記憶體的一般過程 1 編譯compiler 2 鏈結link 3 裝入load 位址的概念 邏輯位址 相對位址,虛位址 使用者的程式經過彙編或編譯後形成目標 目標 中的指令位址是相對位址。...