日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Linux學習筆記5——虛擬內存

系統 2265 0

一、為什么要有虛擬內存

  虛擬內存的提出,是為了禁止用戶直接訪問物理存儲設備,有助于系統穩定。

?

二、為什么一個程序不能訪問另外一個程序的地址指向的空間

  1:每個程序的開始地址0x80084000

  2:程序中使用的地址不是物理地址,而是邏輯地址(虛擬內存).
?????? 邏輯地址僅僅是編號.編號使用int 4字節整數表示.
?????? 2^32=4294967296=4G
????? ?每個程序提供了4G的訪問能力

?

三、內存映射

  邏輯地址與物理地址關聯的過程是內存映射。

  虛擬地址與物理地址映射的時候有一個基本單位:至少會映射4K。

  段錯誤:無效訪問. 那段內存沒有映射,訪問的內存超出了系統所給這個程序的內存空間。

  合法訪問:比如malloc分配的空間之外的空間可以訪問,但訪問非法。因是越界訪問

?

四、虛擬內存的分配

  分配釋放內存:???int brk(void *end);   //分配空間,釋放空間

         ?void *sbrk(int size);  //返回空間地址

  應用:1.使用sbrk分配空間

  ? ??????2.使用sbrk得到沒有映射的虛擬地址.
?      第一次調用sbrk,sbrk(0)得到的是沒有映射的虛擬首地址。

  ? ??????3.使用brk分配空間

  ? ??????4.使用brk釋放空間

?

  sbrk(int? size):如果是第一次運行,則返回沒有映射的空閑空間首地址,同時產生一個數據:指向地址

???? ?sbrk與brk后臺系統維護一個指針,指針默認是null。

???? ?調用sbrk,判定指針是否是0,是:得到大塊空閑空間的首地址初始化指針.同時把指針+size????

?????? ???????????????????????????????? 否:返回指針,并且把指針位置+size

Linux學習筆記5——虛擬內存


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 彰化县| 蒙阴县| 屏南县| 阳朔县| 莱州市| 讷河市| 岚皋县| 四子王旗| 南川市| 萝北县| 克东县| 米脂县| 湖口县| 靖远县| 马尔康县| 即墨市| 六枝特区| 齐齐哈尔市| 宁晋县| 卢湾区| 长兴县| 龙陵县| 吉安市| 梅河口市| 宝山区| 宕昌县| 洛阳市| 玉门市| 荆门市| 麻栗坡县| 象州县| 武功县| 吴忠市| 贵阳市| 会宁县| 平陆县| 高青县| 宜章县| 宁乡县| 浏阳市| 肥东县|