You are on page 1of 12

Chapitre2 : Ordonnancement des processus

Partie1 : Généralité sur les processus

Séparation mécanismes et politiques :


L'informatique préconise la distinction entre mécanismes (aspects techniques) et règlements (stratégies,
politiques).
Les mécanismes sont responsables de l'exécution des tâches, tandis que les politiques définissent les règles et les
stratégies.

Exemple : Une application peut avoir des mécanismes pour stocker des données de manière sécurisée, mais les
politiques détermineront qui a accès à ces données et dans quelles conditions.

Multitasking vs Multiprocessing :

Multiprocessing :
Concerne l'utilisation de plusieurs processeurs (ou cœurs) pour exécuter des tâches en parallèle
Multiprogrammation, Multitâche :
Concerne la gestion simultanée de plusieurs tâches sur un seul processeur

Chaîne de production des programmes

Cette figure représente le flux de travail typique de la création d'un programme, depuis l'écriture du code source
jusqu'à son exécution sur un système informatique. Chaque étape de cette chaîne de production joue un rôle
crucial dans la transformation du code source en un programme fonctionnel.

1
Voici une interprétation de cette séquence :

1. Module Source : Cette étape représente la phase où les programmeurs écrivent le code source du programme.
Chaque "module source" est une partie du programme.
2. Compilateur : Chaque module source est traité par un compilateur, qui le traduit en code objet correspondant.
Le compilateur produit donc des "modules objet" à partir des "modules source".
3. Éditeur de Liens : Les différents modules objets générés par le compilateur sont liés ensemble par l'éditeur de
liens pour former un programme exécutable. Cela peut également impliquer la résolution des adresses et des
références entre les modules.
4. Assembleur : Il semble y avoir une référence à l'assemblage dans la chaîne de production. L'assemblage est
souvent utilisé pour traduire le code assembleur en langage machine. Cependant, dans votre description, il n'est
pas clair comment cela s'intègre. Vous pourriez vouloir préciser comment l'assemblage est utilisé dans votre
contexte particulier.
5. Bibliothécaire : Le bibliothécaire gère les bibliothèques de fonctions précompilées. Il peut assembler plusieurs
modules objets en une bibliothèque, qui peut être statiquement ou dynamiquement liée lors de la création de
l'exécutable.
6. Metteur au Point (Debugger) : Le processus de débogage est mentionné ici. Cela peut inclure l'utilisation d'un
débogueur pour identifier et corriger les erreurs dans le code source ou le code objet.
7. Chargeur : Une fois que le programme est prêt à être exécuté, le chargeur le charge en mémoire. Cela prépare le
programme à être exécuté par l'ordinateur.
8. Programme Exécutable : Après avoir suivi toutes les étapes du processus, le résultat final est un programme
exécutable, prêt à être lancé sur un système informatique.

Les fichiers DLL (Dynamic Link Library)

Nature des fichiers DLL : Les fichiers DLL sont des bibliothèques dynamiques qui contiennent des fragments
de programmes. Ils ne sont pas des programmes autonomes, mais plutôt des éléments qui permettent à d'autres
logiciels de fonctionner.
Les fichiers DLL sont appelés par des logiciels spécifiques lorsqu'ils ont besoin d'accéder à certaines
fonctionnalités ou ressources. Par exemple, un logiciel comme Word peut utiliser le fichier "commdlg.dll" pour
créer une boîte de dialogue liée aux options d'impression.

2
Edition des liens

Voici une explication de chaque étape dans ce processus :

1. Édition des liens :


 Fichiers source : Vous avez trois fichiers source : "prog_main.c", "prog_calcul.c", et "prog_ES.c".
Chacun de ces fichiers source contient probablement une partie spécifique du code du programme.
 Préprocesseur : Avant la compilation, le code source peut passer par le préprocesseur, qui traite les
directives de préprocesseur comme les directives d'inclusion (#include) et les macros.
 Compilation : Chaque fichier source est compilé individuellement pour produire des fichiers objet
