PCB lub blok sterowania procesem zdefiniowano w Wikipedii w ten sposób
Blok sterowania procesami (PCB, zwany także Blokiem Kontroli Zadań, [1] Strukturę Zadań lub Switchframe) to struktura danych w jądrze systemu operacyjnego zawierająca informacje potrzebne do zarządzania określonym procesem. PCB jest „manifestacją procesu w systemie operacyjnym
a jego obowiązkiem jest:
Process identification data
Processor state data
Process control data
Gdzie więc można znaleźć PCB procesu?
Odpowiedzi:
W jądrze Linuksa każdy proces jest reprezentowany przez
task_struct
podwójnie połączoną listę, której głową jestinit_task
(pid 0, a nie pid 1). Jest to powszechnie znane jako tabela procesów .W trybie użytkownika tabela procesów jest widoczna dla zwykłych użytkowników poniżej
/proc
. Przejrzyj nagłówki swojego pytania:Dane identyfikujące proces to identyfikator procesu (który znajduje się na ścieżce
/proc/<process-id>/...
), wiersz poleceń (cmd
) i ewentualnie inne atrybuty w zależności od definicji „identyfikacji”.Dane stan procesu zawiera dane harmonogramu (
sched
,stat
ischedstat
), jakie proces jest aktualnie oczekujących na (wchan
), jego środowisko (environ
) itd.Można powiedzieć, że dane kontroli procesu to poświadczenia (
uid_map
) i limity zasobów (limits
).Wszystko zależy więc od tego, jak zdefiniujesz swoje terminy ... ale ogólnie wszystkie dane na temat procesu można znaleźć w
/proc
.źródło
init_task
(pid 0, nie pid 1)” Nie ma czegoś takiego jakinit_task
. Jestinit
, a jego pid wynosi 1, a nie 0 (potwierdzone przezpidof init
).pid
dotyczy tylko procesów ...