Objectifs du cours
OBJECTIFS
Cecours vise à vous familiariser avec les concepts et les techniques
fondamentales des systèmes d'exploitation.
Entre autres les éléments suivants:
– Comprendre le fonctionnement d’un ordinateur en liaison avec le
système d’exploitation.
– Expliquer et analyser le fonctionnement des différents modules liés à
la gestion de processus.
– La compréhension du fonctionnement de la mémoire ainsi que sa
gestion.
– Comment assurer la synchronisation et la communication
interprocessus
– Ainsi que les solutions adoptées dans les systèmes modernes (UNIX,
WINDOWS)
2
3.
Plan du cours
Chapitre1 : Gestion des Processus
Chapitre 2 : Gestion de la mémoire
Chapitre 3 : Synchronisation des processus
3
4.
Plan du chapitre1
Gestion des processus
1. Notions de base sur les systèmes
2. Gestion de Processus
3. Ordonnancement des processus
• Ordonnancement Monotâche
• Ordonnancement Multitâche
4
5.
Notions de base
Qu’estce qu’un système d’exploitation (SE)?
• C’est le Premier programme exécuté lors du
démarrage de l’ordinateur.
• Un SE est une Couche de logiciel (ensemble
de programmes) et un Gestionnaire de
ressources,
A quoi sert un système d'exploitation ?
- A simplifier l’utilisation d’un ordinateur à travers différentes applications
toute en cachant la complexité du matériel et de proposer des instructions
plus simples à l’utilisateur..
- A contrôler l'accès à toutes les ressources de la machine.
5
Notions de base
Types de système d’exploitation :
Monoutilisateur/Multiutilisateur: Plusieurs utilisateurs actifs en
même temps en leur offrant des espaces de travail protégés avec des
terminaux locaux ou distants (UNIX et Linux, Windows 2003 ).
Monoprocesseur/Multiprocesseurs: Système avec plusieurs
processeurs (le vrai multitâche )
7
8.
Notions de base
Types de système d’exploitation :
Monotâche/Multitâche: Plusieurs taches peuvent être exécutés
simultanément. Le SE peut interrompre l’exécution d’un processus
pour exécuter un autre.
Monoprogrammé/Multiprogrammé: Plusieurs processus en
Mémoire à la fois et permet au processeur d'être partager entre tous
les processus actifs.
La plupart des ordinateurs personnels et portables modernes sont des
systèmes d'exploitation multitâches mono-utilisateur.
8
9.
Gestion des Processus
LeSE est responsable de la gestion des processus :
- Création, terminaison des processus
- Suspension, reprise des processus
- Ordonnancement des processus
- Allocation des ressources
- Synchronisation, communication entre processus
Mots clés: Etat, processus, commutation, PCB, ordonnancement,
9
10.
Gestion des Processus
Processus est un concept fondamental de tout système d’exploitation.
Un processus est un programme en exécution. Il définit un objet
dynamique tandis que le programme est un objet statique.
Exemple: Courrier électronique, la compression d’un fichier, le
navigateur web.
10
11.
Gestion des Processus
Créationd'un processus :
UNIX utilise un appel système fork() qui crée un clone du processus qui
s'exécute après duplication de l'espace mémoire et du contexte.
WINDOWS utilise un appel système CreateProcess() qui crée un
processus et y charge un programme.
Terminaison d'un processus :
Sortie normale, lorsque le processus a terminé sa tâche (sous Unix par
l’appel système exit)
Sortie suite à une erreur (e.g. division par 0, inexistence d’un fichier
passé en paramètre)
Tué par un autre processus (sous Unix par l’appel système kill)
11
12.
Gestion des Processus
Hiérarchiedes processus :
LINUX/ UNIX: Les processus sont organisés
sous d’une arborescence ou chaque processus
a un seul père et peut avoir plusieurs fils.
Un processus est identifié par un PID
(Process IDentifier) et un PPID (Parent
Process IDentifier).
Le premier processus init avec PID=1
WINDOWS : Chaque processus est crée par un père mais
s'exécute Indépendamment de lui.
12
Processus père
Processus fils
Gestion des Processus
L'espacemémoire utilisé par un processus est divisé en plusieurs zones.
On trouve en particulier :
Segment Pile : pour stocker les données
obtenues en cours d'exécution.
Segment code : représente le programme a exécuter
placé dans des zones fixes de la mémoire.
Segment de données :est composé d'un
Segment de données initialisées
(les variables globales et statiques)
et Segment de données non initialisées
(créé dynamiquement)
14
15.
Gestion des Processus
Les systèmes d'exploitation manipulent deux structures de données
principales pour gérer les processus créés sur une machine : la table
des processus et le bloc de contexte d'un processus (PCB).
La table des processus comporte une entrée par processus qui
rassemble toutes les informations concernant un processus
15
16.
Gestion des Processus
Un processus est un programme en exécution + contexte
d’exécution.
Un processus est caractérisé par un contexte d’un processus
appelé bloc de contrôle (Process Control Bloc: PCB).
Attributs d’un PCB:
◦ PID et PPID,
◦ État,
◦ Priorité,
◦ Compteur ordinal,
◦ Fichiers ouverts,
◦ Pointeurs: seg. code, seg. données, seg. Pile,
◦ Temps d’exécution.
16
17.
Gestion des Processus
Lacommutation de contexte
Sur un système multitâche, le SE doit redonner le contrôle du
processeur d’un processus à un autre en effectuant des commutations
de contexte.
La commutation de contexte consiste………………………………………………
……………..…………………………………….…………………………………………………………
17
18.
Gestion des Processus
Lesinterruptions
constituent un concept fondamental des systèmes d’exploitation.
Les interruptions peuvent être matérielles ou logicielles.
Une interruption est signal produit par un périphérique et envoyé
vers le processeur pour l’informer de la fin d’une E/S, la
production d’une erreur …
18
19.
Gestion des Processus
ProcessusLéger (Thread)
Un processus contient au moins un thread de contrôle unique en plus
de l’espace d’adressage.
Un thread est une unité d’exécution de code. il est issu d’un processus
mais ne contenant que la pile d’exécution.
Sous Unix
- Processus zombie est un processus qui s'est achevé, mais qui dispose
toujours d'un identifiant de processus (PID) et reste donc encore
visible dans la table des processus.
- Processus Orphelin est un processus dont le père s’est terminé avant
lui.
19
Plan du Chapitre1
Gestion des Processus
1. Notions de base sur les systèmes
2. Gestion de Processus
3. Ordonnancement des processus
3.1 Ordonnancement des processus : Définition
3.2 Types d’algorithmes d’ordonnancement
• Ordonnancement Monotâche
• Ordonnancement Multitâche
21
22.
Ordonnancement des processus
Lesconcepts de base de l’ordonnancement :
Un ordonnanceur (scheduler ou dispatcher): un programme qui
gère l’ordre de passage des processus dans le processeur (CPU).
Une file d’attente qui va accueillir les processus prêts.
Un algorithme d’ordonnancement (politique ou approche) se
traduit par un ensemble de règles pour organiser ou ordonner les
processus
• Le diagramme de GANTT: Représentation graphique de
l’ordonnancement relative à l’exécution d’un ensemble de
processus selon un algorithme d’ordonnancement.
Ordonnancement des processus
Étant donnée un ensemble de processus prêts, l’Ordonnanceur
(scheduler) du SE doit choisir quel processus élire en utilisant un
algorithme d’ordonnancement.
Un bon algorithme d’ordonnancement :
1. Chaque processus doit avoir sa part de temps CPU : Equité.
2. Utiliser le temps processeur à 100% : efficacité.
3. Minimiser le temps de réponse en Mode Interactif.
25.
Ordonnancement des processus
Etatsdes processus
Au fur et a mesure qu’un processus s’exécute; il change d’état.
Il peut se trouver dans l’un des trois états principaux suivants:
• Nouveau : le processus nouvellement crée
• Prêt (Ready) : le processus………………………………………………
• Élu (Running) : le processus…………..……...............................
• Bloqué (Sleep) : le processus………………………………………….
• Terminé : le processus se termine
25
26.
Ordonnancement des processus
LesGraphes des états d’un processus
1. Système Monotâche /Monoprogrammé
2. Système Monotâche /Multiprogrammé
3. Système Multitâche /Multiprogrammé
27.
Ordonnancement des processus
L’ordonnanceur choisit un processus parmi les processus prêts et lui
alloue le processeur (2)
Chaque fois que le processus exécutant est
interrompu
◦ un processus élu ………………………..……( )
◦ un processus change d’élu ………………..( )
◦ un processus exécutant ……………………( )
Chaque fois qu’un nouveau processus est prêt
◦ un processus se présente en tant que ………………… ( )
◦ un processus change de bloqué à……………………….. ( )
28.
Ordonnancement des processus
Deuxparamètres sont utilisés pour juger de la performance et de
l’efficacité d’un algorithme d’ordonnancement : Temps de rotation et
Temps d’attente.
Critères d'ordonnancement fréquemment utilisées
Temps de rotation est le temps passé dans le système y compris dans
l’état prêt
Temps de rotation = Date de fin – Date d’arrivée
Temps rotation moyen = ∑ temps rotation / nbr processus
Temps attente est le temps passé dans la file des processus (prêts).
Temps attente = Temps de rotation – Temps d’exécution (te)
Temps attente moyen = ∑ temps attente / nbr processus
29.
Ordonnancement des processus
Deuxparamètres sont utilisés pour juger de la performance et de
l’efficacité d’un algorithme d’ordonnancement :
Temps de rotation et Temps d’attente.
30.
Ordonnancement des processus
Deuxtypes d’algorithmes d’ordonnancement se distinguent :
- Algorithmes Monotâche
- Algorithmes Mutlitâche
1. Les algorithmes monotâche/non préemptif/ sans réquisition
Le SE exécute un processus ……………………………………………………..
RQ: Le processeur est réquisitionné :
- …………………………………………………………………………………………….…
- ………………………………………………………………………………………………..
31.
Ordonnancement des processus
Deuxtypes d’algorithmes d’ordonnancement se distinguent :
2. Les algorithmes multitâche/ préemptif/ avec réquisition
Le SE exécute le processus……………………………………………………
RQ: Le processeur est réquisitionné :
- ……..…………………………………………………………………………………………
- ……………………………………………………………………………………………..…
32.
I. FCFS /FIFO (First comes First Served )
Critère de priorité : temps d’arrivée à la RAM (ta)
ta : Temps d’arrivée à la RAM (temps de création du processus)
Principe : Le premier arrivée est le premier servi.
II. SJF (Shortest Job First )
Critère de priorité : temps d’exécution(te)
te: Temps estimé d’exécution du processus (unités d’horloge /ns
demandés dans le CPU)
Principe : Le processus qui demande le moins de te est élu.
III. Priorité sans interruption
Critère de priorité : Priorité statique (Pr)
Pr : Priorité du processus selon sa classe (système, utilisateur) peut être
dynamique/statique.
Principe : Le processus le plus prioritaire est élu.
Ordonnancement monotâche
33.
Ordonnancement monotâche
Application 1: Dans un
système multiprogrammé et
monotâche, les processus P1,
P2, P3 et P4 ont les
caractéristiques données par le
tableau suivant :
Processus Ta Tex Pr croissante
P1 0 5 3
P2 1 3 2
P3 2 1 4
P4 4 2 1
Application 2 : Le même système
admet des entrées sorties sur le
même disque dur (les requêtes
ne peuvent pas être
interrompues et sont gérées
avec FIFO) :
Processus Ta Tex Pr
P1 0 2C, 2E/S, 1C 3
P2 1 1C,1 E/S, 1C 2
P3 2 1 4
P4 4 2 1
34.
I. Tourniquet (RR)
Critèrede priorité : temps d’arrivée à la RAM (ta)
Principe : Le premier arrivée est le premier servi. Le temps
processeur est divisé en intervalles de temps appelés Quantum Q,
chaque processus s’exécutera exactement pendant son quantum.
II. SRT (Shortest Remaining Time)
Critère de priorité : temps d’exécution(te)
Principe : Le processus qui demande le moins de te est élu. A
Chaque instant, l’ordonnanceur cherche parmi les processus prêts celui
ayant le plus petit temps d’exécution restant.
Ordonnancement multitâche
35.
III. Priorité avecinterruption
Critère de priorité : Priorité statique (définies par le système ou
l'utilisateur) ou dynamique (modifiées en cours d'exécution en
fonction de certains critères comme l'attente ou le temps
d'exécution).
Principe : Le processus le plus prioritaire est élu.
Le système d’exploitation ordonne les processus prêts selon l’ordre de
leurs priorités et le processus à élire est celui avec la plus haute priorité
Ordonnancement multitâche
36.
Ordonnancement multitâche
Application 1: Dans un
système multiprogrammé et
multitâche, les processus P1,
P2, P3 et P4 ont les
caractéristiques données par le
tableau suivant :
Processus Ta Tex Pr croissante
P1 0 5 3
P2 1 3 2
P3 2 1 4
P4 4 2 1
Application 2 : Le même système
admet des entrées sorties sur le
même disque dur (les requêtes
ne peuvent pas être
interrompues et sont gérées
avec FIFO) :
Processus Ta Tex Pr
P1 0 2C,2 E/S, 1C 3
P2 1 1C,1 E/S, 1C 2
P3 2 1 4
P4 4 2 1
37.
37
Algorithmes d’ordonnancement
•Sous Windows:
-l’ordonnanceur est de type « Multilevel feedback queue» :
-Plusieurs queues (FIF0) classées selon la priorité des processus,
-Chaque processus s’execute pendant un Q,
-Si un processus consomme beaucoup de temps processeur, il
passe à la queue de priorité inférieure.
•Sous Linux : Politique du tourniquet modifié = Tourniquet avec
priorités dynamiques