作業系統設計/交換
外觀
< 作業系統設計
交換的概念在程序排程方面出現。交換基本上由中級排程程式實現。中級排程程式將程序從 CPU 中移除一段時間,降低多道程式設計的程度。經過一段時間後,這些程序可以再次被重新引入主記憶體。程序執行將再次從它離開 CPU 的點恢復。這種方案被稱為交換。更一般地說,我們可以說交換是從記憶體中移除程序到輔助儲存器,然後再返回到主記憶體。
示例:假設一個使用迴圈輪詢 CPU 排程演算法的多道程式環境。當一個時間片到期時,記憶體管理器將開始交換掉剛剛完成的程序,並將另一個程序交換到已釋放的記憶體空間中。在此期間,CPU 排程程式將為記憶體中的其他程序分配一個時間片。當每個程序完成其時間片時,它將被交換回另一個程序。理想情況下,記憶體管理器可以足夠快地交換程序,以便當 CPU 排程程式想要重新排程 CPU 時,記憶體中始終至少有一個程序準備好執行。時間片也必須足夠大,以便在交換之間完成合理的計算量。
交換可以以多種方式實現。例如,交換可以基於優先順序。這意味著如果一個更高優先順序的程序到達並需要服務,記憶體管理器可以將較低優先順序的程序交換到輔助儲存器中,以便更高優先順序的程序可以載入到主記憶體中執行。一旦更高優先順序的程序完成,較低優先順序的程序將被交換回主記憶體,並繼續執行。有時交換也被稱為滾動出去,滾動進來。
地址繫結規則決定了要分配給程序的記憶體空間。因為被交換出去的程序需要在它離開的位置的相同記憶體位置被交換回來。地址繫結實現了這一點。
交換需要一個後備儲存器。這個後備儲存器與磁碟一樣快。這個後備儲存器應該足夠大,以儲存所有使用者的所有記憶體映像的副本。交換還意味著將一些資料從一個記憶體複製到另一個記憶體。