聊一聊內存管理(2)

在上一講咱們給你們重點介紹了什麼是內存管理,讓你們對內存管理有了總體的認識。簡單來講就是,程序的運行須要內存,你如何管理並給這些程序分配內存。操作系統

 

本節咱們來給你們介紹最簡單的一種內存管理方案:單一連續區分配。爲何說這種內存分配是最簡單的呢?接下來咱們就作詳細的介紹。進程

 

單一連續區內存分配的基本思想是一段時間內只有一個進程在內存。咱們將4G的內存分爲兩部分,一部分存放操做系統內核,另一部分存放用戶程序,且一段時間內只有一個用戶程序在內存中。如圖1-1所示:內存

 

圖1- 1 單一連續區內存分配內存管理

 

T1時刻有進程P1,須要512MB的內存,那麼將內存分配給P1,如圖1-2所示;程序

T2時刻有進程P2,須要1GB的內存,因爲單一連續區內存分配的特色,此時用戶區已經有了P1在執行,即時剩餘內存充足,P2也沒法運行,只有在P1運行結束並釋放內存以後才能運行P2。方法

圖1- 2 進程 P1的內存分佈im

 

從上面的分析你們能夠看到這種內存分配方式很是的簡單,能夠說沒有什麼方法比這種還要簡單的了。可是缺點也很是明顯:經驗

  • 一段時間內只能運行一個程序,所以沒法實現多道程序;內存分配

  • 在運行一個進程後,即便有足夠的剩餘內存也沒法執行新的進程,而只有等待該進程運行結束後才能繼續執行,所以內存的利用率至關的低;img

  • 若是進程所需的內存大於用戶程序的總大小,則該進程將沒法獲得運行,所以對要運行的進程有很大的限制條件,不是什麼進程均可以運行的。

 

相信看到這裏,你們應該都能感覺到,當咱們遇到問題的時候,根據咱們的經驗積累會想到一種簡單的解決思路,可是通過分析咱們會發現這種解決問題的方法會有不少的問題,那麼接下來咱們就會分析這些問題,並提出新的的方法,如此反覆,不斷的提出新問題,不斷的提出新方案解決新的問題,科技所以纔不斷的進步。

 

關於內存管理,你有什麼更好的思路呢?歡迎留言。

相關文章
相關標籤/搜索