操作系统(三十四)覆盖和交换
生活随笔
收集整理的這篇文章主要介紹了
操作系统(三十四)覆盖和交换
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
3.3 覆蓋和交換
? 在上一節中我們提到操作系統在內存管理方面的作用,其中有一個作用是內存空間的擴展,實現這一功能的就是覆蓋和交換技術。
3.3.1 覆蓋
??早期的計算機內存很小,經常會出現內存大小不夠的情況。后來人們引入了覆蓋技術,用來解決“程序大小超過物理內存總和”的問題。
? 覆蓋的思想:將程序分為多個段(多個模塊)。常用的段常駐內存,不常用的段在需要時調入內存。內存中分為一個“固定區”和若干個“覆蓋區”。需要常駐內存的段放在“固定區”中,調入后就不再調出(除非運行結束)不常用的段放在“覆蓋區”,需要用到時調入內存,用不到時調出內存。
? 在覆蓋區的處理上按照自身邏輯結構,讓那些不可能同時被訪問的程序段共享同一個覆蓋區
? 但是這種覆蓋技術對用戶是不透明的,所有覆蓋操作必須先由程序員進行聲明,大大增加了編程難度。
3.3.2 交換
? 在將中級調度(內存調度)的時候我們提過交換技術,中級調度的目的就是決定哪些掛起的進程重新調入內存。
? 交換(對換)技術的設計思想:內存空間緊張時,系統將內存中某些進程暫時換出外存,把外存中某些已具備運行條件的進程換入內存(進程在內存與磁盤間動態調度)。那些被換出至外存的進程稱為掛起狀態,再根據換出之前進程所處的狀態又可以分為就緒掛起以及阻塞掛起兩種狀態。 ? 交換的進程保存位置:具有對換功能的操作系統中,通常把磁盤空間分為文件區和對換區兩部分。文件區主要用于存放文件,主要追求存儲空間的利用率,因此對文件區空間的管理采用離散分配方式;對換區空間只占磁盤空間的小部分,被換出的進程數據就存放在對換區。由于對換的速度直接影響到系統的整體速度,因此對換區空間的管理主要追求換入換出速度,因此通常對換區采用連續分配方式。總之,對換區的I/O速度比文件區的更快。 ? 交換進行的時機:交換通常在許多進程運行且內存吃緊時進行,而系統負荷降低就暫停。例如:在發現許多進程運行時經常發生缺頁,就說明內存緊張,此時可以換出一些進程;如果缺頁率明顯下降,就可以暫停換出。 ? 交換進程的選擇:?可優先換出阻塞進程;可換出優先級低的進程;為了防止優先級低的進程在被調入內存后很快又被換出,有的系統還會考慮進程在內存的駐留時間這里需要注意:PCB 會常駐內存,不會被換出外存。 ? 雖然覆蓋跟交換都是拓展內存空間的一個方法但是而只是有區別的:覆蓋是在同一個程序或者進程中進行的,交換是在不同進程之間進行的。總結
以上是生活随笔為你收集整理的操作系统(三十四)覆盖和交换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021年KTV行业发展蓝皮书
- 下一篇: 2021年00后生活方式洞察报告