[理工] User thread 以及 kernel thread的觀念

作者: a7879210 (宇哦)   2021-06-18 16:14:44
各位好 最近在閱讀OS此小節時
翻過恐龍原文書以及補習班筆記都看不太懂這兩個的定義
我自己是這樣理解
user thread就是user由user-level的thread library呼叫一些api創建出來,os不知道這
些user thread的存在,但os知道由os管理的kernel thread的存在,所以user thread如
果要在CPU上執行或是要呼叫system call請求OS提供服務,必須mapping到os所管理的ker
nel thread才能讓os知道,以便提供服務以及資源分配還有在CPU上執行
以上是我從user thread以及kernel thread對於multiprocessor架構上的效率優劣猜想出
來的,不知道我下面畫的圖又對應到CPU這樣子對不對?
https://i.imgur.com/oQeefhM.jpg
所以CPU真正執行的thread其實是以kernel thread為最小單位
想請問我這樣理解是否有錯…謝謝各位
作者: kyuudonut (善良老百姓)   2021-06-18 18:29:00
你理解到這樣就差不多了,別太鑽牛角尖,Linux 也不是長這樣 (′・_・`)所以你網路上找到的資料只會越查越亂考試就多做考古題,多看補習班解答或是版友擬答,揣摩自己答案是什麼; 考試嘛 (′_ゝ`)如果對現代系統有興趣,可以去找一下 Linux process 跟Scheduler 的東西來看
作者: plsmaop (plsmaop)   2021-06-18 22:37:00
Linux 最小執行單位是 task,process 跟Thread 都是 task
作者: a7879210 (宇哦)   2021-06-18 23:36:00
好的 了解 感謝各位!

Links booklink

Contact Us: admin [ a t ] ucptt.com