Maison  >  Article  >  Opération et maintenance  >  Qu'est-ce qu'un processus sous Linux

Qu'est-ce qu'un processus sous Linux

angryTom
angryTomoriginal
2019-11-06 14:49:373507parcourir

Qu'est-ce qu'un processus sous Linux

Qu'est-ce qu'un processus sous Linux ?

Un processus, en termes simples, est un programme en cours, un programme en cours d'exécution, également appelé PCB (process control block)

Sous le système d'exploitation Linux, un processus est décrit A structure appelée task_struct, alors que contient cette structure ?

Nous savons tous que pour qu'un programme s'exécute, il doit d'abord charger le fichier exécutable correspondant du disque dans la mémoire. Alors, comment savoir où il se trouve dans la mémoire ? À ce stade, vous devez le trouver via quelque chose appelé un identifiant de processus (pid). Tout comme nous, nous avons quelque chose qui représente notre identité, c'est-à-dire une carte d'identité.

Après avoir trouvé où se trouve le programme, si vous souhaitez l'exécuter, vous devez connaître le code correspondant et les données dont dépend le code, c'est pourquoi le pointeur de mémoire est né. Les pointeurs de mémoire sont utilisés pour pointer vers le code du programme et les données correspondantes. Le programme est maintenant prêt à fonctionner.

Cependant, comme il existe de nombreux processus, et généralement il n'y a qu'une seule unité centrale de traitement (CPU), afin d'assurer la bonne mise en œuvre de nombreux processus, il est nécessaire d'avoir une séquence d'exécution entre les processus, c'est-à-dire la priorité. Il est beaucoup plus facile de mettre en œuvre plusieurs processus après avoir défini des priorités.

Mais il convient de noter que le processeur n'exécute pas un processus avant d'exécuter le suivant. Il exécutera le processus suivant après l'exécution d'un programme pendant un certain temps et après l'exécution du processus suivant. exécuté pendant un certain temps. Ensuite, exécutez les processus suivants. À ce moment-là, un problème surviendra. Que dois-je faire si un programme non exécuté souhaite continuer son exécution à partir de l'endroit précédent ? Ne vous inquiétez pas, nous protégerons la scène avec du « contexte ».

Comme mentionné précédemment, un programme sera exécuté pendant un certain temps avant que le CPU n'exécute le programme suivant. Alors, combien de temps un programme doit-il être exécuté avant que le CPU n'abandonne ? Ici, nous utilisons des « informations comptables » pour enregistrer ce temps.

De plus, de nombreux états apparaîtront lorsque le processus est exécuté, tels que l'état prêt (R), l'état de veille interrompue (S), l'état de veille ininterruptible (D), etc., il y a donc également Enregistrer le état du processus. Bien entendu, il existe également des informations sur l'état des E/S, à savoir l'entrée standard, la sortie standard et la sortie d'erreur standard.

Pour résumer, une task_struct, une structure décrivant un processus, contient les parties suivantes :

● Identifiant : utilisé pour enregistrer l'identifiant du processus, c'est-à-dire le pid

● Pointeur mémoire : Pointe vers le code du programme et les données associées, etc.

● Priorité

● Contexte : Enregistre le dernier site d'exécution du processus sur le CPU

● Informations comptables : enregistrées lorsqu'un processus doit abandonner le processeur

● Statut : état lié au processus enregistré

● Informations sur l'état des E/S

● Signal ; -informations relatives

Recommandé : Tutoriel de base du système 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:
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