覆蓋和交換是在多道程式環境下用來擴充記憶體的兩種方法。
1.覆蓋
早期的計算機系統中,主存容量小,雖然主存中僅存放一道使用者程式,但是儲存空間放不下使用者程序的現象也經常發生,這一矛盾可以用覆蓋基礎來解決。
覆蓋的基本思想是:由於程式執行時並非任何時候都要訪問程式及資料的各個部分(尤其是大程式),因此可以把使用者空間分成乙個固定區和若干覆蓋區。將經常活躍的部分放在固定區。其餘部分按呼叫關係 分段。首先將那些即將要訪問的段放入覆蓋區,其他段放在外存中,在需要呼叫前,系統將其調入覆蓋區,替換覆蓋區中原有的段。
覆蓋技術的特定時打破了必須將乙個程序的全部資訊裝入主存後才能執行的限制,但當同時執行的**量大於主存時仍然不能執行。
2.交換
交換(對換)的基本思想是,把處於等待狀態(或在cpu排程原則下被剝奪執行權利)的程式從記憶體移到輔存,把記憶體空間騰出來,這個過程叫做換出。把準備好競爭cpu執行的程式從輔存移到記憶體,這個過程又稱為換入。
例如,有乙個cpu採用時間片輪轉排程演算法的多道程式環境。時間片到,記憶體 管理器將剛剛執行的程序換出,將另一程序換入到 剛剛釋放的記憶體空間中。同時,cpu排程器可以將時間片分配給其他已在記憶體中的程序。每個程序用完時間片都與另一程序交換。理想情況下,記憶體管理的交換過程速度足夠快,總有程序在記憶體中可以執行。
有些交換需要注意一下幾個問題:
儲存管理 覆蓋技術和交換技術
1.對於乙個程序,不需要一開始就把程式的全部指令和資料都裝入記憶體再執行。2.程式劃分為若干個功能上相對獨立的程式段,按照程式邏輯結構讓那些不需要同時執行的程式段共享同一塊記憶體區 3.當有關程式段的先頭程式段已經執行結束後,再把後續程式段從外存調入記憶體覆蓋前面的程式段 程式設計師提供乙個清楚的覆...
作業系統覆蓋技術和交換技術
為什麼提出覆蓋技術?倘若我有乙個程序要執行,它需要10k的記憶體分配,但是現在擁有的資源是記憶體大小只有6k,那我們該怎麼辦?覆蓋技術就可以解決這樣乙個問題。即在較小的可用記憶體中執行較大的程式。看圖 覆蓋技術又是怎麼實現的呢?依據整個程式的邏輯結構,把不相關,不會相互呼叫的模組劃分一組來進行記憶體...
作業系統 覆蓋與交換
覆蓋與交換技術是在多道程式環境下用來擴充記憶體的兩種方法。覆蓋的基本思想 由於程式執行時並非任何時候都要訪問程式及資料的各個部分 尤其是大程式 因此可把使用者空間分成固定區和若干覆蓋區。將經常活躍的部分放在固定區,其餘部分按照呼叫關係分段。首先將這些即將訪問的段放入覆蓋區,其他段放在外存中,在需要呼...