操作系統(tǒng)線程問(wèn)題

內(nèi)核線程和用戶(hù)線程區(qū)別:

內(nèi)核未知的是用戶(hù)級(jí)線程, 而內(nèi)核層的線程則知道內(nèi)核線程。

在使用 M:1 或 M:1N映射的系統(tǒng)上, 用戶(hù)線程由線程庫(kù)調(diào)度, 內(nèi)核調(diào)度內(nèi)核線程

內(nèi)核線程不需要與進(jìn)程關(guān)聯(lián), 而每個(gè)關(guān)心的用戶(hù)線程都屬于一個(gè)進(jìn)程。內(nèi)核線程通常比用戶(hù)線程維護(hù)成本更高, 因?yàn)樗鼈儽仨毷怯脙?nèi)核數(shù)據(jù)結(jié)構(gòu)表示的。



描述內(nèi)核為在內(nèi)核級(jí)線程之間進(jìn)行上下文切換所采取的操作

內(nèi)核線程之間的上下文切換通常需要保存正在切換的線程中的 cpu 寄存器的占用值, 并恢復(fù)正在計(jì)劃的新線程的 CPU 寄存器


創(chuàng)建線程時(shí)使用了哪些資源?它們與創(chuàng)建進(jìn)程時(shí)使用的方法有何不同?

由于線程比進(jìn)程小, 因此線程創(chuàng)建通常比進(jìn)程創(chuàng)建使用較少的資源。創(chuàng)建一個(gè)進(jìn)程需要分配一個(gè)過(guò)程控制塊 (PCB), 一個(gè)相當(dāng)大的數(shù)據(jù)結(jié)構(gòu)。PCB 包括內(nèi)存映射、打開(kāi)文件列表和環(huán)境管理變量。分配和管理內(nèi)存映射通常是最耗時(shí)的活動(dòng)。創(chuàng)建用戶(hù)或內(nèi)核線程介紹涉及分配一個(gè)小數(shù)據(jù)結(jié)構(gòu)來(lái)保存寄存器集、堆棧、和優(yōu)先級(jí)



假設(shè)操作系統(tǒng)使用多對(duì)多模型將用戶(hù)級(jí)線程映射到內(nèi)核接口, 并且映射是通過(guò)修文 Lwp 完成的。此外, 該系統(tǒng)還允許開(kāi)發(fā)人員創(chuàng)建實(shí)時(shí)線程, 以便在實(shí)時(shí)系統(tǒng)中使用。是否有必要將實(shí)時(shí)的涉程線程綁定到 LWP?解釋

是的。計(jì)時(shí)對(duì)于實(shí)時(shí)應(yīng)用程序至關(guān)重要。如果線程被標(biāo)記為實(shí)時(shí)模式, 但未綁定到 LWP, 則該線程可能需要等待將該線程附加到 LWP, 然后才能運(yùn)行??紤]實(shí)時(shí)線程是否正在運(yùn)行 (附加到 LWP), 然后繼續(xù)阻止 (即必須是太優(yōu)先級(jí)的實(shí)時(shí)線程搶占了, 或者是在等待互斥鎖等)。當(dāng)實(shí)時(shí)線程被 阻塞時(shí), 它所附加的 LWP 已分配給另一個(gè)線程. 當(dāng)實(shí)時(shí)線程已計(jì)劃再次運(yùn)行時(shí), 它必須首先進(jìn)行源等待, 才能連接到 LWP。通過(guò)將 LWP 綁定到實(shí)時(shí)線程介紹器, 您可以確保線程在計(jì)劃后能夠以最小的延遲運(yùn)行。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容