correspondants (par exemple, "prog_main.obj", "prog_calcul.obj", "prog_ES.obj").
2. Édition de liens (Linking) :
 Bibliothèques du Langage C : Les fichiers objets générés sont liés ensemble avec les bibliothèques du
langage C. Ces bibliothèques contiennent des fonctions standard et d'autres éléments essentiels du
langage C.
 Édition de liens : L'éditeur de liens combine les fichiers objets et les bibliothèques pour créer un
programme exécutable. Cela peut impliquer la résolution des adresses et la gestion des références entre
différentes parties du code.
3. Exécution :
 Programme exécutable : Le résultat final de l'édition de liens est un programme exécutable appelé
"Prog.exe". Ce fichier est prêt à être exécuté sur un système informatique.
 Bibliothèques : Le programme peut faire appel à des fonctions provenant des bibliothèques du langage
C pendant son exécution.

Programme Vs Processus

1. Programme :
 Nature : Le programme est une entité passive, représentée par un fichier contenant une liste
d'instructions.
 Caractéristique : Il ne possède pas d'état actif et n'a pas de ressources allouées. C'est une description
statique d'une séquence d'opérations.
2. Processus :
 Nature : Le processus est une entité active qui résulte de l'exécution d'un programme chargé en
mémoire.
 Caractéristique : Il est associé à un ensemble de ressources telles que la mémoire, la pile, le tas, etc.

Transition : Un programme devient un processus lorsqu'il est chargé en mémoire pour exécution.

Même Programme, Différents Processus : Deux processus peuvent être associés au même programme, mais
ils sont considérés comme deux séquences d'exécution distinctes.

3
Exécution multi-tâches
Dans un système d'exploitation monoprocesseur multi-tâches, l'optimisation de l'utilisation du processeur est
essentielle pour éviter le gaspillage de temps. Certains processus sont orientés vers le calcul intensif (CPU-
bound), sollicitant fortement le processeur, tandis que d'autres sont axés sur les opérations d'entrée/sortie (I/O-
bound), impliquant des attentes lors de l'accès à des périphériques externes.

Problématique - Taux d'utilisation de l'UC :

La question centrale est le taux d'utilisation de l'unité centrale (UC) dans un système informatique.
L'objectif principal de la multiprogrammation est d'améliorer l'utilisation globale des ressources du système, y
compris l'UC, la mémoire, le disque dur et les imprimantes, en permettant l'exécution simultanée de plusieurs
processus
La formule permet d'estimer le taux d'utilisation de l'unité centrale (UC) dans le contexte de la
multiprogrammation.

