Де PCB в Linux


10

Друкована плата або блок управління процесом визначається таким чином у Вікіпедії

Блок управління процесом (PCB, який також називається блоком контролю завдань, [1] Структура завдань або Switchframe) - це структура даних в ядрі операційної системи, що містить інформацію, необхідну для управління певним процесом. Друкована плата - це прояв процесу в операційній системі

і його обов'язок:

Process identification data
Processor state data
Process control data

То де можна знайти друковану плату процесу?


Також див. Блок керування процесом в Linux на стеку переповнення.

Відповіді:


15

У ядрі Linux кожен процес представлений task_structу подвійно пов'язаному списку, головою якого є init_task(pid 0, а не pid 1). Це зазвичай називають таблицею процесів .

У режимі користувача таблиця процесів видима звичайним користувачам під /proc. Візьміть заголовки до свого питання:

  • Дані ідентифікації процесу - це ідентифікатор процесу (який знаходиться на шляху /proc/<process-id>/...), командний рядок ( cmd) та, можливо, інші атрибути залежно від вашого визначення поняття "ідентифікація".

  • Дані стану процесу включає в себе дані планування ( sched, statі schedstat), то , що процес в даний час очікування на ( wchan), його оточення ( environ) і т.д.

  • Дані управління процесом можна сказати як його облікові дані ( uid_map) та обмеження ресурсів ( limits).

Отже, все залежить від того, як ви визначаєте свої умови ... але загалом усі дані про процес можна знайти в /proc.


"голова якої init_task(pid 0, не pid 1)" Немає такого поняття, як init_task. Це init, а його під - 1, а не 0 (підтверджено через pidof init).
ОлександрH

1
@AleksandrH init_task - це структура ядра, а не процес. Він вказує на простою задачу, внутрішньо представлену pid 0. init_task і init - це абсолютно різні речі.
Flup

І поки pidце лише для процесів ...
ОлександрH

1
@AleksandrH Прочитайте init / init_task.c у дереві джерела ядра ( github.com/torvalds/linux/blob/master/init/init_task.c ).
Flup
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.