[理工] OS PCB與TCB

作者: godjoker87 (小吳君)   2022-02-02 10:08:49
如題,想問一些觀念
Kernel會幫process建立PCB
保存process state,pc,page table等資訊
但kernel也會幫助thread建立TCB
會有自己的register set,stack pointer之類的
聽起來是不是PCB的某些資訊好像沒有這麼必要(?
像是PCB的PC 因為每個thread都有自己的PC
想問PCB和TCB有哪些資訊不同
然後同一個process的不同thread會共享同一個PCB嗎?
再麻煩大神解答了 非常感謝
作者: TWkobe (中華柯比)   2022-02-02 12:10:00
怎麼會不重要,以課本的模型來說你不保留PCB那process之間溝通要看什麼?
作者: b0920075 (Void)   2022-02-02 12:11:00
問這種問題應該先講明要討論哪個 kernel
作者: godjoker87 (小吳君)   2022-02-02 14:20:00
T大 我有大概明白PCB的重要性 只是覺得某些資訊好像沒有這麼必要(像是我前面講的pc還有reg set,stack pointer之類的) 不確定是否有PCB保存一份TCB 又一份的必要性 還是PCB沒有這些資訊是我記錯想問b大不同kernel 是什麼意思 我的理解是kernel 就是OS 還是不同作業系統處理方式不一樣嗎?
作者: lienasd126 (迷途の獅子)   2022-02-02 14:38:00
我覺得要看是哪種模型,如果是many-to-one ,PCB還是要保存thread之間共享的資源那些,這樣在做user thread的切換時才能繼續上一個,我覺得是這樣
作者: plsmaop (plsmaop)   2022-02-02 20:18:00
Linux 的 pcb tcb 都是 task struct,tcb 就只是某些欄位沒在用Thread 的 task struct 會用 pointer 指向 main thread的 task struct
作者: godjoker87 (小吳君)   2022-02-02 22:14:00
感謝l大及p大~~大概了解運作模式了

Links booklink

Contact Us: admin [ a t ] ucptt.com