Maison Opération et maintenance exploitation et maintenance Linux Que signifie le processus sous Linux ?

Que signifie le processus sous Linux ?

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

Un processus est une instance d'un programme exécuté sous Linux et constitue l'unité de base pour la gestion des transactions ; un processus possède son propre environnement de traitement indépendant et ses propres ressources système. L'état d'un processus change, y compris sa création, sa planification et sa mort.

Que signifie le processus sous Linux ?

L'environnement d'exploitation de ce tutoriel : système linux5.9.8, ordinateur Dell G3.

Un processus est une instance d'un programme exécuté sous Linux.

Dans le système Linux, le système d'exploitation effectue les tâches une par une via des processus. Le processus est l'unité de base de la gestion des transactions. Le processus possède son propre environnement de traitement indépendant (par exemple : quelles variables d'environnement sont actuellement nécessaires, où se trouve le répertoire dans lequel le programme est en cours d'exécution, quel utilisateur exécute actuellement le programme, etc.) et des ressources système (telles que : l'occupation du processeur par le processeur). , mémoire, périphériques d'E/S, données, programmes).

Lorsque vous exécutez un programme dans un système Linux, le système crée un environnement spécifique pour le programme. Cet environnement contient tout ce dont le système a besoin pour exécuter le programme.

Chaque fois que vous exécutez une commande sous Linux, elle créera ou démarrera un nouveau processus. Par exemple, lorsque vous essayez d'exécuter la commande "ls -l" pour lister le contenu d'un répertoire, vous démarrez un processus. Si deux fenêtres de terminal sont affichées à l'écran, vous avez peut-être exécuté deux fois le même programme de terminal et il y aura deux processus de terminal.

Chaque fenêtre de terminal peut exécuter un Shell, et chaque Shell en cours d'exécution est un processus. Lorsque vous appelez une commande depuis le Shell, le programme correspondant sera exécuté dans un nouveau processus. Lorsque l'exécution du processus du programme est terminée, le processus du Shell reprendra son exécution.

Le système d'exploitation suit les processus via un code numérique appelé PID ou ID de processus. Chaque processus du système possède un PID unique.

Maintenant, nous utilisons un exemple pour comprendre le processus sous Linux. Nous exécutons la commande suivante sur la ligne de commande du Shell :

$ sleep 10 &
[1] 3324
Copier après la connexion

Comme le programme attendra 10 secondes, nous recherchons rapidement tout processus nommé sleep sur le Shell actuel :

$ ps -ef | grep sleep
mozhiyan  3324  5712  cons1  17:11:46  /usr/bin/sleep
Copier après la connexion

Nous voyons que le processus nommé /usr/bin/sleep est en cours d'exécution sur le système (avec le même PID que nous avons obtenu dans la commande précédente).

Maintenant, nous essayons d'exécuter la commande sleep ci-dessus à partir de 3 fenêtres de terminal différentes en parallèle, le résultat de la commande ci-dessus sera similaire à ce qui suit :

$ 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
Copier après la connexion

Nous voyons que chaque instance du programme sleep crée un processus distinct.

Chaque processus Linux a un autre numéro d'identification, qui est l'ID du processus parent (ppid). Chaque processus utilisateur du système a un processus parent.

La commande "ps -f" listera le PID et le PPID du processus. Le résultat de cette commande est similaire au suivant :

$ 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
Copier après la connexion

Les commandes que vous exécutez à l'invite de ligne de commande Shell ont le processus Shell actuel comme processus parent. Par exemple, si vous entrez la commande ls à l'invite de ligne de commande du Shell, le Shell exécutera la commande ls. À ce moment, le noyau Linux copiera la page mémoire du Shell, puis exécutera la commande ls.

Sous Unix, chaque processus est créé à l'aide des méthodes fork et exec. Cependant, cette approche entraîne une perte de ressources système.

Sous Linux, la méthode fork est implémentée à l'aide de pages mémoire de copie sur écriture, elle provoque donc uniquement la perte de temps et de mémoire nécessaire pour copier la table des pages mémoire du processus parent et crée une tâche unique pour le processus enfant. structure.

Le mode copie sur écriture évite de créer des copies de structure inutiles lors de la création d'un nouveau processus. Par exemple, si l'utilisateur exécute la commande ls à l'invite de ligne de commande Shell, le noyau Linux créera un processus enfant Shell, c'est-à-dire que le processus Shell est le processus parent et le processus de commande ls est le processus enfant. Le processus de commande pointera vers ceci. La même page mémoire que le Shell, puis le processus enfant utilise la technologie de copie sur écriture pour exécuter la commande ls.

Statut du processus

Chaque processus Linux a son propre cycle de vie, tel que la création, l'exécution, l'arrêt et le nettoyage. Chaque processus possède également son propre statut, qui indique ce qui se passe actuellement dans le processus. L'état d'un processus change, y compris sa création, sa planification et sa mort.

Le processus peut avoir les états suivants :

  • D (état de veille ininterrompue) - le processus est en veille et ne peut pas être repris jusqu'à ce qu'un événement se produise.

  • R (Running Status) - Le processus est en cours d'exécution.

  • S (état de veille) - le processus n'est pas en cours d'exécution, mais attend un événement ou un signal.

  • T (état d'arrêt) - Le processus est arrêté par un signal, tel que le signal SIGINT ou SIGSTOP.

  • Z (État zombie) - Les processus marqués <defunct> sont des processus zombies et restent car leur processus parent les a détruits de manière appropriée. Si le processus parent se termine, ces processus seront détruits par le processus d'initialisation.

Pour afficher l'état du processus spécifié, vous pouvez utiliser la commande suivante :

ps -C processName -o pid=,cmd,stat
Copier après la connexion

Par exemple :

$ ps -C sleep -o pid=,cmd,stat
      CMD       STAT
9434 sleep 20    S
Copier après la connexion

Recommandations associées : "Tutoriel vidéo Linux"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Entrée de la version Web Deepseek Entrée du site officiel Deepseek Entrée de la version Web Deepseek Entrée du site officiel Deepseek Feb 19, 2025 pm 04:54 PM

Entrée de la version Web Deepseek Entrée du site officiel Deepseek

Android TV Box obtient une mise à niveau non officielle d'Ubuntu 24.04 Android TV Box obtient une mise à niveau non officielle d'Ubuntu 24.04 Sep 05, 2024 am 06:33 AM

Android TV Box obtient une mise à niveau non officielle d'Ubuntu 24.04

Comment installer Deepseek Comment installer Deepseek Feb 19, 2025 pm 05:48 PM

Comment installer Deepseek

Adresse de téléchargement de l'application de portefeuille BitPie Bitpie Adresse de téléchargement de l'application de portefeuille BitPie Bitpie Sep 10, 2024 pm 12:10 PM

Adresse de téléchargement de l'application de portefeuille BitPie Bitpie

Installation officielle du site officiel de Bitget (Guide du débutant 2025) Installation officielle du site officiel de Bitget (Guide du débutant 2025) Feb 21, 2025 pm 08:42 PM

Installation officielle du site officiel de Bitget (Guide du débutant 2025)

Zabbix 3.4 Installation de la compilation du code source Zabbix 3.4 Installation de la compilation du code source Sep 04, 2024 am 07:32 AM

Zabbix 3.4 Installation de la compilation du code source

Explication détaillée : commande de paramètre de jugement variable du script Shell Explication détaillée : commande de paramètre de jugement variable du script Shell Sep 02, 2024 pm 03:25 PM

Explication détaillée : commande de paramètre de jugement variable du script Shell

Le package d'installation OUYI OKX est directement inclus Le package d'installation OUYI OKX est directement inclus Feb 21, 2025 pm 08:00 PM

Le package d'installation OUYI OKX est directement inclus

See all articles