五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

獨(dú)家揭秘Linux內(nèi)核棧:內(nèi)核態(tài)的奇妙之處和與用戶態(tài)的差異

2023-08-08 16:30 作者:大方老師單片機(jī)課堂  | 我要投稿

理解Linux內(nèi)核棧可以從以下幾個(gè)方面來考慮:

內(nèi)核態(tài)與用戶態(tài):在閱讀Linux內(nèi)核及相關(guān)資料時(shí),需要明確它所描述的是內(nèi)核態(tài)還是用戶態(tài)的內(nèi)容。這有助于理解所討論的是在哪個(gè)執(zhí)行環(huán)境下進(jìn)行的操作。

進(jìn)程與線程的描述:用戶態(tài)的進(jìn)程和線程在內(nèi)核中都使用一個(gè)task_struct結(jié)構(gòu)實(shí)例進(jìn)行描述。類似于設(shè)計(jì)模式中的橋接模式(handle-body),用戶態(tài)所看到的進(jìn)程PID和線程TID可以視為handle,而task_struct就是body。

堆和棧的用戶態(tài)概念:C語(yǔ)言書籍中對(duì)堆和棧的大部分討論都是針對(duì)用戶態(tài)的概念。用戶態(tài)的堆和棧對(duì)應(yīng)于用戶進(jìn)程虛擬地址空間中的某個(gè)區(qū)域,棧向下增長(zhǎng),堆通過malloc分配,向上增長(zhǎng)。

用戶空間堆棧的描述:用戶空間堆棧在task_struct->mm->vm_area中進(jìn)行描述,它們都屬于進(jìn)程虛擬地址空間的一個(gè)區(qū)域。

內(nèi)核態(tài)的棧描述:內(nèi)核態(tài)的棧描述在task_struct->stack中,棧的底部是thread_info對(duì)象。通過thread_info對(duì)象可以快速獲取task_struct對(duì)象。整個(gè)棧區(qū)域通常只有一頁(yè)內(nèi)存(可配置),在32位系統(tǒng)中為4KB。

進(jìn)程的內(nèi)核棧:因此,進(jìn)程的內(nèi)核棧也是進(jìn)程私有的,只需從task_struct->stack獲取即可。

內(nèi)核態(tài)的堆概念:內(nèi)核態(tài)沒有進(jìn)程堆的概念,內(nèi)存分配使用kmalloc()函數(shù),實(shí)際上是由Linux內(nèi)核統(tǒng)一管理的。一般情況下,使用slab分配器,它是一個(gè)內(nèi)存緩存池,管理所有可通過kmalloc()分配的內(nèi)存。因此,從原理上看,在Linux內(nèi)核態(tài),kmalloc分配的內(nèi)存可以被所有運(yùn)行在Linux內(nèi)核態(tài)的任務(wù)訪問到。

通過以上解析,我們可以更好地理解Linux內(nèi)核棧及其與用戶態(tài)堆棧和內(nèi)核態(tài)堆的區(qū)別與聯(lián)系。

剛好,我這里有上位機(jī)入門,學(xué)習(xí)線路圖,各種項(xiàng)目,需要留個(gè)6。



獨(dú)家揭秘Linux內(nèi)核棧:內(nèi)核態(tài)的奇妙之處和與用戶態(tài)的差異的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
福泉市| 江油市| 贺州市| 定兴县| 桑日县| 沙雅县| 云安县| 梁山县| 崇明县| 沅江市| 浙江省| 资中县| 松阳县| 彰化县| 本溪| 新源县| 尼勒克县| 武清区| 高尔夫| 文化| 平遥县| 阳曲县| 永吉县| 黑山县| 二连浩特市| 信宜市| 顺义区| 琼结县| 墨竹工卡县| 建瓯市| 宝兴县| 高清| 尼木县| 逊克县| 简阳市| 宜宾县| 奎屯市| 谢通门县| 辽源市| 阳高县| 通渭县|