Prozesskennung

Im Computer, das Prozesskennung (a.k.a. Prozess ID oder PID) ist eine Zahl, die von den meisten verwendet wird Betriebssystem Kerne- wie die von Unix, Mac OS und Fenster- Einen Aktiven eindeutig identifizieren Prozess. Diese Zahl kann als Parameter in verschiedenen Funktionsaufrufen verwendet werden, sodass Prozesse manipuliert werden können, z. B. die Anpassung der Priorität des Prozesses oder Tötung es insgesamt.

Unix-artig

Im Unix-artig Betriebssysteme, neue Prozesse werden von der erstellt Gabel() Systemanruf. Die PID wird an die zurückgegeben ElternprozessErmöglichen Sie es, es in weiteren Funktionsaufrufen auf das Kind zu verweisen. Der Elternteil kann beispielsweise darauf warten, dass das Kind mit dem endet WAWPID () Funktion oder beenden den Prozess mit töten().

Es gibt zwei Aufgaben mit speziell angesehenen Prozess -IDs: Tausch oder Zeitplan hat Process ID 0 und ist verantwortlich für Pagingund ist tatsächlich eher Teil des Kernels als eines normalen Benutzermodus Prozess. Prozess -ID 1 ist normalerweise die drin Prozess in erster Linie verantwortlich für das Starten und Abschalten des Systems. Ursprünglich war die Prozess -ID 1 von technischen Maßnahmen nicht speziell für Init reserviert: Es hatte einfach eine natürliche Folge, als er der erste Prozess des Kernels aufgerufen wurde. Neuere UNIX -Systeme haben in der Regel zusätzliche Kernelkomponenten, die als „Prozesse“ sichtbar sind. In diesem Fall ist PID 1 aktiv für den Init -Prozess reserviert, um die Konsistenz mit älteren Systemen aufrechtzuerhalten.

Prozess -IDs werden in erster Linie in der Regel sequentiell zugewiesen, ab 0 und steigen auf einen maximalen Wert, der von System zu System variiert. Sobald diese Grenze erreicht ist, startet die Allokation mit 300 neu und steigt erneut. Im Mac OS und HP-UXDie Allokation wird jedoch bei 100 neu gestartet. Dabei werden jedoch alle PIDs, die weiterhin den Prozessen zugeordnet sind, übersprungen. Einige betrachten dies als potenzielle Sicherheitsanfälligkeit, da Informationen über das System extrahiert werden können, oder die Nachrichten, die verdeckt zwischen den Prozessen weitergegeben werden. Implementierungen, die besonders besorgt über Sicherheit sind, können eine andere Methode zur PID -Zuordnung auswählen.[1] Auf einigen Systemen wie MPE/ixDie niedrigste verfügbare PID wird verwendet, manchmal um die Anzahl der Prozess -Kernel -Seiten im Speicher zu minimieren.

Die aktuelle Prozess -ID wird von a bereitgestellt getPid () Systemaufruf oder als Variable $$ in Shell. Die Prozess -ID eines übergeordneten Prozesses ist durch a erhältlich Getppid () Systemanruf.

An LinuxDie maximale Prozess-ID wird durch die Pseudo-Datei angegeben /proc/sys/kernel/pid_max.[2]

Pidfile

Einige Prozesse zum Beispiel die Moc Musikspieler und der Mysql Daemon schreiben Sie ihre PID an einen dokumentierten Dateiort, damit andere Prozesse nachschlagen können.

Microsoft Windows

Auf der Fenster Familie von Betriebssystemen kann die ID des aktuellen Prozesses mit der ID erhalten GetCurrentProcessid () Funktion des Windows -API,[3] und id anderer Prozesse mit Verwendung GetProcessid ().[4] Innen wird die Prozess -ID als a genannt Kunden ID, und wird aus dem gleichen Namespace zugewiesen wie Faden IDs, also überlappen sich diese beiden nie. Das Systemleerlaufprozess wird vergeben id 0. Die Systemprozess wird die Prozess -ID 8 an gegeben Windows 2000 und 4 auf Windows XP und Windows Server 2003.[5] Auf der Windows NT -Familie Von Betriebssystemen sind Prozess- und Thread -Identifikatoren ein Vielfaches von 4, aber nicht Teil der Spezifikation.[6]

Siehe auch

Verweise

  1. ^ Comp.unix.aix stellte häufig Fragen, abgerufen 2008-07-21
  2. ^ "Proc - Prozessinformationen Pseudo -Filesystem", Handbuch des Linux -Programmierers, abgerufen 2009-12-28
  3. ^ "GetCurrentProcessid -Funktion", Windows Dev Center, Microsoft, 5. Dezember 2018
  4. ^ "GetProcessid -Funktion", Windows Dev Center, Microsoft, 5. Dezember 2018
  5. ^ Russsinovich, Mark; David A. Solomon (2005), "Kapitel 2: Systemarchitektur", Microsoft Windows Interna (4. Aufl.), Microsoft Press, p.76, ISBN 0-7356-1917-4
  6. ^ Chen, Raymond (2008-02-28), "Warum sind Prozess- und Thread -IDs Multiples von vier?", Das alte neue Ding, Microsoft