Académique Documents
Professionnel Documents
Culture Documents
Operating system
Karam Ahkouk
2
Objectif
Système d'exploitation:
- Concepts de base d’un système d’exploitation : définitions, présentation.
- Historique des systèmes d’exploitation
- Types, caractéristiques des systèmes d'exploitation
- Environnement informatique sous Unix, Windows et MacOS
- Système d'exploitation Windows et Installation de Linux.
- Ordonnancement des processus
- Exclusion mutuelle
- Gestion de mémoire
- Gestion des entrées/sorties
- Gestion des disques, notions de partitionnement, de montage de volumes
physiques et logique.
- Manipulation des processus Linux : contrôle, redirections, tâche de fond,
filtres.
- Programmation de scripts sur Linux.
- Gestion des services.
3
Qu'est ce qu'un Système
d‘Exploitation?
4
Un Système d‘Exploitation
• Définition
5
Rôle d’un Système d‘Exploitation
Rôle:
– Gérer le ou les processeurs et la mémoire
– Gérer les périphériques
– Contrôler les autres logiciels et applications dès le
démarrage
– Joue le rôle d’intermédiaire entre les utilisateurs/
applications et le matériel.
6
Rôle d’un Système d‘Exploitation
7
Rôle d’un Système d‘Exploitation
8
Les Générations des
systèmes d'exploitation
9
Les Générations des systèmes
d'exploitation
• Cinq générations:
– Par lots (batch)
– Multi programmés
– En temps partagé
– Temps réel
– Distribués
10
Les Générations des systèmes
d'exploitation
11
Les Générations des systèmes
d'exploitation
• Multi programmés:
– Plusieurs programmes sont exécutés
simultanément par planification
– Se base sur les interruptions d'E/S
– Plusieurs programmes dans la mémoire
– Suspension régulière de l'exécution d'un
programme pour continuer l'exécution d'un autre
12
Les Générations des systèmes
d'exploitation
• En temps partagé:
– Dépend du temps nécessaire pour basculer entre
les différents processus
– Plusieurs utilisateurs sont simultanément
connectés
– Répondre rapidement aux demandes de
l'utilisateur
– Donner à chaque utilisateur l'impression qu'il est
le seul à utiliser l'ordinateur
13
Les Générations des systèmes
d'exploitation
• Temps réel:
• Apparus dans les années 1970
– Donner des résultats correctes dans un délai
déterminé
– Utilisés souvent dans l’industrie avec des
(capteurs, périphériques, etc…)
– Retard de réponse = échec de l'appareil
14
Les Générations des systèmes
d'exploitation
• SE Distribués:
– Le partage des ressources entre les ordinateurs
– Un utilisateur d'un ordinateur A peut utiliser les
ressource d’un autre ordinateur B
– Utilises les capacités d'un réseau informatique,
contrôle un groupe de machines, et les fait
apparaître comme une machine unique, virtuelle,
de très grande capacité
15
Historique des Systèmes
d‘Exploitation
16
Historique des Systèmes d‘Exploitation
• Unix en 1969:
– Créé par un groupe d’employés d’AT&T
– Le premier Unix était écrit en assembleur
– Dès 1973, presque tout Unix est réécrit en C
– Le OS était distribué sous forme de code source
– 1ers clients: les universités et centres de
recherches américains et les grands constructeurs
informatiques .
17
Historique des Systèmes d‘Exploitation
• Unix(les années d’après):
– Mono-user au départ
– L’existence de quelques utilitaires tell que cp et
rm et un interpréteur de commandes appelé shell.
– Commande fork ajouté l’année d’après
– Rapidement devenu multi-user
– Est devenu le noyau de plusieurs autres OS
18
Historique des Systèmes d‘Exploitation
• Unix(Aujourd’hui):
– Multi-tâches et multi-utilisateurs.
– Processus et noyau.
– Shell et commandes. Environnement C, C++.
– Environnement TCP/IP.
– Système ouvert.
19
Historique des Systèmes d‘Exploitation
• Linux(1991):
– Lancé par Linus, un étudiant de l'université
d'Helsinki (Finlande)
– 1ére version contienne quelques applications
comme le compilateur gcc ou le shell bash.
– Clone gratuit d’UNIX pour les PC,
– open source.
20
Historique des Systèmes d‘Exploitation
• Linux(1991- aujourd’hui):
– Son point faible réside dans son système de
fichiers
– Système de fichiers amélioré avec Ext2fs .
– Au départ existait sur les plateformes Intel puis
dans d’autres plateformes comme (Mac, Atari,
Amiga, Alpha)
– Plusieurs versions: Debian, Ubuntu, Linux Mint,
Fedora, CentOS, etc…
21
Historique des Systèmes d‘Exploitation
• Macintosh OS:
– Apparu en 1984
– Renommé en "Mac OS" in 1997
– Remplaçant de Apple series, Apple dos, etc…
– Le 1er à proposer le concept des fenêtres, du
glisser-déposer, la corbeille, le plug-and-play
– Aujourd’hui possède le noyau Linux, avec une
interface graphique élégante et ergonomique
– Optimisation particulière des traitements
multimédia
22
Historique des Systèmes d‘Exploitation
• MS-DOS (Microsoft Disk Operating System):
– 1ère version 1981
– De type DOS
– SE des premiers PC
– Mono-utilisateur
– Mono-tâche
– Interface en ligne de commande
23
Historique des Systèmes d‘Exploitation
• MS-DOS (Microsoft Disk Operating System):
24
Historique des Systèmes d‘Exploitation
• MS-Windows (Microsoft Disk Operating
System):
– Inspiré par Apple Lisa & l’interface Macintosh
– Au départ, une coquille graphique pour DOS.
– à partir de Windows 95 nous commençons à
assister à un transfert de nombreuses
fonctionnalités de DOS vers Windows
25
Historique des Systèmes d‘Exploitation
• MS-Windows (Microsoft Disk Operating
System):
26
Historique des Systèmes d‘Exploitation
• MS-Windows (Microsoft Disk Operating
System):
28
Le marché des systèmes
d’exploitation
Les serveurs
Un serveur est une machine dont le rôle est d’héberger des données
ou des programmes afin de répondre aux demandes de ses clients.
Les postes de travail
Un poste de travail est destiné à un seul utilisateur, pour un usage
professionnel ou personnel. La grande majorité des postes de travail utilisent
un système d’exploitation de la famille Windows.
Les terminaux mobiles
Ces dernières années ont vu apparaître un grand nombre d’appareils
mobiles de plus en plus sophistiqués : téléphones portables, tablettes… Ces
périphériques embarquent des systèmes d’exploitation spécifiques ou des
versions modifiées de systèmes existants.
29
Windows, Linux et MacOs
30
Autres types de SE (1)
• Systèmes d’exploitation pour les
Smartphones:
– Android par Google
– IOS d’apple
– HarmonyOs
– Windows Phone
• La plupart des systèmes mobile basée sur un
noyau Linux
31
Autres types de SE (2)
• Systèmes d’exploitation pour les
SmartWatches:
– Wear OS par Google
– Apple Watch Os
– Tizen Os
– Harmony Os
– Garmin OS
32
Classes des systèmes
d'exploitation
33
Classes des systèmes d'exploitation
Selon les contraintes d'utilisation
• Mono-utilisateur/Mono-tâche
– Un seul utilisateur/une seule tâche à la fois
• Mono-utilisateur/Multi-tâches
– Un seul utilisateur à la fois exécute plusieurs
tâches simultanément
• Multi−utilisateurs/Multi-tâches
– Plusieurs utilisateurs à la fois exécutent chacun
plusieurs tâches simultanément et partagent les
mêmes ressources matérielles
34
Classes des systèmes d'exploitation
Selon les contraintes d'utilisation
• Mono-tâche
– Une seule tâche à la fois
– L’exécution d’une commande donne naissance à
une tâche
– Un programme lancé monopolise les ressources
de la machine jusqu’à sa fin d’exécution
– En cas de blocage du programme, tout le système
est arrêté : il faut redémarrer l’ordinateur
35
Classes des systèmes d'exploitation
Selon les contraintes d'utilisation
• Mono-utilisateur
– Un seul utilisateur à la fois
– Pas de notion de sessions des utilisateurs
– Un deuxième utilisateur doit attendre pour que la
machine soit libérée afin d’exécuter ses tâches
– Ces Systèmes ont quasiment disparu du paysage
des SE
36
Classes des systèmes d'exploitation
Selon les contraintes d'utilisation
• Multi-Tâches
– Un système multitâche permet l’exécution
simultanée de plusieurs programmes sur une
machine
– l’illusion d’une exécution en parallèle: Une
simultanéité apparente
– Chaque programme est exécuté tour à tour à un
rythme très rapide
37
Classes des systèmes d'exploitation
Selon les contraintes d'utilisation
• Multi-Tâches(Coopératif)
– L’application décide du moment où elle « rend la
main »
– Le système est dépendant des applications qu’il
accueille
– Un programme mal conçu peut monopoliser les
ressources ou bloquer le système en cas de crash
38
Classes des systèmes d'exploitation
Selon les contraintes d'utilisation
• Multi-Tâches(Préemptif)
– Remplace le multitâche coopératif
– Le système d’exploitation distribue les temps
d’exécution entre les différents programmes
– C’est le système qui décide du moment où il «
donne la main » à un autre programme
– Les ressources sont mieux partagées entre les
applications
– Une erreur dans un programme ne menace plus
l’ensemble du système
39
Classes des systèmes d'exploitation
Selon les contraintes d'utilisation
• Multi-Utilisateurs
– Autorise la connexion simultanée de plusieurs
utilisateurs
– Notion de sessions des utilisateurs
– Partagent les mêmes ressources matérielles
– Les utilisateurs ont le droit de demander
l’exécution simultanée des commandes
40
Classes des systèmes d'exploitation
Selon les contraintes d'utilisation
41
Classes des systèmes d'exploitation
Selon l’architecture du matériel
• Systèmes Mono-processeur
– Multiprogrammés et à temps partagé (pseudo-
parallélisme)
• Systèmes Parallèles : multiprocesseurs
– Traitement parallèle par plusieurs processeurs
– Grande capacité de traitement, temps de réponse
court et fiabilité
42
Les qualités des systèmes
d’exploitation
• Les systèmes d’exploitation peuvent être jugés suivant
différents critères :
– La robustesse (la protection de l’espace mémoire alloué à
chaque processus)
– La stabilité
– L’ouverture et la fiabilité (le nombre d’application qui sont
développées par les éditeurs indépendants pour
fonctionner avec tel ou tel système.)
– La rapidité de traitement
– L’interopérabilité avec d’autres systèmes
– La connectivité réseau
– L’approbation des utilisateurs
43
SE & Concepts de base
44
SE & Concepts de base
• Composants d'un ordinateur
45
SE & Concepts de base
Organisation d’un système informatique
46
SE & Concepts de base
Fonctions d’un système d’exploitation
47
SE & Concepts de base
Architecture d’un système d’exploitation
• Des bibliothèques.
48
SE & Concepts de base
Architecture d’un système d’exploitation
• Le Noyau (Kernel):
– Le composant central d’un système d’exploitation
49
SE & Concepts de base
Architecture d’un système d’exploitation
51
SE & Concepts de base
Architecture d’un système d’exploitation
• Des bibliothèques:
– Servent à regrouper les opérations les plus
utilisées dans les programmes informatiques
– But: éviter la redondance de la réécriture des
opérations dans tous les programmes.
– Deux types de bibliothèques:
• les bibliothèques système
• Les bibliothèques utilitaires
52
SE & Concepts de base
Architecture d’un système d’exploitation
• Outils système:
– Configurer le système (gérer les comptes des
utilisateurs, configuration des paramètres réseau,
démarrage automatique des services, etc.) ;
– Passer le relais aux applications proposant des
services à un ou plusieurs utilisateurs ou à
d’autres ordinateurs, grâce au réseau par exemple.
53
SE & Concepts de base
Architecture d’un système d’exploitation
54
SE & Concepts de base
Modes d'exécution d’un SE
55
SE & Concepts de base
Appels systèmes
56
SE & Concepts de base
Appels systèmes
57
SE & Concepts de base
Appels systèmes
58
Gestion des processus
59
C’est quoi un processus
• Un processus est un programme en exécution
• L’exécution d’un processus doit progresser
séquentiellement
• à n’importe quel moment une seule
instruction au plus est exécutée au nom du
processus
• Processus ≠ Programme
60
à quoi ça sert un processus?
• À faire plusieurs activités ”en même temps”
• Problème:
– Un processeur ne peut exécuter qu’une seule
instruction à la fois.
• BUT:
– Partager un processeur entre différents processus.
• Attention!!!
Ne pas confondre processus et processeur
61
Hiérarchisation des processus
UNIX
• Sous UNIX :
– Un processus peut créer un autre
• Processus créateur: Processus Père
• Processus créé: Processus Fils
– Le père et l’enfant continuent d’être associés.
– L’enfant peut lui-même créer d’autres processus
– Un processus a un seul parent et peut avoir 0 ou
plusieurs fils
– Formation d’une hiérarchie de processus depuis le
processus N° 1 (init)
62
Hiérarchisation des processus
UNIX
• Sous UNIX :
– Au démarrage:
• Le swapper est créé (Processus N°0)
• Le swapper va ensuite créer deux autres processus:
– le processus init
– le processus [kthreadd]
– swapper s’endort.
– Deux espaces créé:
• Espace utilisateur avec init au sommet
• Espace noyau avec [kthreadd].
63
Hiérarchisation des processus
UNIX
64
Hiérarchisation des processus
Windows
• Sous Windows:
– Pas le cas, Gestion complexe des processus
– Un processus peut créer un autre
• Processus créateur: Processus Père
• Processus créé: Processus Fils
– le processus enfant continuera à s'exécuter si son
processus parent s'est terminé.
65
Hiérarchisation des processus
Création de processus (POSIX)
• Fork()
67
États des processus
• Quand un processus s’exécute, il change d’état.
• États
– En exécution: Les instructions sont en cours d’exécution
(en train d’utiliser la CPU).
– En attente: Le processus attend qu’un événement se
produise.
– Prêt: Le processus attend d’être affecté à un processeur.
• Un seul processus peut être en exécution sur n’importe
quel processeur à tout moment.
• Toutefois, plusieurs processus peuvent être prêts et en
attente
68
États des processus
69
États des processus
• État Zombie d’un processus (sur unix):
– C’est un processus achevé,
– mais dispose toujours d'un identifiant de processus (PID)
– Encore visible dans la table des processus
– Un processus Zombie ne peut plus être achevé(Déjà mort)
– Le processus n’est supprimé définitivement que lorsque
son père est notifié (Obtention du code de fin du
processus fils)
70
États des processus
71
États des processus
• Point de vue conceptuel: chaque processus
possède son processeur virtuel.
• Réalité: le processeur bascule constamment d’un
processus à l’autre.
• Ce basculement rapide est appelé
multiprogrammation.
• La vitesse de traitement d’un processus donné
n’est pas uniforme et non reproductible
Pseudo-parallélisme:
Les processeurs sont capables de faire plusieurs choses en même temps.
72
États des processus
• Le processeur est commuté entre plusieurs
processus
• Un seul processus est exécuté à la fois
• Tous les processus progressent (Pseudo
parallélisme)
73
Fin d’un processus
• Types d’arrêt:
– Arrêt normal (volontaire) (exit)
– Arrêt pour erreur (volontaire)
– Le processus est arrêté par un autre processus
(involontaire) (kill)
74
Fin d’un processus
• Un processus est détruit en général à la fin de
son exécution
• Il peut être détruit à la demande d'un autre
processus ayant ce droit (comme le père)
• Lorsqu'un processus est détruit, son PCB et
ses ressources sont libérés
• La destruction du père peut entraîner celle de
sa descendance (kill process group)
75
SE & Processus
• Un processus est représenté dans le SE par un PCB
76
PCB: Bloc de contrôle de processus
• Le PCB contient:
– L’état du processus.
– PID, PPID, UID
– Compteur d’instructions (CO): indique l’adresse de l’instruction
suivante devant être exécutée par le processus.
– Les registres du processeur, Informations sur l’ordonnancement
de la CPU
– Informations sur la gestion de la mémoire.
– Informations sur l’état des E/S: liste des périphériques E/S
allouées à ce processus, une liste des fichiers ouverts, etc.
– Etc…
77
Informations sur les processus
(Linux)
• Sur Linux:
– ps
– ps -lf
78
Informations sur les processus
(Windows)
• Sur Windows:
– tasklist
79
Ordonnancement des
processus
80
Ordonnancement des processus
• Dans un système multitâche:
– le processeur ne peut, à un moment donné,
exécuter qu’une instruction (d’un programme) à la
fois.
• L’ordonnanceur (scheduler):
– Est le module du SE qui s’occupe de sélectionner
le processus à exécuter parmi ceux qui sont prêts.
81
Ordonnancement des processus
• Le processeur bascule successivement d'un
processus à l'autre à chaque fin de quantum
• Le processeur est commuté également suite à
un appel système ou une interruption : E/S…
• La commutation est réalisée au moyen d'un
ordonnanceur et un mécanisme
d'interruption
• L'interruption provoque un changement de
contexte (CO, registres…)
82
Ordonnancement des processus
83
Ordonnancement
Interruptions
• Une interruption est provoquée par un signal
• Les interruptions sont dues à des événements
internes ou externes et peuvent être
masquable ou non masquable
• A chaque type est associée une routine de
traitement d'interruption
84
Ordonnancement
Interruptions
• Numéros d’interruptions
85
Ordonnancement
Mécanisme de gestion des interruptions
• Lors d'une interruption:
– le processeur enregistre tout ou une partie de son
état interne dans la pile système
– exécute ensuite une routine d'interruption(table des
sous programme à exécuter)
• Une fois le traitement de l'interruption terminé
– la routine se finit normalement par une instruction de
retour d'interruption
– Restaurer l'état enregistré et fait repartir le
processeur de l'endroit où il avait été interrompu
(la routine d'interruption modifie l'adresse de retour)
86
Ordonnancement
Appels système
• Un appel système est un moyen d'accès aux
données sensibles protégées par le système
(mémoire, disque…)
• Un appel système provoque une interruption
logicielle (trap)
• Un appel système n’est en général pas
interruptible (haute priorité)
87
Ordonnancement
Appels système
88
Ordonnancement
Types
• 2 types d'ordonnancement:
– sans réquisition ou ordonnanceur non préemptif
ou coopératif
– avec réquisition ou ordonnanceur préemptif
89
Ordonnanceur(non préemptif)
• Ordonnanceur non préemptif ou sans
réquisition:
– Choix du prochain processus à exécuter
– Allocation du processeur jusqu’à ce qu’il se
termine ou qu’il se bloque (en attente d’un
événement).
– Il n’y a pas de réquisition
– Pas suspension de force d’un processus.
– Aucune décision d’ordonnancement (lors d’un
clockintr).
90
Ordonnanceur(préemptif)
• Ordonnanceur préemptif ou avec réquisition:
– S’assurer qu’aucun processus ne s’exécute
pendant trop de temps
– Utilisation de l’horloge électronique
– A chaque interruption d’horloge (clockintr):
• Le SE Reprend le contrôle
• Le SE décide si le processus courant doit poursuivre son
exécution ou s’il doit être suspendu pour laisser place à
un autre
• Commutation
91
Algorithmes d’Ordonnancement
92
Algorithmes d’Ordonnancement
FCFS: First Come, First Served
• Premier arrivé, premier servi
• Utilisation d’une file d’attente FIFO (First in, First
out)
• La CPU est allouée à un processus jusqu’à la fin
ou E/S.
• N’est pas utile pour le temps partagé(many users)
• Temps moyen d’attente élevé
• Effet d’accumulation (Convoy effect)
93
Algorithmes d’Ordonnancement
FCFS: First Come, First Served
• FCFS:
Processus exécuté
jusqu’à sa fin ou blocage
File de type FIFO
94
Algorithmes d’Ordonnancement
SJF: Shortest job first
• Association du temps maximal d’exécution
• Le processus ayant le temps le plus court est
choisi
• Si 2 processus possèdent la même longueur, le
FCFS est utilisé.
• Temps moyen d’attente minimal pour un
ensemble de processus donné
• Difficulté de connaître le temps d’exécution
95
Algorithmes d’Ordonnancement
SJF: Shortest job first
• SJF
96
Algorithmes d’Ordonnancement
SRTF: Short Remaining Time First
• Version préemptif du SJF
• Un processus arrive dans la file des processus
• L’ordonnanceur compare la valeur espérée
pour ce processus contre la valeur du
processus actuellement en exécution
• Si le temps du nouveau processus est plus
petit, il rentre en exécution immédiatement
97
Algorithmes d’Ordonnancement
Tourniquet: Round Rodin
99
Algorithmes d’Ordonnancement
Tourniquet: Round Rodin
• Tourniquet :
100
Algorithmes d’Ordonnancement
Tourniquet: Round Rodin
101
Algorithmes d’Ordonnancement
avec priorités
• Une priorité est associée à chaque processus
• Les processus sont rangés par classes de
priorité
• CPU est allouée au processus de plus haute
priorité
• Les processus dans la même classe sont
schedulés en utilisant FIFO avec tourniquet.
Ordonnancement par priorités ≠ SJF
102
Algorithmes d’Ordonnancement
avec priorités
• Par priorités:
Processus Temps Cycle Priorité
P1 10 3
P2 50 4
P3 5 3
P4 3 2
P5 2 4
P6 1 3
P7 1 3
P8 8 4
103
Algorithmes d’Ordonnancement
avec priorités
• Par priorités:
104
Algorithmes d’Ordonnancement
avec priorités
• Exemple d’algorithme:
• 3 files d’attente:
- F1: quantum = 8ns;
- F2: quantum = 16ns ;
- F3: FCFS
• Nouveau processus P1 F1
• Si P1 ne finit pas en 8ns, alors P1 F2
• Si F1 est vide, le processus (P2) en tête de F2 prend la
CPU.
• Si P2 ne termine pas en 16ns, alors P2 F3
• Les Processus de F3: exécutés avec FCFS (seulement
quand Q 0 et Q 1 sont vides)
107
Algorithmes d’Ordonnancement
Par Files multiples
109
Commutation de contexte Rappel
110
Commutation de contexte Rappel
111
La communication inter-processus
• Les processus concurrents peuvent être
coopératifs ou indépendants
• Les processus ont souvent besoin de
communiquer entre eux
• Nécessité d’une communication entre
processus de préférence de façon structurée,
sans utiliser les interruptions.
112
La communication inter-processus
• Les processus peuvent coopérer en partageant
des ressources (mémoire, imprimante…) ou
par communication de données
• L'accès concurrent peut engendrer des conflits
• Le SE permet de synchroniser les activités des
processus et l'accès aux ressources en cas
d'accès concurrents.
113
Communication inter-processus
Problèmes
114
Communication inter-processus
Problèmes
115
Communication inter-processus
Problèmes
116
Communication inter-processus
Problèmes
• Exemple:
Demande d’impression:
– 1. lire in;
– 2. placer_fichier (in);
– 3. in=in + 1;
117
Communication inter-processus
Problèmes
• Exemple:
118
Communication inter-processus
Section critique
119
Solution pour Section Critique:
Exclusion mutuelle
• Nous avons besoin de l’exclusion mutuelle
(mutual exclusion)
• l’exclusion mutuelle: Deux processus ne
peuvent utiliser la section critique (SC) (partie
critique du code) à la fois
120
Solution pour Section Critique:
Exclusion mutuelle
• Contrôler l'accès et la sortie de la SC:
– 1- Réserver l'accès si la SC est libre ou
attendre
– 2- Utiliser la SC
– 3- Signaler la sortie de la SC aux autres
121
Solution pour Section Critique:
Exclusion mutuelle
• Conditions pour avoir une bonne solution:
1. Si un processus exécute sa SC, aucun autre n’est
autorisé à entrer à la SC.
2. Un processus qui n’est pas dans la SC ne peut
pas bloquer un autre.
3. Famine: Aucun processus ne doit attendre
indéfiniment.
4. Aucune supposition concernant la vitesse
relative des processus
122
Synchronisation des processus
Types de solutions
• Masquage des interruptions
• Exclusion mutuelle par attente active:
– Les variables de verrouillage
– L’alternance
– Solution de Peterson
– L’instruction TSL
• Primitives SLEEP et WAKEUP
• Sémaphores
• Moniteurs
• Échanges de messages
123
Masquage des interruptions
• Masque les interruptions à l’entrer d’une SC
• Restaurer les interruptions à la fin de la SC
• Le processus ne peut être suspendu durant la
SC
• Solution dangereuse:
– Si le processus ne restaure pas les
interruptions.(blocage total)
• Si le système est multiprocesseurs, le
masquage concerne une seule CPU
124
Exclusion mutuelle par attente active:
Les variables de verrouillage
125
Exclusion mutuelle par attente active:
Les variables de verrouillage
126
Exclusion mutuelle par attente active:
Les variables de verrouillage
• Problèmes
• Cette méthode n’assure pas l’exclusion
mutuelle
• Si un processus est suspendu juste après avoir lu la
valeur du verrou qui est égal à 0
127
Exclusion mutuelle par attente active:
L’alternance
128
Exclusion mutuelle par attente active:
L’alternance
129
Exclusion mutuelle par attente active:
L’alternance
• Problèmes
• Cette méthode assure l’exclusion mutuelle
mais:
• Impossible d’exécuter plusieurs fois la SC d’un
processus qui a souvent besoin d’entrer en SC qu’un
autre
• Un processus P1 doit attendre qu’un autre processus p2
qu’il exécute sa SC avant d’exécuté la sienne (même si
P2 n’en a pas besoin)
130
Exclusion mutuelle par attente active:
Solution de Peterson
131
Exclusion mutuelle par attente active:
Solution de Peterson
// Initialisation
bool interesse[2];
interesse[0] = false;
interesse[1] = false;
int tour;
132
Exclusion mutuelle par attente active:
Solution de Peterson
133
Exclusion mutuelle par attente active:
Solution de Peterson
134
Exclusion mutuelle par attente active:
L’instruction TSL
135
Exclusion mutuelle par attente active:
L'algorithme du boulanger (Baker algo)
137
Exclusion mutuelle par attente active:
L'algorithme du boulanger (Baker algo)
138
Exclusion mutuelle par attente active:
MUTEX en Conclusion
139
Exclusion mutuelle par attente active:
MUTEX en Conclusion
• Exemple:
• Que se passe-t-il à la fin de cette suite
d’opérations:
- Deux processus A et B partagent une variable M.
- Les règles d’ordonnancement: A sera exécuté
dès qu’il se trouve dans l’état prêt.
- A et B sont prêts A est exécuté, B en attente
A a besoin de E/S, B est exécuté B entre
dans sa SC, puis A devient prêt B en attente, A
est exécuté A reste dans l’attente active
140
Exclusion mutuelle
Sleep & Weekup
141
Exclusion mutuelle
Sleep & Weekup
142
Exclusion mutuelle
Sleep & Weekup
• Problème:
• Si le signal WAKEUP() arrive avant que le
processus destinataire ne soit endormi
Sleep(), le processus peut dormir pour
toujours.
• les conditions pour accéder à la SC doivent
être vérifier en MUTEX
143
Exclusion mutuelle
Sémaphores
144
Exclusion mutuelle
Sémaphores
145
Exclusion mutuelle
Sémaphores
semaphore mutex=1 ;
-------------------------------------------------
processus P1 :
P(mutex)
SC;
V(mutex) ;
-------------------------------------------------
processus P2 :
P(mutex)
SC;
V(mutex) ;
-------------------------------------------------
146
Exclusion mutuelle
Sémaphores
147
Exclusion mutuelle
Moniteurs
148
Exclusion mutuelle
Échanges de messages
150
Gestion de la mémoire
151
Gestion de la mémoire
Introduction
• La mémoire est une ressource importante qui
doit être gérée avec attention.
• Même si la quantité de mémoire d’un
ordinateur a beaucoup augmentée, la taille
des programmes s’accroît aussi.
• Mémoire Centrale
• Accès rapide mais faible capacité et coût élevé
152
Gestion de la mémoire
Introduction
• Mémoire: grand tableau de mots (octets),
chacun possédant sa propre adresse.
• La CPU extrait les instructions de la mémoire
en fonction de la valeur d’un compteur
d’instructions
• Utilisée lors de l’exécution des programmes
153
Gestion de la mémoire
Gestionnaire de la mémoire
154
Gestion de la mémoire
• Adresse logique ou adresse virtuelle (virtual
address): Adresse générée par la CPU.
• Adresse physique Adresse vue par l’unité de
mémoire.
• MMU (Memory Management Unit): Dispositif
matériel qui fait la conversion des adresses
virtuelles à physiques
155
Gestion de la mémoire
Gestionnaire de la mémoire (GM)
156
Gestion de la mémoire
Monoprogrammation
157
Gestion de la mémoire
Multiprogrammation avec partitions fixes
158
Gestion de la mémoire
Multiprogrammation avec partitions fixes
159
Gestion de la mémoire
Multiprogrammation avec partitions fixes
• Problème:
– Il se peut que la file d’une grande partition est vide
– Il se peut que la file d’une petite partition est pleine.
• Solution
– Utilisation d’une seule file
– Utiliser un algo pour trouver la plus grande tâche et
l’affecter à la plus grande partition
– Consacrer les petites partitions pour les petits tâches
160
Gestion de la mémoire
Swapping
161
Gestion de la mémoire
Swapping
162
Gestion de la mémoire
Partitions variables
163
Gestion de la mémoire
Partitions variables
164
Gestion de la mémoire
Partitions variables
• Problèmes:
– Fragmentation externe: Il existe un espace
mémoire total suffisant pour satisfaire une
requête, mais il n’est pas contigu.
– Fragmentation interne: la mémoire allouée peut
être légèrement plus grande que le mémoire
requise
165
Gestion de la mémoire
Partitions variables
166
Gestion de la mémoire
Allocation d’espace mémoire pour un process
167
Gestion de la mémoire
Allocation d’espace mémoire pour un process
168
Gestion de la mémoire
Allocation d’espace mémoire pour un process
• C’est complexe d'allouer de la mémoire au processus si le
coup n'est pas prévu. Le SE allouera, en général, un peu plus
de mémoire en prévision des demandes futures.
• Deux plages de mémoire qui peuvent grandir (données et
piles)
• Chacune puissent s'étendre sans gêne.
Espace de travail
d’un Processus
169
Gestion de la mémoire
Allocation d’espace mémoire pour un process
170
Gestion de la mémoire
1. Table de bits
2. Liste chaînée
171
Gestion de la mémoire
Table de Bits
172
Gestion de la mémoire
Table de Bits
173
Gestion de la mémoire
Listes chainées
174
Gestion de la mémoire
Listes chainées
175
Gestion de la mémoire
Listes chainées
176
Gestion de la mémoire
Listes chainées
177
Gestion de la mémoire
• Le gestionnaire de la mémoire peut aussi
utiliser une mémoire virtuelle:
• But:
– Dépasser la capacité disponible de mémoire
physique
• Inconvénient:
– Temps de traitement additionnel de va-et-vient
178
Gestion de la mémoire
Mémoire virtuelle
179
Gestion de la mémoire
Mémoire virtuelle: Pagination
180
Gestion de la mémoire
Mémoire virtuelle: Pagination
181
Gestion de la mémoire
Mémoire virtuelle: Pagination
183