Linux的進程與記憶體管理

來源:互聯網
上載者:User

Linux的進程與記憶體管理 學習這麼linux這麼長時間了,感覺還是沒有深入進去了,今天重新看了一遍linux記憶體管理機制,將這些零碎的筆記寫下來,以後也方便記憶,感覺現在真的是很喜歡linux,嘿嘿~  www.2cto.com   Linux記憶體管理的基礎知識 記憶體管理程式提供以下一些功能 1:大地址空間,使用者程式使用的記憶體數量可以超過物理上實際所有的記憶體數量 2:記憶體保護,進程的記憶體是私人的,不能被其他的進程所讀取和修改,而且記憶體管理程式可以防止進程覆蓋代碼和唯讀資料 3:記憶體映射,可以把一個檔案對應到虛擬記憶體地區,並把該檔案當作記憶體來訪問 4;對實體記憶體的公平訪問,記憶體管理程式確保所有的進程都能公平的訪問電腦的記憶體資源,這樣可以確保理想的系統效能 5:共用虛擬記憶體,記憶體管理程式允許共用他們的一部分  www.2cto.com  儲存空間:在32為儲存系統中,儲存空間的位址範圍從0*00000000到0*xFFFFFFFF。共4G儲存範圍 2:記憶體空間:系統的記憶體空間特指上面的RAM記憶體空間 3:記憶體頁:Linux是以頁為單位來管理實體記憶體的,一頁大小一般等於4096B。也頁容量越大,系統中可能存在的記憶體片段越多  進程記憶體管理 對於任何一個普通檔案來講,都會涉及5種不同的資料區段,即程式碼片段,資料區段,BBS段,堆和棧 1:程式碼片段,程式碼片段用來存放可執行檔的操作指令,也就是說它是可執行程式在記憶體中的映像。程式碼片段需要防止在運行時被非法修改,所以只能運行讀取操作,不允許寫入操作 2:資料區段;資料區段用來存放可執行檔中已經初始化的全域變數,換句話說就是存放程式的靜態分配的變數和全域變數 3:BBS段,BBS段包含了程式中未初始化的全域變數,在記憶體中BBS全部置零 4:堆(heap)堆用於存放進程中運行中被動態分配的記憶體段,它的大小並不固定,可以擴張或縮減。當進程調用malloc等函數分配記憶體時,新分配的記憶體就被動態添加到堆上,當利用free函數釋放記憶體時,被釋放的記憶體從堆中刪除 5:棧,棧是使用者存放程式臨時建立的局部變數。由於棧有先進先出的特點,所以特別方便用來儲存/恢複調用現場 ~進程記憶體的分配與釋放 建立進程fork(),程式載入execve(),對應檔mmap(),動態記憶體分配malloc()等進程相關操作都需要分配記憶體給進程。不過這時進程申請和獲得的還不是實際的記憶體,而是虛擬記憶體。進程所能直接操作的地址讀為虛擬位址,當進程沒有獲得實體記憶體時,從核心獲得的僅僅是虛擬記憶體地區,而不是實際的物理地址,進程沒有獲得實體記憶體,獲得僅僅是對一個新的線性地址的使用權。實際的實體記憶體只有當進程真的去訪問新擷取的虛擬位址時,才會由“請求頁機制”產生缺頁中斷,從而進入分配實際頁面的常式。  虛擬空間的管理 核心空間和使用者空間 在linux系統中,核心在最進階執行,也稱為“系統態”,在這一級可以執行任何操作。而在應用程式則執行在最低級,即所謂的“使用者態”。在這一級處理器禁止對硬體的直接存取和對記憶體的未授權訪問。模組是在所謂的“核心空間”中啟動並執行,而應用程式則是在“使用者空間啟動並執行”。他們分別應用不同的記憶體映射,也就是程式碼使用不同的“地址空間”。 模組的作用就是擴充核心的功能,是運行在核心空間的模組化代碼。模組的某些函數作為系統調用執行,而某些函數則負責處理中斷。各個模組被分別編譯並串連成一組目標檔案,這些檔案能被載入正在啟動並執行核心,或從正在啟動並執行核心中卸載。模組採用的是另一種途徑,核心提供一個插槽,它就像一個外掛程式,在需要時,插入核心中使用,不需要從核心中拔出。 核心模組與應用程式存在這區別。應用程式從頭到尾完成一個任務,而模組則是為以後處理某些請求而註冊自己,完成這個任務後,它的主函數就立即中止了。 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.