В чем разница Ч / Б TCB (Блок управления резьбой) и PCB (Процесс) - PullRequest
6 голосов
/ 29 февраля 2012

A блок управления процессом (PCB) и блок управления потоком (TCB) оба используются в ядрах Linux, чтобы иметь время на делегированном им процессоре. В чем разница между двумя?

Какая информация обычно хранится в блоке управления процессом (PCB)?

Ответы [ 3 ]

8 голосов
/ 19 февраля 2014

Некоторые заметные поля, которые может содержать PCB, - это идентификатор процесса, идентификатор группы процессов, родительский процесс и дочерние процессы, указатель кучи, счетчик программ, состояние планирования (работает, готово, заблокировано), разрешения (какие системные ресурсы используютсяпроцессу разрешен доступ к содержимому регистров общего назначения и открытым файлам.

TCB имеет несколько таких же полей, что и PCB (значения регистров, указатель стека, счетчик программ, состояние планирования), вдополнение к нескольким конкретным значениям, таким как идентификатор потока и указатель на процесс, который содержит этот поток.Обратите внимание, что между потоками нет защиты.

В Linux существует структура task_struct, в которой хранится информация о потоке или процессе.Объявлено в sched.h .

2 голосов
/ 29 февраля 2012

PCB хранит информацию о процессе ядра. Как адресные пространства и т. Д. *

Процесс может включать в себя различные потоки ядра. Оба управляются диспетчером и планировщиком.

TCB содержит информацию, специфичную для потока.

1 голос
/ 29 февраля 2012

«Блок управления процессом (PCB) и блок управления потоком (TCB) оба используются в ядрах, чтобы иметь время на делегированном им процессоре» - обычно нет, нет. К плате будет привязан один или несколько TCB. TCB описывает контекст выполнения (например, указатель стека), PCB - контекст среды (например, сегменты памяти и разрешения).

...