Vous êtes sur la page 1sur 16

Système d'exploitation - Processus

Un processus est essentiellement un programme en cours d'exécution. L'exécution


d'un processus doit se dérouler de manière séquentielle.
Un processus est défini comme une entité qui représente l'unité de travail de base à
mettre en œuvre dans le système.

Pour faire simple, nous écrivons nos programmes informatiques dans un fichier texte
et lorsque nous exécutons ce programme, cela devient un processus qui exécute
toutes les tâches mentionnées dans le programme.
Lorsqu'un programme est chargé dans la mémoire et qu'il devient un processus, il
peut être divisé en quatre sections : pile, tas, texte et données. L'image suivante
montre une disposition simplifiée d'un processus dans la mémoire principale -
SN Composant et description

1
Empiler
Le processus Stack contient les données temporaires telles que les
paramètres de méthode/fonction, l'adresse de retour et les variables locales.

2
Tas
Il s'agit de la mémoire allouée dynamiquement à un processus pendant son
exécution.

3
Texte
Cela inclut l'activité actuelle représentée par la valeur de Program Counter et
le contenu des registres du processeur.

4
Données
Cette section contient les variables globales et statiques.

Programme
Un programme est un morceau de code qui peut être une seule ligne ou des millions
de lignes. Un programme informatique est généralement écrit par un programmeur
informatique dans un langage de programmation. Par exemple, voici un programme
simple écrit en langage de programmation C -

#include <stdio.h>

int main() {
printf("Hello, World! \n");
return 0;
}

Un programme informatique est un ensemble d'instructions qui exécutent une tâche


spécifique lorsqu'elles sont exécutées par un ordinateur. Lorsque nous comparons un
programme à un processus, nous pouvons conclure qu'un processus est une instance
dynamique d'un programme informatique.
Une partie d'un programme informatique qui exécute une tâche bien définie est
connue sous le nom d' algorithme . Un ensemble de programmes informatiques, de
bibliothèques et de données connexes est appelé logiciel .
Cycle de vie du processus
Lorsqu'un processus s'exécute, il passe par différents états. Ces étapes peuvent
différer selon les systèmes d'exploitation et les noms de ces états ne sont pas non
plus normalisés.
En général, un processus peut avoir l'un des cinq états suivants à la fois.

SN État et description

1
Commencer
Il s'agit de l'état initial lorsqu'un processus est démarré/créé pour la première fois.

2
Prêt
Le processus attend d'être affecté à un processeur. Les processus prêts attendent
que le processeur leur soit alloué par le système d'exploitation pour pouvoir
s'exécuter. Le processus peut entrer dans cet état après l'état de démarrage ou
lors de son exécution, mais interrompu par le planificateur pour affecter le
processeur à un autre processus.

3
Fonctionnement
Une fois que le processus a été affecté à un processeur par le planificateur du
système d'exploitation, l'état du processus est défini sur running et le processeur
exécute ses instructions.

4
Attendre
Le processus passe à l'état d'attente s'il doit attendre une ressource, par exemple
attendre une entrée utilisateur ou attendre qu'un fichier soit disponible.

5
Terminé ou Quitter
Une fois que le processus a terminé son exécution, ou qu'il est terminé par le
système d'exploitation, il est déplacé vers l'état terminé où il attend d'être
supprimé de la mémoire principale.
Bloc de contrôle de processus (PCB)
Un bloc de contrôle de processus est une structure de données maintenue par le
système d'exploitation pour chaque processus. Le PCB est identifié par un ID de
processus entier (PID). Un PCB conserve toutes les informations nécessaires pour
suivre un processus comme indiqué ci-dessous dans le tableau −

SN Informations & Descriptif

1
État du processus
L'état actuel du processus, c'est-à-dire s'il est prêt, en cours d'exécution, en
attente ou autre.

2
Privilèges de traitement
Ceci est nécessaire pour autoriser/interdire l'accès aux ressources système.

3
ID de processus
Identification unique pour chacun des processus du système d'exploitation.

4
Aiguille
Un pointeur vers le processus parent.

5
Compteur de programme
Le compteur de programme est un pointeur vers l'adresse de la prochaine
instruction à exécuter pour ce processus.
6
Registres du processeur
Divers registres CPU où le processus doit être stocké pour l'exécution pour l'état
d'exécution.

7
Informations de planification du processeur
Priorité de traitement et autres informations de planification nécessaires pour
planifier le processus.

8
Informations sur la gestion de la mémoire
Cela inclut les informations de la table des pages, des limites de mémoire, de la
table des segments en fonction de la mémoire utilisée par le système
d'exploitation.

9
Information comptable
Cela inclut la quantité de CPU utilisée pour l'exécution du processus, les délais,
l'ID d'exécution, etc.

