linux核心原始碼學習(5)記憶體頁面的換入換出

來源:互聯網
上載者:User

  linux核心原始碼學習(5)記憶體頁面的換入換出

---flyli

 

      關於物理頁面的換入換出,其實其主要的目的也就是當實體記憶體不夠使用的時候,將不常用到的記憶體頁面交換到硬碟上,以保證程式能夠正常運行。

     

     在電腦理論裡面時間資源和空間資源是一對矛盾的論題,我們經常可以見到以時間換空間,或者以空間換時間的演算法,其不可單獨評價那種更好,但是在相應的環境下,總有一種更適合我們。

 

     linux中頁面的交換就是一種典型的時間換空間的做法,當我們的記憶體不夠用的時候,我將不用的記憶體移到硬碟上,然後增加我們的記憶體可用空間確實是一種不錯的辦法,雖然由於硬碟的讀寫速度較慢(這就是為什麼同空間的記憶體別硬碟貴那麼多的原因吧),但是慢點總比程式根本打不開要好的多,呵呵

 

    今天讀完了《linux核心原始碼情景分析》關於這個內容的一章,說實話,現在我的記憶體都是2G,運行linux的時候從來都是將虛擬記憶體關掉的,因為我的記憶體使用量量都很少超過1G。。。所以不大想對這一部分的內容進行深入分析,本想為了保證部落格的連續性到網上找篇文章參考下的,最後想想,參考別人的文章複製過來實在沒啥意思,還是自己寫吧,順便記錄下,呵呵。

 

    如同實體記憶體的管理一樣磁碟交換區的管理也有著相應的資料結構對其進行管理,這就是swap_info_struct,該結構包含了一個交換地區的位置,大小,使用方式等資訊,在原始碼中其以數組的形式聲明,通過這個結構體,對所有交換區間進行管理,其具體管理方法還是和記憶體的管理有一定區別的,比如被多個使用者使用的時候,假如對其進行釋放,只會對其記錄使用者數目的個數進行操作,當使用者減少到0的時候才會真正空閑,而記憶體的管理中,假如一個使用者對這段記憶體進行釋放的,而另外使用者還在只用這段記憶體的話,那結果就會出現程式員們最頭疼的問題“段錯誤”,也叫“記憶體溢出”。。。

 

    基本對記憶體交換的方法就說到這了,多的也沒啥說的了,今天到此為止,可以睡覺嘍~~~

    今天在公司對一個新的可能的項目進行了評估,效果還不錯,感謝Wubq的協助,還有zouj的協助,不過做完的時候別個都下班走了。。。明天叫他們來看,可能的話要是我負責這個項目就好了,畢竟核心部分我已經做出來了嘛,呵呵,好好工作,多掙錢,早買房,不過理想還是要堅持的,呵呵       

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.