Was bedeutet Prozess unter Linux?

Nov 30, 2021 pm 04:19 PM
linux 进程

Ein Prozess ist eine Instanz eines unter Linux ausgeführten Programms und stellt die Grundeinheit für die Verwaltung von Transaktionen dar. Ein Prozess verfügt über eine eigene unabhängige Verarbeitungsumgebung und Systemressourcen. Der Status eines Prozesses ändert sich, einschließlich Prozesserstellung, -planung und -beendigung.

Was bedeutet Prozess unter Linux?

Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Dell G3-Computer.

Ein Prozess ist eine Instanz eines Programms, das unter Linux ausgeführt wird.

Im Linux-System erledigt das Betriebssystem Aufgaben nacheinander durch Prozesse. Der Prozess ist die Grundeinheit für die Verwaltung von Transaktionen. Der Prozess verfügt über eine eigene unabhängige Verarbeitungsumgebung (z. B. welche Umgebungsvariablen derzeit benötigt werden, wo sich das Verzeichnis befindet, in dem das Programm ausgeführt wird, welcher Benutzer das Programm derzeit ausführt usw.) und Systemressourcen (z. B. CPU-Belegung des Prozessors). , Speicher, I/O-Geräte, Daten, Programme).

Wenn Sie ein Programm in einem Linux-System ausführen, erstellt das System eine spezifische Umgebung für das Programm. Diese Umgebung enthält alles, was das System zum Ausführen des Programms benötigt.

Jedes Mal, wenn Sie einen Befehl unter Linux ausführen, wird ein neuer Prozess erstellt oder gestartet. Wenn Sie beispielsweise versuchen, den Befehl „ls -l“ auszuführen, um den Inhalt eines Verzeichnisses aufzulisten, starten Sie einen Prozess. Wenn auf dem Bildschirm zwei Terminalfenster angezeigt werden, haben Sie möglicherweise dasselbe Terminalprogramm zweimal ausgeführt und es werden zwei Terminalprozesse angezeigt.

In jedem Terminalfenster kann eine Shell ausgeführt werden, und jede ausgeführte Shell ist ein Prozess. Wenn Sie einen Befehl über die Shell aufrufen, wird das entsprechende Programm in einem neuen Prozess ausgeführt. Wenn die Prozessausführung des Programms abgeschlossen ist, wird der Prozess der Shell wieder ausgeführt.

Das Betriebssystem verfolgt Prozesse über einen numerischen Code, der als PID oder Prozess-ID bezeichnet wird. Jeder Prozess im System verfügt über eine eindeutige PID.

Jetzt verwenden wir ein Beispiel, um den Prozess unter Linux zu verstehen. Wir führen den folgenden Befehl in der Shell-Befehlszeile aus:

$ sleep 10 &
[1] 3324
Nach dem Login kopieren

Da das Programm 10 Sekunden wartet, suchen wir schnell nach einem Prozess mit dem Namen „sleep“ in der aktuellen Shell:

$ ps -ef | grep sleep
mozhiyan  3324  5712  cons1  17:11:46  /usr/bin/sleep
Nach dem Login kopieren

Wir sehen, dass der Prozess mit dem Namen /usr/bin/sleep läuft das System (mit der gleichen PID, die wir im vorherigen Befehl erhalten haben).

Jetzt versuchen wir, den obigen Sleep-Befehl von drei verschiedenen Terminalfenstern aus parallel auszuführen. Die Ausgabe des obigen Befehls sieht in etwa wie folgt aus:

$ ps -ef | grep sleep
mozhiyan  896   5712  cons1  17:16:51  /usr/bin/sleep
mozhiyan  5924  5712  cons1  17:16:52  /usr/bin/sleep
mozhiyan  2424  5712  cons1  17:16:50  /usr/bin/sleep
Nach dem Login kopieren

Wir sehen, dass jede Instanz des Sleep-Programms einen separaten Prozess erstellt.

Jeder Linux-Prozess hat eine andere ID-Nummer, die die ID des übergeordneten Prozesses (ppid) ist. Jeder Benutzerprozess im System hat einen übergeordneten Prozess.

Der Befehl „ps -f“ listet die PID und PPID des Prozesses auf. Die Ausgabe dieses Befehls ähnelt der folgenden:

$ ps -f
   UID     PID   PPID    TTY       STIME      COMMAND
mozhiyan  4124   228    cons0    21:37:09   /usr/bin/ps
mozhiyan   228   1      cons0    21:32:23   /usr/bin/bash
Nach dem Login kopieren