10
Informations sur l'état des E/S
Cela inclut une liste des périphériques d'E/S alloués au processus.

L'architecture d'un PCB dépend entièrement du système d'exploitation et peut


contenir différentes informations dans différents systèmes d'exploitation. Voici un
schéma simplifié d'un PCB −
Le PCB est conservé pour un processus tout au long de sa durée de vie et est
supprimé une fois le processus terminé.

Système d'exploitation - Planification des


processus
Définition
L'ordonnancement de processus est l'activité du gestionnaire de processus qui gère
la suppression du processus en cours d'exécution de la CPU et la sélection d'un autre
processus sur la base d'une stratégie particulière.
L'ordonnancement des processus est une partie essentielle d'un système
d'exploitation multiprogrammation. De tels systèmes d'exploitation permettent à
plus d'un processus d'être chargé dans la mémoire exécutable à la fois et le processus
chargé partage la CPU en utilisant le multiplexage temporel.

Traiter les files d'attente de planification


Le système d'exploitation maintient tous les PCB dans les files d'attente de
planification de processus. Le système d'exploitation maintient une file d'attente
distincte pour chacun des états de processus et les PCB de tous les processus dans
le même état d'exécution sont placés dans la même file d'attente. Lorsque l'état d'un
processus est modifié, son PCB est dissocié de sa file d'attente actuelle et déplacé
vers sa nouvelle file d'attente d'état.
Le système d'exploitation maintient les importantes files d'attente de planification de
processus suivantes :
• File d'attente des travaux - Cette file d'attente conserve tous les
processus du système.
• File d'attente prête - Cette file d'attente conserve un ensemble de tous
les processus résidant dans la mémoire principale, prêts et en attente
d'exécution. Un nouveau processus est toujours placé dans cette file
d'attente.
• Files d'attente de périphériques − Les processus qui sont bloqués en
raison de l'indisponibilité d'un périphérique d'E/S constituent cette file
d'attente.
Le système d'exploitation peut utiliser différentes politiques pour gérer chaque file
d'attente (FIFO, Round Robin, Priorité, etc.). Le planificateur du système d'exploitation
détermine comment déplacer les processus entre les files d'attente de préparation et
d'exécution qui ne peuvent avoir qu'une seule entrée par cœur de processeur sur le
système ; dans le schéma ci-dessus, il a été fusionné avec le CPU.

Modèle de processus à deux états


Le modèle de processus à deux états fait référence aux états en cours d'exécution et
non en cours d'exécution décrits ci-dessous -

SN État et description

1
Fonctionnement
Lorsqu'un nouveau processus est créé, il entre dans le système comme dans l'état
d'exécution.

2
Ne pas élu
Les processus qui ne sont pas en cours d'exécution sont mis en file d'attente,
attendant leur tour pour s'exécuter. Chaque entrée de la file d'attente est un
pointeur vers un processus particulier. La file d'attente est implémentée en utilisant
une liste chaînée. L'utilisation du répartiteur est la suivante. Lorsqu'un processus
est interrompu, ce processus est transféré dans la file d'attente. Si le processus est
terminé ou abandonné, le processus est rejeté. Dans les deux cas, le répartiteur
sélectionne ensuite un processus dans la file d'attente à exécuter.

Planificateurs
Les planificateurs sont des logiciels système spéciaux qui gèrent la planification des
processus de différentes manières. Leur tâche principale est de sélectionner les
travaux à soumettre au système et de décider quel processus exécuter. Les
planificateurs sont de trois types -

• Planificateur à long terme


• Planificateur à court terme
• Programmateur à moyen terme

Planificateur à long terme


Il est également appelé planificateur de travaux . Un planificateur à long terme
détermine quels programmes sont admis dans le système pour traitement. Il
sélectionne les processus dans la file d'attente et les charge en mémoire pour
exécution. Traitez les charges dans la mémoire pour la planification du processeur.
L'objectif principal du planificateur de travaux est de fournir une combinaison
équilibrée de travaux, tels que les E/S liées et les processeurs liés. Il contrôle
également le degré de multiprogrammation. Si le degré de multiprogrammation est
stable, alors le taux moyen de création de processus doit être égal au taux moyen de
départ des processus quittant le système.
Sur certains systèmes, le planificateur à long terme peut ne pas être disponible ou
être minimal. Les systèmes d'exploitation à temps partagé n'ont pas de planificateur
à long terme. Lorsqu'un processus change l'état de nouveau à prêt, un planificateur à
long terme est utilisé.

Planificateur à court terme


