Professional Documents
Culture Documents
Partie 1 Chapitre 1
Partie 1 Chapitre 1
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
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.
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
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.
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.
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 :
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.
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 :
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.
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.
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 :
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 :
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 :
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
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.
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.
12