Revue du système d'exploitation en fin de parcours ----- description et contrôle des processus de classe 2

1. La notion de processus

1. Définition

De différents points de vue, un processus peut avoir différentes définitions. Les définitions typiques sont :
(1) Un processus est une exécution d'un programme
(2) Un processus est une activité qui se produit lorsqu'un programme et ses données sont exécutés séquentiellement sur un processeur
( 3) Un processus est un processus dans lequel un programme avec des fonctions indépendantes s'exécute sur un ensemble de données, et c'est une unité indépendante pour l'allocation et la planification des ressources par le système
Jusqu'à présent, j'ai trouvé que le processus et les procédures ne sont toujours pas clairs, eh bien, alors allez à baidu
insérez la description de l'image icirésultat:

Texte cité
Les programmes et les processus sont deux concepts liés mais distincts.
1. Un programme est un ensemble ordonné d'instructions, qui est un concept statique,
tandis qu'un processus est un processus d'exécution d'un programme sur un processeur, qui est un concept dynamique.
2. Le processus est simultané, mais pas le programme.
3. Le processus est l'unité de base de la concurrence pour les ressources informatiques, mais le programme ne l'est pas.
4. Un processus est composé de programmes, de données et de blocs de contrôle de processus, et un programme n'est qu'un ensemble ordonné d'instructions.
5. Il n'y a pas de correspondance un à un entre les processus et les programmes, c'est-à-dire que le même programme s'exécute sur plusieurs ensembles de données différents et qu'il appartiendra à plusieurs processus différents ; et un processus peut exécuter plusieurs programmes (oh, je comprendre
maintenant)

insérez la description de l'image ici

2. Composition

processus est exécuté parBloc de contrôle de programme (PCB), segment de programme, segment de donnéescomposition.
PCB : Le système d'exploitation gère le processus via le PCB, de sorte que le PCB doit contenir diverses informations requises par le système d'exploitation pour le gérer, telles que les informations de description du processus, les informations de contrôle et de gestion du processus, la liste d'allocation des ressources et les informations relatives à l'agence de traitement.
Segment de programme : L'emplacement où le code de programme est stocké.
Segment de données : Les données d'opération utilisées et générées lorsque le programme est en cours d'exécution. Les constantes telles que les variables globales, les variables locales et les définitions de macro sont stockées dans le segment de données.

3. Organisation

La forme organisationnelle du processus est divisée en:lien et indexation
**Méthode de liaison :** Divisez le PCB en plusieurs files d'attente en fonction de l'état du processus, et le système d'exploitation contient des pointeurs vers chaque file d'attente.
**Méthode d'indexation : **Créez plusieurs tables d'indexation en fonction de l'état du processus, et le système d'exploitation contient des pointeurs vers chaque table d'indexation.

4. Caractéristiques du processus

Dynamique, simultané, indépendant, asynchrone, structuré

2. L'état et la transition du processus

1. L'état du processus

État du processus : le cycle de vie d'un processus peut être divisé en un ensemble d'états qui caractérisent l'ensemble du processus. L'état du processus reflète l'état de vie d'un processus.
En général, un processus a cinq états :
Prêt, en cours d'exécution, bloqué (ces trois sont les états de base du processus, rappelez-vous pour laozi !!), créez, terminez (il y a un état derrière cela ~)
**État de création :** lorsqu'un processus est créé, il doit demander un PCB vierge (oui, il s'agit du bloc de contrôle du programme) et remplir les informations de processus de contrôle et de gestion pour terminer l'allocation des ressources. Si le travail de création ne peut pas être terminé, par exemple si la ressource ne peut pas être satisfaite, son exécution ne peut pas être planifiée. L'état du processus à ce moment est appelé l'état de création.
**État en cours d'exécution : **Le processus occupe le CPU et s'exécute sur le CPU.
**État prêt : **Le processus a les conditions pour s'exécuter, mais ne peut pas s'exécuter en raison d'un processeur non alloué.
**État bloquant : **État dans lequel le processus ne peut pas s'exécuter temporairement car il attend qu'un événement se produise.
**État de fin : **Le processus se termine, ou une erreur se produit, ou est terminé par le système, et entre dans l'état de fin.

2. Transition d'État

