五月天青色头像情侣网名,国产亚洲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ó)家法律
广东省| 徐水县| 乐东| 永城市| 嘉鱼县| 如皋市| 洛南县| 上栗县| 古田县| 团风县| 定结县| 大余县| 灵宝市| 红桥区| 禹城市| 南木林县| 荣成市| 革吉县| 大连市| 桃江县| 沐川县| 开远市| 甘孜县| 安庆市| 嘉黎县| 乌恰县| 曲沃县| 靖州| 石景山区| 浮山县| 习水县| 夏河县| 泸水县| 大竹县| 阳春市| 贺州市| 紫金县| 尚志市| 句容市| 师宗县| 阳西县|