2012-02-29 3 views
5

A process control block (PCB) e un Thread Control Block (TCB) sono entrambi utilizzati nei kernel Linux per avere tempo sulla CPU a loro delegata. Quali sono le differenze tra i due?Qual è la differenza B/W TCB (blocco controllo filettatura) e PCB (processo)

Quali informazioni vengono generalmente mantenute in un blocco di controllo del processo (PCB)?

+1

Sembra che questa risposta dipenda molto dalla versione del sistema operativo. Cura di modificare la domanda e chiedere una risposta Linux per ottenere più specifici? – Gray

+0

Ho apportato la modifica sopra. Grazie! –

+0

Perché non dare un'occhiata alle definizioni attuali? È tutto open source e molte persone hackerano il kernel di Linux, quindi dovrebbe essere abbastanza facile entrare e capire. – Novelocrat

risposta

8

Alcuni campi notevoli che potrebbero contenere il PCB sono id di processo, id del gruppo di processi, processo padre e processi figlio, puntatore dell'heap, contatore del programma, stato di pianificazione (in esecuzione, pronto, bloccato), autorizzazioni (quali risorse di sistema il processo è autorizzato ad accedere), il contenuto dei registri di scopo generale e file aperti.

TCB ha alcuni degli stessi campi del PCB (valori di registro, puntatore dello stack, contatore del programma, stato di pianificazione), oltre ad alcuni valori specifici come l'id del thread e un puntatore al processo che contiene quel thread . Nota che non c'è protezione tra i thread.

In Linux è presente una struct task_struct che memorizza le informazioni su un thread o un processo. È dichiarato in sched.h.

2

Il PCB memorizza le informazioni sul processo del kernel. Come adressspaces ecc ...

Un processo può includere diversi thread del kernel. Entrambi sono gestiti dal dispatcher e dal programmatore.

Il TCB include informazioni specifiche sui thread.

1

'Un blocco di controllo del processo (PCB) e un Thread Control Block (TCB) sono entrambi utilizzati nei kernel per avere del tempo sulla CPU a loro delegata' - normalmente, no. Un PCB avrà uno o più TCB collegati ad esso. Il TCB descrive un contesto di esecuzione, (ad esempio il puntatore dello stack), il PCB un contesto ambientale, (ad esempio segmenti di memoria e permessi).