Il est également appelé planificateur de CPU . Son objectif principal est d'augmenter
les performances du système conformément à l'ensemble de critères choisi. C'est le
passage de l'état prêt à l'état d'exécution du processus. Le planificateur de CPU
sélectionne un processus parmi les processus prêts à être exécutés et alloue la CPU
à l'un d'entre eux.
Les planificateurs à court terme, également appelés répartiteurs, décident du
processus à exécuter ensuite. Les planificateurs à court terme sont plus rapides que
les planificateurs à long terme.

Planificateur à moyen terme


La programmation à moyen terme fait partie de l' échange . Il supprime les processus
de la mémoire. Il réduit le degré de multiprogrammation. L'ordonnanceur à moyen
terme est chargé de gérer les processus échangés.
Un processus en cours d'exécution peut être suspendu s'il effectue une demande
d'E/S. Un processus suspendu ne peut pas avancer vers l'achèvement. Dans cette
condition, pour supprimer le processus de la mémoire et faire de la place pour d'autres
processus, le processus suspendu est déplacé vers le stockage secondaire. Ce
processus est appelé swapping , et le processus est dit être échangé ou
déployé. L'échange peut être nécessaire pour améliorer le mélange de processus.

Comparaison entre le planificateur

SN Planificateur à long terme Planificateur à court Programmateur à moyen


terme terme

1 C'est un planificateur de C'est un planificateur de C'est un planificateur


tâches CPU d'échange de processus.

2 La vitesse est inférieure au La vitesse est la plus La vitesse se situe entre le


planificateur à court terme rapide parmi les deux planificateur à court et à
autres long terme.

3 Il contrôle le degré de Il offre un contrôle Il réduit le degré de


multiprogrammation moindre sur le degré de multiprogrammation.
multiprogrammation

4 Il est presque absent ou Il est également minime Il fait partie des systèmes
minime dans le système de dans le système de de temps partagé.
temps partagé partage de temps

5 Il sélectionne les Il sélectionne les Il peut réintroduire le


processus du pool et les processus prêts à être processus en mémoire et
charge en mémoire pour exécutés l'exécution peut être
exécution poursuivie.

Changement de contexte
Un changement de contexte est le mécanisme permettant de stocker et de restaurer
l'état ou le contexte d'une CPU dans le bloc Process Control afin qu'une exécution de
processus puisse être reprise à partir du même point ultérieurement. En utilisant cette
technique, un sélecteur de contexte permet à plusieurs processus de partager un seul
CPU. La commutation de contexte est une partie essentielle des fonctionnalités d'un
système d'exploitation multitâche.
Lorsque le planificateur fait passer la CPU de l'exécution d'un processus à l'exécution
d'un autre, l'état du processus en cours d'exécution est stocké dans le bloc de contrôle
de processus. Après cela, l'état du processus à exécuter ensuite est chargé à partir de
son propre PCB et utilisé pour définir le PC, les registres, etc. À ce stade, le deuxième
processus peut commencer à s'exécuter.

Les changements de contexte sont gourmands en calculs car l'état du registre et de


la mémoire doit être sauvegardé et restauré. Pour éviter la quantité de temps de
commutation de contexte, certains systèmes matériels utilisent deux ou plusieurs
ensembles de registres de processeur. Lorsque le processus est commuté, les
informations suivantes sont stockées pour une utilisation ultérieure.

• Compteur de programme
• Informations de planification
• Valeur de registre de base et limite
• Registre actuellement utilisé
• État modifié
• Informations sur l'état des E/S
• Information comptable

Algorithmes de planification du système


d'exploitation
Un planificateur de processus planifie différents processus à affecter à la CPU en
fonction d'algorithmes de planification particuliers. Il existe six algorithmes
d'ordonnancement de processus populaires dont nous allons discuter dans ce
chapitre -

• Planification du premier arrivé, premier servi (FCFS)


• Planification du travail le plus court (SJN)
• Planification prioritaire
• Temps restant le plus court
• Planification Round Robin (RR)
• Planification des files d'attente à plusieurs niveaux
Ces algorithmes sont soit non préemptifs, soit préemptifs . Les algorithmes non
préemptifs sont conçus de sorte qu'une fois qu'un processus entre dans l'état
d'exécution, il ne peut pas être préempté tant qu'il n'a pas terminé son temps imparti,
tandis que la planification préemptive est basée sur la priorité où un planificateur peut
préempter un processus en cours d'exécution de faible priorité à tout moment
lorsqu'une priorité élevée processus entre dans un état prêt.

Premier arrivé, premier servi (FCFS)

• Les travaux sont exécutés selon le principe du premier arrivé, premier


servi.
• Il s'agit d'un algorithme d'ordonnancement non préemptif et préemptif.
• Facile à comprendre et à mettre en œuvre.
• Son implémentation est basée sur la file d'attente FIFO.
• Mauvaise performance car le temps d'attente moyen est élevé.
Le temps d'attente de chaque processus est le suivant -

