2011年4月28日 星期四

OS: Thrashing



在電腦的知識範疇中,談到thrashing前,必需先大略對虛擬記憶體有點瞭解。虛擬記憶體的概念,其實就是將硬碟割出一塊空間,這一部份我們叫他虛擬記憶體(Virtural Memory),而原先的記憶體稱之為實體記憶體(Physical Memory)。  


當程式要執行的部份,從虛擬記憶體(亦即硬碟)搬至實體記憶體再執行。由於硬碟的空間遠較實體記憶體為大,因此使用虛擬記憶體這種技術,可以讓程式不受實體記憶體容量的限制,此外由於行程(Process,指執行中的程式)只需將部份載入實體記憶體,因此可以讓更多行程同時存於實體記憶體,進而提高CPU的使用率。


  Thrashing這種現象指的是,欲使用的資料從虛擬記憶體搬至實體記憶體時,實體記憶體可能有一部份需要被置換,這些置換的資料再搬至虛擬記憶體中。然而被置換的部可能馬上又要使用,再從虛擬記憶體搬至實體記憶體,如此週而復始不斷進行搬運的動作,所有時間都花在這些無關緊要的置換搬運,導致CPU的使用率大幅降低。  
 
現在的電腦可以同時執行很多程式,如此CPU使用率大幅上升,達到最大的利用。然而執行的程式超過一定的數量時,很容易發生thrashing,CPU的使用率反而降低。


refer from:
http://blog.xuite.net/draz/draz/3826515