"p" est utilisé pour exprimer la proportion du temps où un processus est occupé par des opérations d'E/S.
"n" intervient pour décrire combien de processus concurrents sont pris en compte dans le modèle
Rq :
Déterminer les valeurs spécifiques de p (fraction de temps d'E/S) et n (nombre de processus concurrents) à partir
du matériel peut nécessiter une approche plus technique et orientée vers les performances du système
Le taux d'utilisation de l'UC est une mesure de l'efficacité avec laquelle le processeur est utilisé. Une utilisation
élevée de l'UC indique une exploitation plus efficace des ressources disponibles.

Influence des Paramètres (p et n) :


 Fraction de Temps d'E/S (p) : Si la fraction de temps consacrée aux opérations d'entrée/sortie (E/S)
est faible (p est petit), alors le terme pn sera proche de zéro, conduisant à un taux d'utilisation de l'UC
proche de 1. Cela signifie que le processeur est activement utilisé la plupart du temps.
 Nombre de Processus Concurrents (n) : En augmentant le nombre de processus concurrents (n), la
multiprogrammation permet d'avoir constamment des tâches prêtes à être exécutées. Cela contribue à
maintenir un taux d'utilisation élevé de l'UC.

Problématique : Comment améliorer le taux d'utilisation de I'UC lorsque le processus qui détient réalise
des les opérations d'E/S ?
La problématique d'améliorer le taux d'utilisation de l'UC lorsqu'un processus effectue des opérations d'E/S peut
être résolue en utilisant des techniques d'asynchronisme et de parallélisme :

Utilisation de l'E/S Asynchrone : Adoptez des opérations d'E/S asynchrones pour permettre au processus de
continuer son exécution pendant que l'opération d'E/S est en cours. Cela évite le blocage du processus et
améliore l'efficacité globale.

Activités asynchrones des processus en mettant l'accent sur certaines limitations ou inconnues spécifiques :

 Pas de Connaissance sur la Date de Lancement :


Le lancement d'un processus en informatique peut être déclenché par un utilisateur ou un
événement système, avec des cas où le lancement est planifié à l'avance ou déclenché de
manière asynchrone en réponse à un événement.
 Pas de Connaissance sur la Date de Fin d'un Processus :

4
La durée d'exécution d'un processus est imprévisible en raison de divers facteurs. Des
événements imprévus, des erreurs ou des conditions système peuvent influencer la durée
d'exécution, rendant difficile la prédiction de la date de fin.
 Nombre de Processus Inconnu :
L'évolution dynamique des processus implique une variation du nombre de processus
lancés au fil du temps. Cela dépend des besoins du système, des actions de l'utilisateur ou
d'autres facteurs externes.

 Évolution Dynamique des Processus :


Les processus informatiques évoluent dynamiquement en réponse aux changements
environnementaux. Cela peut inclure le lancement de nouveaux processus, la terminaison
de processus existants ou la modification des priorités des processus en cours d'exécution.
Partage du CPU lors d'attente des E/S

Schéma illustrant le partage du CPU pendant l'attente des opérations d'entrée/sortie (E/S) entre trois
programmes. Voici une description du schéma :

 Programme 1 :
 Le programme 1 est en cours d'exécution, puis il effectue une requête d'opération d'E/S.
 Pendant l'attente de l'opération d'E/S, le CPU est libéré, permettant à d'autres processus d'être exécutés.
 Programme 2 :
 Le programme 2 prend le relais et commence son exécution pendant que le programme 1 attend
l'achèvement de son opération d'E/S.
 Le programme 2 peut également effectuer une requête d'E/S, entraînant à nouveau une attente.
 Programme 3 :
 Le programme 3 entre en scène à son tour lorsque le programme 2 effectue une opération d'E/S et
attend.
 Il peut également effectuer une requête d'E/S, poursuivant le cycle d'attente et d'exécution.

Ce schéma illustre le concept de multiprogrammation, où plusieurs programmes peuvent être actifs en même
temps, tirant parti des temps d'attente pendant les opérations d'E/S pour exécuter d'autres processus. Cela
contribue à une utilisation plus efficace du CPU en évitant les périodes d'inactivité pendant lesquelles un
processus attend une E/S. Ce modèle est couramment utilisé dans les systèmes d'exploitation modernes pour
maximiser l'efficacité des ressources du système.

5
Partage du CPU dans le temps

un schéma illustrant le partage du CPU dans le temps entre deux programmes. Voici une description du schéma :

 Programme 1 :
 Le programme 1 est en cours d'exécution pendant une période donnée, peut-être un quantum de temps
défini.
 Programme 2 :
 Le programme 2 prend le relais après la fin du quantum du programme 1.
 Le changement de programme est géré par l'OS dispatcher, qui sélectionne le programme suivant à
exécuter.
 OS Dispatcher :
 L'OS dispatcher est responsable du changement de contexte entre les programmes. Il sélectionne les
programmes en attente d'exécution en fonction de politiques de planification définies par le système
d'exploitation.
 Attente :
 Les programmes peuvent entrer dans un état d'attente, par exemple, en attendant des ressources ou des
opérations d'E/S, pendant lesquelles le CPU peut être attribué à d'autres programmes.
 Interrupts d'horloge et Quantum :
 Les interrupts d'horloge déterminent le rythme auquel le système d'exploitation reprend le contrôle du
CPU pour effectuer des changements de contexte.
 Le quantum représente la durée maximale pendant laquelle un programme peut s'exécuter avant qu'il ne
soit potentiellement interrompu pour permettre à un autre programme de s'exécuter.

Ce schéma illustre le concept de commutation de contexte et de partage du CPU dans le temps entre plusieurs
programmes. C'est une approche courante dans la multiprogrammation, où plusieurs programmes peuvent être en
cours d'exécution simultanément, chacun obtenant une part du temps du processeur.

un schéma illustrant le comportement des processus, en mettant en avant l'alternance entre les périodes
d'utilisation du CPU et d'attente pendant des opérations d'entrée/sortie (E/S). Voici une description du schéma :

 Long CPU Burst :


 Une période prolongée d'utilisation intensive du CPU, où le processus effectue des calculs ou d'autres
opérations sans interruption significative.
 Waiting for I/O :

6
 Une transition vers une période d'attente pendant laquelle le processus effectue des opérations
d'entrée/sortie. Pendant cette phase, le CPU est inactif car le processus attend la fin d'une opération
d'E/S.
 Short CPU Burst :
 Une reprise d'une courte période d'utilisation intensive du CPU après la fin d'une opération d'E/S.
 Tributaire du CPU et des E/S :
 Le schéma indique que le comportement des processus alterne entre être tributaire de l'utilisation du
CPU (lors des bursts CPU) et être tributaire des opérations d'E/S (lors de l'attente).
 Note sur l'augmentation de la vitesse des CPU :
 La note mentionne qu'avec l'augmentation de la vitesse des CPU, les processus deviennent plus