Traiter Temps d'attente : Heure de service - Heure d'arrivée

P0 0-0=0

P1 5-1=4

P2 8-2=6

P3 16 - 3 = 13

Temps d'attente moyen : (0+4+6+13) / 4 = 5,75

Emploi le plus court suivant (SJN)


• Ceci est également connu sous le nom de travail le plus court en
premier , ou SJF
• Il s'agit d'un algorithme d'ordonnancement non préemptif et préemptif.
• Meilleure approche pour minimiser le temps d'attente.
• Facile à mettre en œuvre dans les systèmes Batch où le temps CPU
requis est connu à l'avance.
• Impossible à mettre en œuvre dans les systèmes interactifs où le temps
CPU requis n'est pas connu.
• Le sous-traitant doit savoir à l'avance combien de temps le processus
prendra.
Donné : Table des processus, et leur heure d'arrivée, heure d'exécution
Traiter Heure d'arrivée Temps d'exécution Temps de service

P0 0 5 0

P1 1 3 5

P2 2 8 14

P3 3 6 8

Le temps d'attente de chaque processus est le suivant -

Traiter Temps d'attente

P0 0-0=0

P1 5-1=4

P2 14 - 2 = 12

P3 8-3=5

Temps d'attente moyen : (0 + 4 + 12 + 5)/4 = 21 / 4 = 5,25

Planification basée sur les priorités


• La planification prioritaire est un algorithme non préemptif et l'un des
algorithmes de planification les plus courants dans les systèmes par
lots.
• Chaque processus se voit attribuer une priorité. Le processus avec la
priorité la plus élevée doit être exécuté en premier et ainsi de suite.
• Les processus de même priorité sont exécutés selon le principe du
premier arrivé, premier servi.
• La priorité peut être décidée en fonction des besoins en mémoire, des
besoins en temps ou de tout autre besoin en ressources.
Donné : Tableau des processus, et leur heure d'arrivée, leur heure d'exécution et leur
priorité. Ici, nous considérons que 1 est la priorité la plus basse.

Traiter Heure d'arrivée Temps d'exécution Priorité Temps de service

P0 0 5 1 0

P1 1 3 2 11

P2 2 8 1 14

P3 3 6 3 5

Le temps d'attente de chaque processus est le suivant -

Traiter Temps d'attente

P0 0-0=0

P1 11 - 1 = 10

P2 14 - 2 = 12

P3 5-3=2

Temps d'attente moyen : (0 + 10 + 12 + 2)/4 = 24 / 4 = 6


Temps restant le plus court
• Le temps restant le plus court (SRT) est la version préemptive de
l'algorithme SJN.
• Le processeur est alloué au travail le plus proche de l'achèvement, mais
il peut être devancé par un nouveau travail prêt avec un temps
d'achèvement plus court.
• Impossible à mettre en œuvre dans les systèmes interactifs où le temps
CPU requis n'est pas connu.
• Il est souvent utilisé dans les environnements batch où les travaux
courts doivent être privilégiés.

Planification du tournoi à la ronde


• Round Robin est l'algorithme de planification de processus préemptif.
• Chaque processus dispose d'un temps fixe pour s'exécuter, c'est ce
qu'on appelle un quantum .
• Une fois qu'un processus est exécuté pendant une période de temps
donnée, il est préempté et un autre processus s'exécute pendant une
période de temps donnée.
• La commutation de contexte est utilisée pour enregistrer les états des
processus préemptés.

Le temps d'attente de chaque processus est le suivant -

Traiter Temps d'attente : Heure de service - Heure d'arrivée

P0 (0 - 0) + (12 - 3) = 9

P1 (3 - 1) = 2

P2 (6 - 2) + (14 - 9) + (20 - 17) = 12

P3 (9 - 3) + (17 - 12) = 11
Temps d'attente moyen : (9+2+12+11) / 4 = 8,5

Planification des files d'attente à plusieurs niveaux


Les files d'attente à plusieurs niveaux ne constituent pas un algorithme de
planification indépendant. Ils utilisent d'autres algorithmes existants pour regrouper
et planifier des tâches ayant des caractéristiques communes.

• Plusieurs files d'attente sont maintenues pour les processus ayant des
caractéristiques communes.
• Chaque file d'attente peut avoir ses propres algorithmes de
planification.
• Des priorités sont attribuées à chaque file d'attente.
Par exemple, les travaux liés au processeur peuvent être planifiés dans une file
d'attente et tous les travaux liés aux E/S dans une autre file d'attente. Le planificateur
de processus sélectionne ensuite alternativement les travaux de chaque file d'attente
et les affecte à la CPU en fonction de l'algorithme affecté à la file d'attente.

Vous aimerez peut-être aussi