色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看


Linux下進程的內存結構

分享到:
           

    Linux操作系統采用虛擬內存管理技術,使得每個進程都有各自互不干涉的進程地址空間。該地址空間是大小為4GB的線性虛擬空間,用戶所看到和接觸到的都是該虛擬地址,無法看到實際的物理內存地址。利用這種虛擬地址不但能起到保護操作系統的效果(用戶不能直接訪問物理內存),而且更重要的是,用戶程序可以使用比實際物理內存更大的地址空間。

    4GB的進程地址空間會被分成兩個部分:用戶空間與內核空間。用戶地址空間是從0到3GB(0xC0000000),內核地址空間占據3GB到4GB。用戶進程在通常情況下只能訪問用戶空間的虛擬地址,不能訪問內核空間的虛擬地址。只有用戶進程使用系統調用(代表用戶進程在內核態執行)時可以訪問到內核空間。每當進程切換時,用戶空間就會跟著變化;而內核空間由內核負責映射,它并不會跟著進程改變,是固定的。內核空間地址有自己對應的頁表,用戶進程各自有不同的頁表。每個進程的用戶空間都是完全獨立、互不相干的。進程的虛擬內存地址空間如圖3.3所示,其中用戶空間包括以下幾個功能區域。

    ● 只讀段:包含程序代碼(.init和.text)和只讀數據(.rodata)。
    ● 數據段:存放的是全局變量和靜態變量。其中可讀可寫數據段(.data)存放已初始化的全局變量和靜態變量,BSS數據段(.bss)存放未初始化的全局變量和靜態變量。
    ● 堆:由系統自動分配釋放,存放函數的參數值、局部變量的值、返回地址等。
    ● 堆棧:存放動態分配的數據,一般由程序員動態分配和釋放。若程序員不釋放,程序結束時可能由操作系統回收。
    ● 共享庫的內存映射區域:這是Linux動態鏈接器和其他共享庫代碼的映射區域。


圖3.3 進程的虛擬內存地址空間

    由于在Linux系統中每一個進程都會有/proc文件系統下與之對應的一個目錄(如將init進程的相關信息在/proc/1目錄下的文件中描述),因此通過proc文件系統可以查看某個進程的地址空間的映射情況。例如,運行一個應用程序(示例中的可運行程序是在/home/david/project/目錄下的test文件),如果它的進程號為13703,則輸入“cat /proc/13703/maps”命令,可以查看該進程的內存映射情況,其結果如下:

    $ cat /proc/13703/maps
    /* 只讀段:代碼段、只讀數據段 */
    08048000-08049000 r-xp 00000000 08:01 876817 /home/david/project/test
    08049000-0804a000 r--p 00000000 08:01 876817 /home/david/project/test
    /* 可讀寫數據段 */
    0804a000-0804b000 rw-p 00001000 08:01 876817 /home/david/project/test
    0804b000-0804c000 rw-p 0804b000 00:00 0
    08502000-08523000 rw-p 08502000 00:00 0 [heap] /* 堆 */
    b7dec000-b7ded000 rw-p b7dec000 00:00 0
    /* 動態共享庫 */
    b7ded000-b7f45000 r-xp 00000000 08:01 541691
    /lib/tls/i686/cmov/libc-2.8.90.so
    b7f45000-b7f47000 r--p 00158000 08:01 541691
    /lib/tls/i686/cmov/libc-2.8.90.so
    b7f47000-b7f48000 rw-p 0015a000 08:01 541691
    /lib/tls/i686/cmov/libc-2.8.90.so
    b7f48000-b7f4b000 rw-p b7f48000 00:00 0
    b7f57000-b7f5a000 rw-p b7f57000 00:00 0
    /* 動態鏈接器 */
    b7f5a000-b7f74000 r-xp 00000000 08:01 524307 /lib/ld-2.8.90.so
    b7f74000-b7f75000 r-xp b7f74000 00:00 0 [vdso]
    b7f75000-b7f76000 r--p 0001a000 08:01 524307 /lib/ld-2.8.90.so
    b7f76000-b7f77000 rw-p 0001b000 08:01 524307 /lib/ld-2.8.90.so
    bff61000-bff76000 rw-p bffeb000 00:00 0 [stack] /* 堆棧 */

    本文選自華清遠見嵌入式培訓教材《從實踐中學嵌入式Linux應用程序開發》

   熱點鏈接:

   1、Linux下進程的創建、執行和終止
   2、Linux下的進程結構
   3、Linux下多任務系統之進程的基本概念
   4、Linux下多任務系統之任務介紹
   5、實驗:Linux下多路復用式串口操作

更多新聞>> 

前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2024 北京华清远见科技发展有限公司 版权所有 ,京ICP备16055225号-5,京公海网安备11010802025203号

回到顶部

主站蜘蛛池模板: 国产av无码专区亚洲av软件 | 最近2018中文字幕免费看2019 | 亚洲AV无码一区二区三区人 | 人人澡 人人澡 人人看欧美 | 爽爽影院线观看免费 | 一二三四在线观看免费高清视频 | 国产高清中文手机在线观看 | 四虎成人精品永久免费av | 国产精品69人妻我爱绿帽子 | 精品无码国产AV一区二区三区 | 美女裸体无遮挡免费视频网站 | 欧美三区二区 | 亚洲色欲在线播放一区二区三区 | 亚洲男人第一天堂 | 欧美老人巨大xxxx做受视频 | 性欧美大战久久久久久久 | 青青青久久久 | 最爱高潮全过程免费的视频 | 脱美女内衣视频网站 | 长腿校花无力呻吟娇喘 | 亚洲h片在线观看 | 99视频国产在线 | 最新中文字幕一区二区三区 | 人妻无码αv中文字幕久久 在线免费精品视频 | 怡红院AV亚洲一区二区三区H | 好深好爽办公室做视频 | 成人无遮挡裸免费视频在线观看 | 国产色秀视频在线播放 | 一二三四在线视频观看社区 | 色婷婷五月综合欧美图片 | 国产女人被狂躁到高潮小说 | 美脚丝袜一区二区三区在线观看 | 视频一区 中文字幕 | www.成人精品免费网站青椒 | 欧美视频无砖专区一中文字目 | 欧美成人成人A片在线乱码视频 | 亚洲综合另类小说专区 | 色屁屁WWW影院免费观看 | 国产人妻久久精品一区二区三区 | 亚洲av永久精品无码 | 在线综合亚洲欧洲综合网站 |