簡體   English   中英

有人能給我一個操作系統中使用的 VSWS 算法的高級概述嗎?

[英]Can Someone Give me a high-level overview of the VSWS Algorithm used in Operating Systems?

我試圖找到可以為我提供簡單、清晰、簡潔的 VSWS 算法描述的視頻/資源,但我似乎找不到任何視頻/資源。 任何幫助,將不勝感激!

有人能給我一個 VSWS 算法的高級概述嗎...

可變間隔采樣工作集算法的基本思想是:

  • 每個虛擬頁面都有一個“已使用”標志

  • 在程序運行時,如果/當程序使用虛擬頁面時(包括當頁面的數據必須從其他地方/磁盤獲取才能使用時),CPU 或操作系統會設置頁面的“已使用”標志。

  • 經過一段時間后,操作系統會檢查所有“已使用”標志,並決定如果某個頁面未被使用,則它不是工作集的一部分(並且可能會驅逐它們以釋放物理內存); 然后清除所有“已使用”標志(准備好下一個可變的時間量)。

...用於操作系統?

我不會假設它實際上用於現代操作系統。

大多數操作系統使用基於“最近最少使用”的東西; 其中使用類似的“可變抽樣”方法來估計“最后一次使用頁面的時間”(而不僅僅是單個“已使用”標志),然后用於估計“未來使用的可能性”; 然后可以將其與“驅逐成本”和“程序優先級”相結合,得出綜合分數; 其中得分最差的頁面被認為是“最好驅逐以釋放物理內存”。

注 1:如果頁面被修改並需要寫入交換空間(然后可能稍后從交換空間加載回來),那么它具有更高的“驅逐成本”; 如果一個頁面自從上次從文件或交換空間中獲取后沒有被修改,那么它的“驅逐成本”就較低。 為了提高性能(降低驅逐的成本,不要忘記估計是粗略的,並且通常無法預測未來的使用),更喜歡驅逐“更便宜的驅逐”頁面是有意義的。

注2:當有多個任務在運行時; 對某些任務給予優待是好的。 舉一個極端的例子,想象一下,如果操作系統處於“低內存”條件下並且不斷地顛簸(向/從磁盤傳輸數據); 並且管理員/用戶正試圖終止導致所有磁盤垃圾但無法終止的錯誤程序,因為他們需要用來解決問題的工具沒有響應(因為這些工具沒有得到優惠待遇並且必須從“已經被顛簸”的磁盤中獲取)。

注 3:在某些情況下(例如一個名為sleep()的任務,確定它很快就會醒來是微不足道的),可以使用其他信息來更好地估計“未來使用的可能性”,而不是簡單的“最近最少使用” used”算法可以提供。

注 4:通常,當操作系統需要釋放一些物理內存時,還可以考慮其他事情(例如文件數據緩存)(並且還可以參與“計算分數並驅逐最差分數”系統)。

注 5:現代系統還會在實際請求數據之前預取數據(例如從文件等)。 預取的“沒有被任何程序請求,根本沒有使用”數據完全有可能比“顯式請求和以前使用過的”數據更重要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM