Table des matières
Processus Zombie
Processus orphelins
Exemple de code
Sortie
Maison développement back-end C++ Comment exécuter des processus zombies et orphelins dans un seul programme C ?

Comment exécuter des processus zombies et orphelins dans un seul programme C ?

Aug 25, 2023 pm 04:21 PM
僵尸进程 进程控制 Processus orphelin

Comment exécuter des processus zombies et orphelins dans un seul programme C ?

Dans cette section, nous apprendrons comment exécuter des processus zombies et orphelins dans un seul programme en C/C++. Avant d’entrer dans le vif du sujet, comprenons d’abord ce que sont les processus zombies et les processus orphelins.

Processus Zombie

Le processus Zombie fait référence à un processus qui a terminé son exécution mais qui a encore de l'espace restant. Entrée dans la table des processus. Les processus zombies se produisent généralement dans les processus enfants car le processus parent doit toujours lire l'état de sortie de son processus enfant. Une fois cela fait à l’aide de l’appel système wait, le processus zombie est éliminé de la table des processus. C’est ce qu’on appelle la récolte de processus zombies.

Processus orphelins

Les processus orphelins sont les processus qui sont toujours en cours d'exécution même si leur processus parent est terminé ou terminé. Un processus peut devenir orphelin, intentionnellement ou non.

Les processus intentionnellement orphelins s'exécuteront en arrière-plan sans aucune assistance manuelle. Ceci est généralement effectué pour démarrer un service qui s'exécute indéfiniment ou pour terminer un travail de longue durée sans que l'utilisateur ne s'en aperçoive.

Les processus orphelins sont créés par inadvertance lorsque leur processus parent plante ou se termine. Utilisez le mécanisme de groupe de processus pour éviter les processus orphelins involontaires.

Maintenant, dans le code ci-dessous, nous exécuterons simultanément le processus zombie et le processus orphelin. Ici, nous avons un processus parent, qui a un processus enfant, et ce processus enfant a un autre processus enfant. Si notre contrôle est inséré dans un processus enfant, alors nous arrêterons l'exécution pendant 5 secondes afin qu'il puisse terminer le processus parent. Le processus enfant devient donc un processus orphelin. Le processus petit-enfant sera alors converti en processus zombie. Le processus petit-enfant termine son exécution lorsque son processus parent (un enfant du processus principal) se met en veille pendant 1 seconde. Par conséquent, le processus petit-enfant n’appellera pas terminate et son entrée existera dans la table des processus.

Exemple de code

#include <stdio.h>
#include <unistd.h>
int main() {
   int x = fork(); //create child process
   if (x > 0) //if x is non zero, then it is parent process
      printf("Inside Parent---- PID is : %d</p><p>", getpid());
   else if (x == 0) { //for chile process x will be 0
      sleep(5); //wait for some times
      x = fork();
      if (x > 0) {
         printf("Inside Child---- PID :%d and PID of parent : %d</p><p>", getpid(), getppid());
         while(1)
            sleep(1);
         printf("Inside Child---- PID of parent : %d</p><p>", getppid());
      }else if (x == 0)
      printf("Inside grandchild process---- PID of parent : %d</p><p>", getppid());
   }
   return 0;
}
Copier après la connexion

Sortie

soumyadeep@soumyadeep-VirtualBox:~$ ./a.out
Inside Parent---- PID is : 3821
soumyadeep@soumyadeep-VirtualBox:~$ Inside Child---- PID :3822 and PID of parent : 686
Inside grandchild process---- PID of parent : 3822
soumyadeep@soumyadeep-VirtualBox:~$
Copier après la connexion

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

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)

Utilisez nohup et & pour améliorer l'efficacité du contrôle des processus Utilisez nohup et & pour améliorer l'efficacité du contrôle des processus Mar 25, 2024 pm 04:15 PM

Ces dernières années, avec le développement continu des technologies de l’information, la plupart des travaux ne peuvent être effectués sans l’aide d’ordinateurs. Lors du fonctionnement d'un ordinateur, nous rencontrons souvent des situations dans lesquelles plusieurs processus doivent être exécutés en même temps, et l'amélioration de l'efficacité du contrôle des processus est très critique. Cet article explique comment utiliser les commandes nohup et & dans les systèmes Linux pour améliorer l'efficacité du contrôle des processus. 1. Comprenez les commandes nohup et &. Dans les systèmes Linux, nohup est une commande utilisée pour ignorer le signal de blocage. Elle peut exécuter la commande en arrière-plan, même si l'utilisateur quitte le terminal.

Présentation de l'utilisation de la commande PS sous Linux Présentation de l'utilisation de la commande PS sous Linux Feb 26, 2024 pm 03:07 PM

Titre : Compréhension approfondie de la commande Linux PS : introduction des fonctions et exemples de code Dans le système d'exploitation Linux, la commande PS est un outil très pratique qui peut aider les utilisateurs à visualiser les informations sur les processus exécutés dans le système et à surveiller le fonctionnement du système. Cet article présentera les fonctions de base et les options courantes de la commande PS, et montrera comment utiliser la commande PS pour afficher et gérer les processus à travers des exemples de code spécifiques. 1. Introduction à la commande PS La commande PS est l'abréviation de ProcessStatus et est utilisée pour afficher des informations sur les processus en cours d'exécution dans le système.