Die Befehle, die Sie an der Shell-Befehlszeilen-Eingabeaufforderung ausführen, haben den aktuellen Shell-Prozess als übergeordneten Prozess. Wenn Sie beispielsweise den Befehl ls an der Shell-Befehlszeile eingeben, führt die Shell den Befehl ls aus. Zu diesem Zeitpunkt kopiert der Linux-Kernel die Speicherseite der Shell und führt dann den Befehl ls aus.

Unter Unix wird jeder Prozess mit den Methoden fork und exec erstellt. Dieser Ansatz führt jedoch zu einem Verlust von Systemressourcen.

Unter Linux wird die Fork-Methode mithilfe von Copy-on-Write-Speicherseiten implementiert, sodass nur der Zeit- und Speicherverlust entsteht, der zum Kopieren der Speicherseitentabelle des übergeordneten Prozesses erforderlich ist, und eine eindeutige Aufgabe für den untergeordneten Prozess erstellt wird Struktur.

Der Copy-on-Write-Modus vermeidet das Erstellen unnötiger Strukturkopien beim Erstellen eines neuen Prozesses. Wenn der Benutzer beispielsweise den Befehl ls an der Shell-Befehlszeile ausgibt, erstellt der Linux-Kernel einen untergeordneten Shell-Prozess, dh der Shell-Prozess ist der übergeordnete Prozess und der Befehlsprozess ls ist der untergeordnete Prozess Der Befehlsprozess zeigt auf diese Shell und verwendet dieselbe Speicherseite. Anschließend verwendet der untergeordnete Prozess die Copy-on-Write-Technologie, um den Befehl ls auszuführen.

Prozessstatus

Jeder Linux-Prozess hat seinen eigenen Lebenszyklus, wie Erstellung, Ausführung, Beendigung und Bereinigung. Jeder Prozess verfügt außerdem über einen eigenen Status, der anzeigt, was gerade im Prozess passiert. Der Status eines Prozesses ändert sich, einschließlich Prozesserstellung, -planung und -beendigung.

Der Prozess kann die folgenden Zustände haben:

  • D (ununterbrochener Ruhezustand) – der Prozess schläft und kann erst wieder aufgenommen werden, wenn ein Ereignis eintritt.

  • R (Laufstatus) – Der Prozess wird ausgeführt.

  • S (Ruhezustand) – der Prozess läuft nicht, sondern wartet auf ein Ereignis oder Signal.

  • T (Stoppzustand) – Der Prozess wird durch ein Signal gestoppt, beispielsweise das Signal SIGINT oder SIGSTOP.

  • Z (Zombie-Status) – Prozesse, die mit gekennzeichnet sind, sind Zombie-Prozesse und bleiben bestehen, weil ihr übergeordneter Prozess sie entsprechend zerstört hat. Wenn der übergeordnete Prozess beendet wird, werden diese Prozesse vom Init-Prozess zerstört.

Um den Status des angegebenen Prozesses anzuzeigen, können Sie den folgenden Befehl verwenden:

ps -C processName -o pid=,cmd,stat
Nach dem Login kopieren

Zum Beispiel:

$ ps -C sleep -o pid=,cmd,stat
      CMD       STAT
9434 sleep 20    S
Nach dem Login kopieren

Verwandte Empfehlungen: „Linux Video Tutorial

Das obige ist der detaillierte Inhalt vonWas bedeutet Prozess unter Linux?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie löste ich Berechtigungsprobleme bei der Verwendung von Python -Verssionsbefehl im Linux Terminal? Wie löste ich Berechtigungsprobleme bei der Verwendung von Python -Verssionsbefehl im Linux Terminal? Apr 02, 2025 am 06:36 AM

Verwenden Sie Python im Linux -Terminal ...

Wie konfigurieren Sie die Timing -Timing -Aufgabe von ApScheduler als Dienst auf macOS? Wie konfigurieren Sie die Timing -Timing -Aufgabe von ApScheduler als Dienst auf macOS? Apr 01, 2025 pm 06:09 PM

Konfigurieren Sie die Timing -Timing -Timing -Timing -Timing auf der MacOS -Plattform, wenn Sie die Timing -Timing -Timing -Timing von APScheduler als Service konfigurieren möchten, ähnlich wie bei NGIN ...

Vier Möglichkeiten zur Implementierung von Multithreading in C -Sprache Vier Möglichkeiten zur Implementierung von Multithreading in C -Sprache Apr 03, 2025 pm 03:00 PM