tributaires des opérations d'E/S que de l'utilisation du CPU. Cela peut être dû au fait que les progrès
technologiques ont conduit à des CPU de plus en plus rapides, mettant en évidence les temps d'attente
pendant les opérations d'E/S comme un facteur limitant.

Notion d'interruption
Une interruption est un mécanisme permettant de stopper l'exécution du processus en cours afin
d'aller exécuter une autre tâche qui se veut plus urgente !!!
Elle est caractérisée par un numéro et une routine d'interruption associée, également appelée
traitement d'interruption.

Types d'interruptions :
 Il existe deux types d'interruptions :
1. Interruptions externes ou matérielles : Provenant de sources externes au processeur, comme
des périphériques matériels signalant une opération terminée.
2. Interruptions internes ou logicielles : Déclenchées par des instructions logicielles, indiquant
généralement la fin d'une opération ou une condition spécifique.

En résumé, les interruptions sont un mécanisme essentiel pour gérer efficacement les ressources
d'un système informatique, permettant la gestion des tâches urgentes, le traitement des événements
matériels et logiciels, ainsi que la mise en œuvre du partage du temps processeur pour exécuter
plusieurs processus.

Le Process Control Block (PCB)


Le Process Control Block (PCB) est une composante essentielle dans la gestion des processus d'un
système informatique. Voici une synthèse des points mentionnés :

Fonction du PCB :
 Le PCB permet la sauvegarde et la restauration du contexte, à la fois en termes de mémoire et de
processeur, lors des changements de processus actifs dans le système.
Partage de ressources entre processus :
 Les processus peuvent partager diverses ressources telles que la mémoire, d'autres processus, des
fichiers, des opérations d'entrée/sortie (I/O), etc.

Structure d'un PCB :


 Un PCB peut être composé des éléments suivants :
1. Identificateur du processus : Un identifiant unique attribué à chaque processus.
2. État du processus : Indique si le processus est prêt, en attente, en cours d'exécution, etc.
3. Compteur ordinal : Contient la valeur du compteur ordinal, indiquant l'instruction en cours
d'exécution.
4. Contexte pour reprise : Comprend les registres et pointeurs nécessaires pour reprendre
l'exécution du processus.