Comment utiliser l'extension PCNTL de PHP ? Comment utiliser l'extension PCNTL de PHP ? May 31, 2023 pm 04:51 PM

En PHP, l'extension PCNTL est une extension très utile, qui nous fournit certaines fonctions de contrôle de processus et de gestion des signaux. Cet article présentera brièvement l'extension PCNTL pour PHP, notamment comment l'installer et l'utiliser. Installer l'extension PCNTL Dans PHP5.3.0 et supérieur, l'extension PCNTL est ajoutée au code principal de PHP. Cependant, dans certaines distributions, l'extension PCNTL peut ne pas être incluse dans l'installation PHP par défaut. Pour déterminer si l'extension PCNTL est déjà installée, vous pouvez utiliser

Comment exécuter des processus zombies et orphelins dans un seul programme C ? Comment exécuter des processus zombies et orphelins dans un seul programme C ? Aug 25, 2023 pm 04:21 PM

Dans cette section, nous verrons comment exécuter des processus zombies et orphelins dans un seul programme en C/C++. Avant d’entrer dans le vif du sujet, comprenons d’abord ce que sont les processus zombies et les processus orphelins. Processus zombie Un processus zombie est un processus dont l'exécution est terminée mais qui dispose encore d'espace restant. Entrée dans la table des processus. Les processus zombies se produisent généralement dans les processus enfants car le processus parent doit toujours lire l'état de sortie de son processus enfant. Une fois cela fait à l’aide de l’appel système wait, le processus zombie est éliminé de la table des processus. C’est ce qu’on appelle la récolte de processus zombies. Processus orphelins Les processus orphelins sont les processus qui sont toujours en cours d'exécution même si leur processus parent est terminé ou terminé. Un processus peut devenir orphelin, intentionnellement ou non. Les processus intentionnellement orphelins s’exécutent en arrière-plan sans aucune assistance manuelle. ce

Contrôle de processus et gestion des signaux en langage Go Contrôle de processus et gestion des signaux en langage Go Jun 02, 2023 am 08:21 AM

Le langage Go est un langage de programmation open source. Il est de plus en plus populaire parmi les programmeurs en raison de sa simplicité, de sa facilité d'utilisation, de son efficacité et de sa sécurité. Dans le langage Go, le contrôle de processus et le traitement du signal sont également des éléments très importants. Cet article approfondira le contrôle de processus et le traitement du signal dans le langage Go. Appels de processus en langage Go Le contrôle de processus en langage Go peut réaliser des appels et un contrôle entre plusieurs processus. Le langage Go fournit la bibliothèque os et la bibliothèque exec, qui peuvent démarrer et appeler des processus. En appelant la ligne de commande dans la bibliothèque os, vous pouvez créer

Comment utiliser le Gestionnaire des tâches sur votre ordinateur Windows Comment utiliser le Gestionnaire des tâches sur votre ordinateur Windows Jun 17, 2023 am 09:07 AM

Le Gestionnaire des tâches des ordinateurs Windows est un outil très utile qui peut vous aider à comprendre et à gérer les programmes et services en cours d'exécution. Dans cet article, nous allons vous montrer comment utiliser le Gestionnaire des tâches pour améliorer les performances et l'efficacité de votre ordinateur. Ouvrir le Gestionnaire des tâches Pour ouvrir le Gestionnaire des tâches, vous pouvez utiliser le raccourci "Ctrl+Shift+Esc" ou cliquer avec le bouton droit sur la barre des tâches et sélectionner "Gestionnaire des tâches". Si votre ordinateur est bloqué ou tombe en panne, vous pouvez toujours

Qu'est-ce qu'un processus zombie Linux ? Qu'est-ce qu'un processus zombie Linux ? Apr 06, 2023 am 11:37 AM

Le processus zombie Linux est un processus qui est mort depuis longtemps, mais qui occupe toujours une position dans la table des processus ; si le processus parent n'a pas wait() lorsque le processus enfant meurt, vous pouvez généralement utiliser ps pour voir qu'il est affiché. comme "<defunct>", donc les processus zombies sont générés ; si un grand nombre de processus zombies sont générés, le système ne pourra pas générer de nouveaux processus car il n'y a pas de numéros de processus disponibles, les processus zombies doivent donc être évités.

Comment utiliser PHP7.0 pour la programmation multi-processus ? Comment utiliser PHP7.0 pour la programmation multi-processus ? May 26, 2023 am 08:12 AM

Avec la mise à niveau continue du matériel informatique, les processeurs multicœurs sont devenus courants. Afin de mieux utiliser les performances des processeurs multicœurs, la programmation multiprocessus est devenue une technologie très importante. Dans le langage PHP, la programmation multi-processus est encore plus indispensable, notamment lors du traitement de données à grande échelle. Cependant, PHP avait un support très limité pour la programmation multi-processus dans les premières versions, et ce n'est qu'à partir de PHP 7.0 qu'il a commencé à prendre officiellement en charge la programmation multi-processus. Cet article présentera en détail comment utiliser PHP7.0 pour la programmation multi-processus. 1. Qu'est-ce que la programmation multi-processus ?

See all articles