記憶體管理(memory management)是作業系統設計中最重要和最複雜的內容之一。雖然計算機硬體一直在飛速發展,記憶體容量也在不斷增長,但是仍然不可能將所有使用者程序和系統所需要的全部程式和資料放入主存中,所以作業系統必須將記憶體空間進行合理地劃分和有效地動態分配。作業系統對記憶體的劃分和動態分配,就是記憶體管理的概念。
有效的記憶體管理在多道程式設計中非常重要,不僅方便使用者使用儲存器、提高記憶體利用率,還可以通過虛擬技術從邏輯上擴充儲存器。
記憶體管理的功能有:
在進行具體的記憶體管理之前,需要了解程序執行的基本原理和要求。
建立程序首先要將程式和資料裝入記憶體。將使用者源程式變為可在記憶體中執行的程式,通常需要以下幾個步驟:
這三步過程如圖3-1所示。
圖3-1 對使用者程式的處理步驟
記憶體的裝入模組在裝入記憶體時,同樣有以下三種方式:
1) 絕對裝入。在編譯時,如果知道程式將駐留在記憶體的某個位置,編譯程式將產生絕對位址的目標**。絕對裝入程式按照裝入模組中的位址,將程式和資料裝入記憶體。由於程式中的邏輯位址與實際記憶體位址完全相同,故不需對程式和資料的位址進行修改。
絕對裝入方式只適用於單道程式環境。另外,程式中所使用的絕對位址,可在編譯或彙編時給出,也可由程式設計師直接賦予。而通常情況下在程式中釆用的是符號位址,編譯或彙編時再轉換為絕對位址。
2) 可重定位裝入。在多道程式環境下,多個目標模組的起始位址通常都是從0開始,程式中的其他位址都是相對於起始位址的,此時應釆用可重定位裝入方式。根據記憶體的當前情況,將裝入模組裝入到記憶體的適當位置。裝入時對目標程式中指令和資料的修改過程稱為重定位,位址變換通常是在裝入時一次完成的,所以又稱為靜態重定位,如圖3-2(a) 所示。
圖3-2 重定向型別
靜態重定位的特點是在乙個作業裝入記憶體時,必須分配其要求的全部記憶體空間,如果沒有足夠的記憶體,就不能裝入該作業。此外,作業一旦進入記憶體後,在整個執行期間不能在記憶體中移動,也不能再申請記憶體空間。
3) 動態執行時裝入,也稱為動態重定位,程式在記憶體中如果發生移動,就需要釆用動態的裝入方式。裝入程式在把裝入模組裝入記憶體後,並不立即把裝入模組中的相對位址轉換為絕對位址,而是把這種位址轉換推遲到程式真正要執行時才進行。因此,裝入記憶體後的所有位址均為相對位址。這種方式需要乙個重定位暫存器的支援,如圖3-2(b)所示。
動態重定位的特點是可以將程式分配到不連續的儲存區中;在程式執行之前可以只裝入它的部分**即可投入執行,然後在程式執行期間,根據需要動態申請分配記憶體;便於程式段的共享,可以向使用者提供乙個比儲存空間大得多的位址空間。
編譯後,每個目標模組都是從0號單元開始編址,稱為該目標模組的相對位址(或邏輯位址)。當鏈結程式將各個模組鏈結成乙個完整的可執行目標程式時,鏈結程式順序依次按各個模組的相對位址構成統一的從0號單元開始編址的邏輯位址空間。使用者程式和程式設計師只需知道邏輯位址,而記憶體管理的具體機制則是完全透明的,它們只有系統程式設計人員才會涉及。不同程序可以有相同的邏輯位址,因為這些相同的邏輯位址可以對映到主存的不同位置。
實體地址空間是指記憶體中物理單元的集合,它是位址轉換的最終位址,程序在執行時執行指令和訪問資料最後都要通過實體地址從主存中訪問。當裝入程式將可執行**裝入記憶體時,必須通過位址轉換將邏輯位址轉換成實體地址,這個過程稱為位址重定位。
記憶體分配前,需要保護作業系統不受使用者程序的影響,同時保護使用者程序不受其他使用者程序的影響。通過釆用重定位暫存器和界位址暫存器來實現這種保護。重定位暫存器含最小的實體地址值,界位址暫存器含邏輯位址值。每個邏輯位址值必須小於界位址暫存器;記憶體管理機構動態地將邏輯位址與界位址暫存器進行比較,如果未發生位址越界,則加上重定位暫存器的值後對映成實體地址,再送交記憶體單元,如圖3-3所示。
當cpu排程程式選擇程序執行時,派遣程式會初始化重定位暫存器和界位址暫存器。每乙個邏輯位址都需要與這兩個暫存器進行核對,以保證作業系統和其他使用者程式及資料不被該程序的執行所影響。
圖3-3 重定位和界位址暫存器的硬體支援
作業系統知識點總結
共享 系統中的資源可以被記憶體中多個併發執行的進執行緒共同使用 虛擬 通過時分復用 如分時系統 以及空分復用 如虛擬記憶體 技術實現把乙個物理實體虛擬為多個 非同步 系統中的程序是以走走停停的方式執行的,且以一種不可預知的速度推進 儲存器管理 或者記憶體管理 記憶體分配,記憶體保護,位址對映,記憶體...
作業系統知識點總結(十七)檔案系統知識點總結
引導控制塊 boot control block 包括系統從該分割槽引導作業系統所需要的資訊。如果 磁碟沒有作業系統,那麼這塊的內容為空。它通常為分割槽的第一塊。ufs稱之為引導塊 boot block ntfs 稱之為分割槽引導扇區 partition boot sector 分割槽控制塊 par...
作業系統知識點
tcp的擁塞控制由4個核心演算法組成。https 把資料進行非對稱加密,然後客戶端從第三方伺服器獲取證書 加密後的公鑰 http完整請求 建立tcp連線,傳送http命令請求頭,web伺服器應答,關閉tcp連線 tcp 三次握手 缺陷 洪氾攻擊 解決辦法 四次揮手 長連線 短連線 程序 執行緒 併發...