7
5. Chaînage selon les files de l'Ordonnanceur : Utilisé pour maintenir l'ordre d'exécution des
processus.
6. Priorité : Utilisée dans le processus d'ordonnancement pour déterminer l'ordre d'exécution.
7. Informations mémoire : Limites et tables pour gérer l'accès à la mémoire, y compris les
pages ou segments.
8. Informations sur les ressources utilisées : Fichiers ouverts, outils de synchronisation,
informations sur les opérations d'entrée/sortie.
9. Informations de comptabilisation : Collecte de données statistiques pour la comptabilisation
et la surveillance des performances.

Exemple de PCB

Un Process Control Block (PCB) est une structure de données qui contient des informations
importantes sur un processus dans un système d'exploitation. Voici un exemple de ce à quoi
pourrait ressembler un PCB, incluant les éléments mentionnés :

 Pointer to the process parent: Adresse ou identificateur du processus parent.


 Pointer to the process child: Adresse ou identificateur du processus enfant.
 Process State: État du processus (en cours d'exécution, prêt, en attente, terminé, etc.).
 Process Identification Number (PID): Numéro d'identification unique attribué au processus.
 Process Priority: Niveau de priorité du processus pour l'ordonnancement.
 Program Counter: Valeur du compteur ordinal, indiquant l'instruction en cours d'exécution.
 Registers: Les valeurs actuelles des registres du processeur.
 Pointers to Process Memory: Adresses ou pointeurs vers les blocs de mémoire du processus.
 Memory Limits: Limites de mémoire, spécifiant les adresses de début et de fin de la mémoire
allouée au processus.
 List of open Files: Descripteurs de fichiers ou blocs de contrôle de fichiers représentant les
fichiers ouverts par le processus.

8
La commutation de contexte

La séquence décrite semble décrire la commutation de contexte entre deux processus dans un système
d'exploitation. Voici une interprétation de la séquence :

1. Processus 1 (P1) en cours d'exécution :


 Le noyau du système d'exploitation est actuellement en train d'exécuter le Processus 1.
2. Interruption ou appel système (syscall) :
 Une interruption matérielle ou un appel système (syscall) se produit, indiquant qu'il est
nécessaire de passer à un autre processus ou de gérer une opération système.
3. Sauvegarde des registres CPU (Contexte de P1) :
 Avant de passer au Processus 2, les registres du CPU du Processus 1 (P1) sont sauvegardés.
Cela garantit que l'état actuel du processus est préservé.
4. TCB1 (Table des contextes du Processus 1) :
 Le contexte du Processus 1, y compris ses informations critiques, est généralement stocké dans
une structure de données appelée Table des contextes du Processus (TCB).
5. Chargement des registres CPU depuis le TCB du Processus 2 :
 Les registres du CPU sont chargés avec les valeurs correspondant au contexte du Processus 2
(P2) depuis sa TCB. Cela prépare le CPU à exécuter le Processus 2.

9
La séquence décrite semble décrire la commutation de contexte entre deux états d'exécution du
même processus (P) dans un système d'exploitation. Voici une interprétation de la séquence :

1. Processus P en cours d'exécution :


 Le processus P est en cours d'exécution, et le système d'exploitation (Operating System)
supervise cette exécution.
2. Interruption ou appel système (system call) :
 Une interruption matérielle ou un appel système se produit, indiquant qu'il est nécessaire
d'interrompre temporairement l'exécution du processus P.
3. Sauvegarde de l'état dans le PCB (Process Control Block) :
 L'état actuel du processus P est sauvegardé dans son PCB. Le PCB contient des
informations critiques telles que les valeurs des registres du CPU, le compteur ordinal, etc.
4. Rechargement de l'état depuis le PCB :
 Le système d'exploitation peut décider de reprendre l'exécution du processus P. Dans ce
cas, il recharge l'état précédemment sauvegardé du processus P depuis son PCB.
5. Reprise de l'exécution du processus P :
 Le processus P reprend son exécution à partir du point où il a été interrompu.

Cette séquence montre comment les PCB facilitent la commutation de contexte en permettant de
sauvegarder et de restaurer l'état d'un processus.

10
Résumer de cette partie

Partie 1 : Généralités sur les processus

Cette partie débute en soulignant la distinction entre mécanismes (aspects techniques) et


politiques (stratégies) dans le domaine informatique. Les mécanismes gèrent l'exécution des
tâches, tandis que les politiques définissent les règles d'accès et les stratégies. L'exemple illustré
montre comment une application peut avoir des mécanismes de stockage sécurisé, mais les
politiques déterminent qui peut accéder à ces données.

Ensuite, le texte explore la différence entre le multitasking et le multiprocessing, où le premier


gère simultanément plusieurs tâches sur un seul processeur, tandis que le second utilise plusieurs
processeurs pour exécuter des tâches en parallèle.

Le processus de création d'un programme, représenté par la chaîne de production des


programmes, est détaillé. Les étapes clés incluent le module source, le compilateur, l'éditeur de
liens, l'assemblage, le bibliothécaire, le débogueur, le chargeur, aboutissant à un programme
exécutable.

Une section est consacrée aux fichiers DLL (Dynamic Link Library), soulignant leur nature de
bibliothèques dynamiques qui permettent à d'autres logiciels d'accéder à des fonctionnalités
spécifiques.

Partie 2 : Programme Vs Processus

La distinction entre programme et processus est présentée. Un programme est une entité passive,
représentée par un fichier contenant des instructions, tandis qu'un processus est actif, résultant
de l'exécution d'un programme chargé en mémoire. Un programme devient un processus
lorsqu'il est chargé en mémoire.

La section sur l'exécution multi-tâches explore comment optimiser l'utilisation du processeur dans
un système monoprocesseur multi-tâches. La problématique centrale est le taux d'utilisation de
l'unité centrale (UC). La multiprogrammation vise à améliorer l'utilisation globale des ressources,
et une formule est présentée pour estimer le taux d'utilisation de l'UC.

L'influence des paramètres (p et n) est expliquée, où une faible fraction de temps d'E/S (p) et un
nombre élevé de processus concurrents (n) contribuent à un taux d'utilisation élevé de l'UC.

Une problématique spécifique est abordée : comment améliorer le taux d'utilisation de l'UC
lorsqu'un processus effectue des opérations d'E/S. Des techniques d'asynchronisme et de
parallélisme, notamment l'E/S asynchrone, sont suggérées pour éviter le blocage du processus
pendant les opérations d'E/S.

11
Partie 3 : Interruptions, Process Control Block (PCB) et Commutation de Contexte

La notion d'interruption est introduite comme un mécanisme essentiel pour arrêter l'exécution
d'un processus en cours et exécuter une tâche plus urgente. Deux types d'interruptions sont
présentés : externes (matérielles) et internes (logicielles).

Le Process Control Block (PCB) est défini comme une composante cruciale pour la gestion des
processus. Il permet la sauvegarde et la restauration du contexte lors des changements de
processus, et sa structure comprend des éléments tels que l'identifiant du processus, l'état du
processus, le compteur ordinal, etc.

Des schémas illustrent la commutation de contexte entre processus et états d'exécution, montrant
comment les registres CPU sont sauvegardés dans le PCB et rechargés lors de la commutation.

La séquence de commutation de contexte entre deux processus est décrite, soulignant les étapes
de sauvegarde, de chargement des registres CPU, et de reprise de l'exécution du processus
suivant.

La séquence de commutation de contexte au sein du même processus est également expliquée,


mettant en avant le rôle du PCB dans la sauvegarde et le rechargement de l'état du processus.

En conclusion, Cette partie offre une compréhension approfondie de l'ordonnancement des


processus, depuis la création d'un programme jusqu'à la gestion des interruptions et des PCB
pour assurer une utilisation efficace des ressources du système informatique.

12

You might also like