insérez la description de l'image iciLa transition entre les trois états de base ci-dessus peut être divisée en six situations :
courir -> prêt:
(1) La raison principale est que le processus occupe trop longtemps le processeur et que le temps alloué par le système au processus est limité ; (2)
Dans le système utilisant l'algorithme de planification prioritaire préemptif, lorsqu'il existe une priorité plus élevée Lorsqu'un processus est sur le point de s'exécuter, le processus est forcé d'abandonner le processeur et le processus passe de l'état en cours d'exécution à l'état prêt.
Prêt -> Exécuter: Lorsque la tranche de temps du processus en cours d'exécution est épuisée, la planification ira dans la file d'attente prête pour sélectionner le processus approprié pour allouer le CPU.
exécuter -> bloquer: Le processus en cours d'exécution ne peut pas être exécuté en raison d'un événement en attente et le processus passe de l'état d'exécution à l'état de blocage, comme une demande d'E/S.
blocage -> prêt: L'événement que le processus attend est terminé et il entre dans la file d'attente des prêts.
Remarque : Les deux transitions d'état de l'état bloquant-> l'état d'exécution et l'état prêt-> l'état bloquant sont impossibles.

3. Processus de communication

1. La communication de processus fait référence à l'échange d'informations entre processus.

Le fonctionnement PV est le niveau de communication le plus bas et le mode de communication avancé fait référence au mode de communication qui transmet une grande quantité de données avec une grande efficacité.
Il existe trois principaux types de méthodes de communication avancées :
(1) Stockage partagé
Il existe des méthodes de communication basées sur des structures de données partagées, telles que producteurs et consommateurs, et des méthodes de communication basées sur des zones de stockage partagées.
(2) La transmission de messages
est basée sur le message formaté en tant qu'unité et utilise le langage primitif pour transmettre le message, qui est divisé en communication directe et communication indirecte.
(3) La communication par pipeline
est un moyen spécial de transmission de messages, qui est utilisé pour connecter un processus de lecture et un processus d'écriture pour réaliser un fichier partagé entre eux, également appelé fichier pipe.

Quatre, fil

1. L'introduction des threads

Le but de l'introduction de threads est de simplifier la communication inter-processus et d'améliorer la concurrence intra-processus avec moins de surcharge.
Un thread est la plus petite unité permettant d'effectuer des calculs dans un processus, une entité dans un processus et l'unité de base planifiée et distribuée indépendamment par le système. Un thread lui-même ne possède pas de ressources système, mais seulement quelques ressources essentielles au fonctionnement, mais il peut partager toutes les ressources détenues par le processus avec d'autres threads appartenant au même processus.
Un thread peut créer et annuler un autre thread , et plusieurs threads du même processus peuvent s'exécuter simultanément.

2. Thread - en tant qu'unité de base de la planification et de l'allocation

Un processus est l'unité d'allocation des ressources système et un thread est l'unité de planification du processeur .
Un thread représente un point de contrôle d'un processus qui peut exécuter une série d'instructions. Typiquement, correspond à une fonction de l'application. La décomposition des processus en threads permet également une utilisation efficace des ordinateurs multiprocesseurs et multicœurs.

3. Comparaison entre les threads et les processus

(1) La différence entre un processus et un thread :
A. Ordonnancement. Le thread est l'unité de base de la planification et de l'allocation, et le processus est l'unité de base des ressources.
B. Concurrence. Non seulement les processus peuvent être exécutés simultanément, mais également plusieurs threads du même processus peuvent être exécutés simultanément.
C. Ressources propres. Un processus est une unité indépendante qui possède des ressources, et un thread ne possède pas de ressources système, mais peut accéder à des ressources appartenant à un processus.
D. Surcharge du système. Lors de la création ou de l'annulation d'un processus, la surcharge du système est évidemment supérieure à celle de la création ou de l'annulation d'un thread car le système doit lui allouer et récupérer des ressources.
(2) La relation entre les processus et les threads :
A. Un thread ne peut appartenir qu'à un seul processus, et un processus peut avoir plusieurs threads, mais au moins un thread.
B. Les ressources sont allouées aux processus et tous les threads du même processus partagent toutes les ressources du processus.
C. Le processeur est affecté au thread, c'est-à-dire que le thread s'exécute réellement sur le processeur.
D. Les threads doivent coopérer et se synchroniser pendant l'exécution. Les threads de différents processus doivent utiliser la communication par message pour réaliser la synchronisation. Un thread fait référence à une unité d'exécution au sein d'un processus et est également une entité planifiable au sein d'un processus.
insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/weixin_52030647/article/details/130568048
conseillé
Classement