Eine Leiterplatte ist ein Prozesssteuerungsblock , dies ist die Definition in Wikipedia
Process Control Block (PCB, auch Task Controlling Block, [1] Task Struct oder Switchframe genannt) ist eine Datenstruktur im Betriebssystemkern, die die Informationen enthält, die zum Verwalten eines bestimmten Prozesses erforderlich sind. Die Leiterplatte ist "die Manifestation eines Prozesses in einem Betriebssystem
und seine Pflicht ist:
Process identification data
Processor state data
Process control data
Wo befindet sich also die Leiterplatte eines Prozesses?
Antworten:
Im Linux-Kernel wird jeder Prozess durch eine
task_struct
doppelt verknüpfte Liste dargestellt, deren Kopfinit_task
(pid 0, nicht pid 1) lautet . Dies ist allgemein als Prozesstabelle bekannt .Im Benutzermodus ist die Prozesstabelle für normale Benutzer unter sichtbar
/proc
. Nehmen Sie die Überschriften für Ihre Frage:Prozessidentifikationsdaten sind die Prozess-ID (die sich im Pfad befindet
/proc/<process-id>/...
), die Befehlszeile (cmd
) und möglicherweise andere Attribute, abhängig von Ihrer Definition von "Identifikation".Prozessstatusdaten umfassen Planungsdaten (
sched
,stat
undschedstat
), worauf der Prozess gerade wartet (wchan
), seine Umgebung (environ
) usw.Prozesssteuerungsdaten können als Anmeldeinformationen (
uid_map
) und Ressourcenlimits (limits
) bezeichnet werden.Es hängt also alles davon ab, wie Sie Ihre Begriffe definieren ... aber im Allgemeinen finden Sie alle Daten zu einem Prozess in
/proc
.quelle
init_task
(pid 0, nicht pid 1)" Es gibt keineinit_task
. Es istinit
und seine PID ist 1, nicht 0 (bestätigt überpidof init
).pid
ist nur für Prozesse ...