Multithreading in der Sprache kann die Programmeffizienz erheblich verbessern. Es gibt vier Hauptmethoden, um Multithreading in C -Sprache zu implementieren: Erstellen Sie unabhängige Prozesse: Erstellen Sie mehrere unabhängig laufende Prozesse. Jeder Prozess hat seinen eigenen Speicherplatz. Pseudo-MultitHhreading: Erstellen Sie mehrere Ausführungsströme in einem Prozess, der denselben Speicherplatz freigibt und abwechselnd ausführt. Multi-Thread-Bibliothek: Verwenden Sie Multi-Thread-Bibliotheken wie PThreads, um Threads zu erstellen und zu verwalten, wodurch reichhaltige Funktionen der Thread-Betriebsfunktionen bereitgestellt werden. Coroutine: Eine leichte Multi-Thread-Implementierung, die Aufgaben in kleine Unteraufgaben unterteilt und sie wiederum ausführt.

So öffnen Sie Web.xml So öffnen Sie Web.xml Apr 03, 2025 am 06:51 AM

Um eine Web.xml -Datei zu öffnen, können Sie die folgenden Methoden verwenden: Verwenden Sie einen Texteditor (z.

Kann der Python -Dolmetscher im Linux -System gelöscht werden? Kann der Python -Dolmetscher im Linux -System gelöscht werden? Apr 02, 2025 am 07:00 AM

In Bezug auf das Problem der Entfernung des Python -Dolmetschers, das mit Linux -Systemen ausgestattet ist, werden viele Linux -Verteilungen den Python -Dolmetscher bei der Installation vorinstallieren, und verwendet den Paketmanager nicht ...

Wofür wird der Linux am besten verwendet? Wofür wird der Linux am besten verwendet? Apr 03, 2025 am 12:11 AM

Linux wird am besten als Serververwaltung, eingebettete Systeme und Desktop -Umgebungen verwendet. 1) In der Serververwaltung wird Linux verwendet, um Websites, Datenbanken und Anwendungen zu hosten und Stabilität und Zuverlässigkeit bereitzustellen. 2) In eingebetteten Systemen wird Linux aufgrund seiner Flexibilität und Stabilität in Smart Home und Automotive Electronic Systems häufig verwendet. 3) In der Desktop -Umgebung bietet Linux reichhaltige Anwendungen und eine effiziente Leistung.

Wie ist Debian Hadoop -Kompatibilität? Wie ist Debian Hadoop -Kompatibilität? Apr 02, 2025 am 08:42 AM

Debianlinux ist bekannt für seine Stabilität und Sicherheit und wird in Server-, Entwicklungs- und Desktop -Umgebungen häufig verwendet. Während es derzeit einen Mangel an offiziellen Anweisungen zur direkten Kompatibilität mit Debian und Hadoop gibt, wird dieser Artikel Sie dazu veranlassen, Hadoop in Ihrem Debian -System bereitzustellen. Debian -Systemanforderungen: Bevor Sie mit der Hadoop -Konfiguration beginnen, stellen Sie bitte sicher, dass Ihr Debian -System die Mindestanforderungen von Hadoop erfüllt, einschließlich der Installation der erforderlichen Java -Laufzeitumgebung (JRE) und Hadoop -Pakete. Schritte zur Bereitstellung von Hadoop -Bereitstellungen: Download und Unzip Hadoop: Laden Sie die Hadoop -Version von der offiziellen Apachehadoop -Website herunter und lösen Sie sie

Ist Debian Strings kompatibel mit mehreren Browsern Ist Debian Strings kompatibel mit mehreren Browsern Apr 02, 2025 am 08:30 AM

"DebianStrings" ist kein Standardbegriff und seine spezifische Bedeutung ist noch unklar. Dieser Artikel kann seine Browserkompatibilität nicht direkt kommentieren. Wenn sich jedoch "DebianStrings" auf eine Webanwendung bezieht, die auf einem Debian -System ausgeführt wird, hängt seine Browserkompatibilität von der technischen Architektur der Anwendung selbst ab. Die meisten modernen Webanwendungen sind für die Kompatibilität des Cross-Browsers verpflichtet. Dies beruht auf den folgenden Webstandards und der Verwendung gut kompatibler Front-End-Technologien (wie HTML, CSS, JavaScript) und Back-End-Technologien (wie PHP, Python, Node.js usw.). Um sicherzustellen, dass die Anwendung mit mehreren Browsern kompatibel ist, müssen Entwickler häufig Kreuzbrowser-Tests durchführen und die Reaktionsfähigkeit verwenden

See all articles