0% ont trouvé ce document utile (0 vote)
157 vues13 pages

Cours de SE

Ce document décrit les principaux chapitres d'un cours sur les systèmes d'exploitation, notamment la gestion des processus, de la mémoire, des fichiers et des entrées/sorties. Il présente également les différents types de systèmes d'exploitation.

Transféré par

taguela22
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
157 vues13 pages

Cours de SE

Ce document décrit les principaux chapitres d'un cours sur les systèmes d'exploitation, notamment la gestion des processus, de la mémoire, des fichiers et des entrées/sorties. Il présente également les différents types de systèmes d'exploitation.

Transféré par

taguela22
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Cours de système d’exploitation

45h / 3h par séance


[email protected]
Programme
Chap1 : Généralités sur les SE
Chap2 : Gestion des processus
Chap3 : Gestion de la mémoire
Chap4 : Système de gestion des fichiers (SGF)
Chap5 : Gestion des Entrées/sorties (E/S)
Bibliographie : Les systèmes d’exploitation, Andrews Tanenbaum

Chap1 : Généralités sur les SE


1. Introduction
Pour qu’un ordinateur soit capable de faire fonctionner un programme
informatique (appelé parfois application ou logiciel), la machine doit être en
mesure d’effectuer un certain nombre d’opération préparatoire afin d’assurer
les échanges entre le processeur, la mémoire et les ressources
physiques(périphériques).
Un système d’exploitation (souvent appelé OS de l’anglais operating system)
est un ensemble de programme qui dirige l’utilisation des ressources d’un
ordinateur par des logiciels applicatifs
Utilisateur applications

Système d’exploitation

Pilotes

Matériel
Le SE permet ainsi de dissocier le programme et les matériels, ceci pour
simplifier la gestion des ressources et offrir une interface homme machine
(IHM) simplifié afin de lui permettre de s’affranchir de la complexité de la
machine physique.
2. Rôle du système d’exploitation
Les rôles du SE sont divers :
 Gestion du processeur (des processus) : le SE est chargé de gérer
l’allocation du processeur entre les différents programmes grâce à un
algorithme d’ordonnancement. Le type d’ordonnanceur est totalement
dépendant du SE en fonction de l’objectif visé.
 Gestion de la mémoire vive et des disques : le système d’exploitation
est chargé de gérer l’espace mémoire alloué à chaque application et, le
cas échéant, à chaque utilisateur. En cas d’insuffisance de mémoire
physique, le SE peut créer une zone mémoire sur le disque dur appelé
mémoire virtuelle. La mémoire virtuelle permet de faire fonctionner des
applications nécessitant plus de mémoire qu’il n’y a de mémoire vive
disponible sur le système. En contrepartie, cette mémoire est beaucoup
plus lente.
 Gestion des entrées/sorties : le système d’exploitation permet d’unifier
et de contrôler l’accès des programmes aux ressources matérielles par
l’intermédiaire des pilotes (appelé également gestionnaire de
périphérique ou gestionnaire d’entrées/sorties).
 Gestion des fichiers : le système d’exploitation gère la lecture et
l’écriture dans le système de fichiers et les droits d’accès au fichier par
les utilisateurs et les applications.
 Gestion des droits : le SE est chargé de la sécurité liée à l’exécution des
programmes en garantissant que les ressources ne sont utilisées que par
les programmes et utilisateur possédant les droits adéquats.
 Gestion de l’exécution des applications : le système d’exploitation est
chargé de la bonne exécution des applications en leur affectant les
ressources nécessaires à leur bon fonctionnement. Il permet à ce titre de
« tuer » une application ne répondant plus correctement.

3. Composantes du SE
Le SE est composé d’un ensemble de logiciels permettant de gérer les
interactions avec le matériel
 Le noyau (Kernel) : représentant les fonctions fondamentales du SE
tel que la gestion de la mémoire, des processus, des fichiers, des
entrées/sorties principales, et des fonctionnalités de communication.
 L’interpréteur de commande (Shell) : permet la communication avec
le système d’exploitation par l’intermédiaire d’un langage de
commande, afin de permettre à l’utilisateur de piloter les
périphériques en ignorant tout des caractéristiques du matériel qu’il
utilise, de la gestion des adresses physiques…
 Le système de fichiers (file system) : permet d’enregistrer les fichiers
dans une arborescence.

4. Types de SE
On distingue plusieurs types de SE en fonction des objectifs
4-1- SE mono-tâches
C’est un SE qui ne permet d’avoir en mémoire centrale à un moment donné
qu’une seule tache. Lorsqu’’un programme est lancé, il mobilise les ressources
de la machine et ne les libère qu’à sa fermeture. C’est le cas de Ms Dos
(Microsoft Disk Operating System). Qui est associé à l’interface graphique de
Windows
4-2- SE multitâches
Un SE est dit multitâche (multithreaded) lorsque plusieurs taches (également
appelé processus peuvent être exécuté simultanément.
Les applications (logiciels) sont composées en séquence d’instructions que l’on
appelle processus léger (thread). Ces threads seront tout à tour actifs, en
attente, suspendu ou détruit suivant la priorité qui leur est associé ou bien
exécuté séquentiellement.
Un système est dit préemptif lorsqu’il possède un ordonnanceur (aussi appelé
planificateur), qui répartit, selon des critères de priorité, le temps machine
entre les différents processus qui en font la demande.
Le SE est dit à temps partagé lorsqu’un quota de temps est alloué à chaque
processus par l’ordonnanceur. C’est notamment le cas des systèmes multi-
utilisateurs qui permettent à plusieurs utilisateurs d’utiliser simultanément sur
une même machine, des applications différentes ou bien similaires : le système
est alors dit système transactionnel. Pour ce faire, le système alloue à chaque
utilisateur une tranche de temps.
4-3- système multiprocesseurs
Le multiprocessing est une technique consistant à faire fonctionner plusieurs
processeurs en parallèle afin d’obtenir une puissance de calcul plus importante
que celle obtenue avec un processeur haut de gamme, ou bien afin
d’augmenter la disponibilité du système en cas de panne d’un processeur.
Un système multiprocesseur doit donc être capable de gérer le partage de la
mémoire entre plusieurs processeurs mais également de distribuer la charge de
travail.
4-4- les systèmes embarqués
Les SE embarqués sont des SE prévus pour fonctionner sur des machines de
petite taille tel que des PDA (personal digital assistant ou assistant numérique
personnel) ou des appareils électroniques autonomes (sondes spatiales, robot,
ordinateur de bord de véhicule…) possédant une autonomie réduite. Ainsi, une
caractéristique essentielle des systèmes embarqués est leur gestion avancée de
l’énergie et leur capacité à fonctionner avec des ressources limitées.
Les principaux systèmes embarqués grand public sont :
 Palm OS,
 Windows CE, Windows mobile, Windows Smartphone,
 Plateformes Android
4-5- SE temps réel (Real Time System)
Essentiellement utilisé dans l’industrie, ce sont des systèmes dont l’objectif est
de fonctionner dans un environnement à contrainte de temps. Il doit être
capable de délivrer un traitement correct des informations reçues à des
intervalles de temps bien défini (régulier ou non)
Exemples :
 OS-9 ;
 RT Linux ;
 QNX ;
 Vx Works
Récapitulatifs des types de SE
système codage Mono- Multi- Mono- multitâches
utilisateur utilisateur tache
Ms Dos 16 bits  
Windows 16/32  Non
3.1 bits préemptif
Windows 32 bits  coopératif
95/98/Me
Windows 32 bits  préemptif
NT/2000
Windows 32/64  préemptif
XP bits
Windows 32/64  préemptif
7-11 bits
Unix/linux 32/64  préemptif
bits
MAC/OS X 32 bits  préemptif
VMS 32 bits  préemptif

Chap2 : Gestion des processus

I. Concept de processus
Lorsqu’il est multitâche, le SE permet à plusieurs utilisateurs de se servir de
l’ordinateur (Processeur) et donne à chaque utilisateur l’impression qu’il est le
seul à utiliser l’ordinateur. Pour se faire, l’utilisation du processeur est
planifiée : chaque programme est exécuté durant une tranche de temps
déterminée, puis le SE bascule sur l’exécution d’un autre programme.
1) Définition
On peut définir un processus comme un programme en exécution. Autrement
dit, un programme en lui-même n’est pas un processus. Un programme est une
entité passive comme le contenu d’un fichier (lus, écrit, fermé) stocké sur
disque tandis qu’un processus est une entité active avec un compteur
d’instruction spécifiant l’instruction suivante à exécuter et un ensemble de
ressources associés.
P1
Données statiques
Instructions

Pile
Figure : utilisation de la RAM par un processus
2) Etats d’un processus
Durant son séjour dans un SE, un processus peut changer d’état à plusieurs
reprises
Nouveau : le processus vient d’être créé
Prêt : le processus est placé dans la file d’attente des processus prêt, en attente
d’affectation du processeur
En exécution : le processus a été affecté à un processeur libre. Ses instructions
sont en exécution.
En attente : le processus attend qu’un évènement se produise comme
l’achèvement d’une opération d’entrée sortie ou la réception d’un signal
Terminé : le processus a terminé son exécution.
Le terme commutation désigne l’action qui bascule un système rapidement et
de façon répété d’un état à un autre parmi un ensemble d’états prédéfinis
3) Bloc de contrôle de Processus
Pour suivre son évolution, le SE maintient pour chaque processus une structure
de données particulière appelée bloc de contrôle de processus (PCB : process
control bloc) et dont le rôle est de reconstituer tout le contexte du processus
Numéro du processus
Etat du processus
Compteur d’instruction
-----
Registre
-----
Limites de la mémoire
Listes des fichiers ouverts
-----
Figure : bloc de contrôle de processus
Les informations contenues dans le PCB et permettant de reconstituer le
contexte d’un processus sont multiples. On peut citer entre autres :
 Le numéro de processus ou PID (prcess identifier) qui permet d’identifier
le processus
 L’état du processus : il peut avoir l’une des valeurs suivantes ; nouveau,
prêt, en exécution ou en attente.
 Le compteur d’instructions : indique l’adresse de la prochaine instruction
à exécuter par le processus.
 Les registres du processeur : Les registres varie en nombre et en type en
fonction de l’architecture de l’ordinateur. Il englobe des accumulateurs,
des registres d’index, des pointeurs de piles, et des registres à usage
général. Ces informations doivent être sauvegardées avec le compteur
d’instruction quand il se produit une interruption, afin de permettre au
processus de poursuivre correctement son exécution après la reprise.
 Les informations sur la gestion de la mémoire : ces informations peuvent
inclure les valeurs de registre de base et de limites, les tables de page ou
les tables de segment selon le système de mémoire utilisé.
 Les informations sur l’état des entrées/sorties : les fichiers ouverts, la
liste des périphériques d’entrée sortie.
 Les informations sur l’ordonnancement du processeur (scheduling)

II. L’ordonnancement des processus

1. File d’attente d’ordonnancement


Pour gérer les processus durant leur séjour, le SE maintient plusieurs files
d’attente. On peut citer entre autres :
 File d’attente des processus prêt : elle contient tous les processus en
attente du processeur.
 File d’attente de périphérique : pour réguler les demandes d’allocation
des différents périphériques, on peut imaginer une file d’attente pour
chaque périphérique. Quand un processus demande une opération
d’entrée/sortie, il est mis dans la file d’attente concernée.
Une fois qu’on a alloué le processeur au processus et que celui-ci est en cours
d’exécution, il pourrait se produire l’un des évènements suivants :
 Le processus pourrait émettre une requête d’entrée sortie et être
ensuite placée dans une file d’attente d’entrée sortie
 Le processus pourrait créer un nouveau processus (processus fils) et
attendre la fin de celui-ci
 Le processus pourrait être enlevé du processeur ; on dit aussi que le
processeur a été réquisitionné. Dans ce cas, le processus est remis dans
la file d’attente des processus prêts
 Le processus pourrait se terminer
Les différents états de transition du processus entre les files d’attente sont
résumés par la figure suivante :

2. L’ordonnanceur
C’est un programme du SE qui s’occupe de choisir selon une politique
d’ordonnancement donné un processus parmi les processus prêts pour lui
affecter le processeur.
3. Commutation de contexte
Le fait de commuter le processeur sur un autre processus demande de
sauvegarder l’état de l’ancien processus et de charger l’état sauvegardé du
nouveau processus. Cette tâche est connue sous le nom de commutation de
contexte.
4. Les critères d’ordonnancement

 Utilisation du processeur : un bon algorithme d’ordonnancement sera


celui qui maintiendra le processeur aussi occupé que possible
 Capacité de traitement : c’est la quantité de processus terminé par unité
de temps
 Temps de restitution : c’est le temps s’écoulant entre la soumission du
travail et sa terminaison
 Temps d’att
 7ente : c’est le temps passé à attendre dans la file d’attente des
processus prêts
 Temps de réponse : c’est le temps passé dans la file d’attente des
processus prêts avant la première exécution
III. Les algorithmes d’ordonnancement

1- L’algorithme du First Come First Served


Il alloue le processeur au 1er processus qui le demande. L’implémentation de la
politique FCFS est facilement géré avec une file d’attente de type FIFO (First In
First Out). Quand un processus entre dans la file d’attente des processus prêts,
son PCB est enchainé à la queue de la file d’attente. Quand le processeur
devient libre, il est alloué au processus en tête de la file d’attente.
Exemple : trois processus P1, P2 et P3 arrivent dans cet ordre au système. Leurs
durée d’exécution sont respectivement 24, 3,3 unité de temps. Pour
représenter l’historique d’occupation du processeur, on utilise le diagramme de
GANTT
procédure durée Temps
d’attente
P1 24 0
P2 3 24
P3 3 27
total 30 51
 Diagramme de Gantt
P1 P2 P3

 Temps d’attente : Tah moy= (0+24+27) /3= 17 ut


Si les processus étaient arrivés dans l’ordre p3, p1 et p2 les résultats seraient
différents
procédure durée Temps
d’attente
P2 3 0
P3 3 3
P1 24 6
total 30 9

 Diagramme de Gantt
P2 P3 P1
 Temps d’attente : Tah moy= (0+3+6) /3= 3 ut

Ainsi le temps moyen d’attente avec une politique FCFS n’est généralement pas
minimale et peut varier substantiellement si les durées d’exécution des
processus varient beaucoup
Critique de la méthode : la méthode FCFS tend à pénaliser les travaux courts :
l’algorithme FCFS n’effectue pas de réquisition c’est-à-dire qu’une fois que le
processeur a été alloué à un processus, celui-ci le garde jusqu’à ce qu’il le
libère. Soit il le garde, soit après avoir demandé l’entrée sortie
L’algorithme FCFS est particulièrement incommode pour les systèmes à temps
partagé, où il est important que l’utilisateur obtienne le processeur à des
intervalles de temps régulier. Il peut paraitre désastreux de permettre qu’un
processus garde le processeur pendant une période étendue

2- Algorithme du plus court d’abord SJF (Shortest Job First)


Cet algorithme affecte le processeur au processus possédant le temps
d’exécution le plus court. Si plusieurs processus ont la même durée, une
politique FIFO sera alors utilisé pour les départager.
Exemple : on soumet au système 4 processus P1, P2, P3, et P4 dont les durées
d’exécution sont données par le tableau suivant :
processus duré Temps
e d’attente
P1 6 3
P2 8 16
P3 7 9
P4 3 0
Total 24 28
L’algorithme du plus court donnera alors les résultats suivants :
P4 P1 P3 P2

Tah moy = 28/4 = 7 ut


Alors que si on avait une politique de FCFS le temps moyen serait de :
processus duré Temps
e d’attente
P1 6 0
P2 8 6
P3 7 14
P4 3 21
Total 24 41

P1 P2 P3 P4

Tah moy = 41/4 = 10,25


Critique de la méthode : il a été prouvé que l’algorithme SJF est optimal dans le
temps dans le sens qu’il obtient le temps d’attente le plus court pour un
ensemble de processus donné. Toutefois, cet algorithme est difficile à
implémenter pour une raison simple : comment peut-on connaitre le temps
d’exécution d’un processus à l’avance.

3- Ordonnancement avec priorité


Cet algorithme associe à chaque processus une priorité et le processeur sera
affecté au processus de plus haute priorité. Cette priorité varie selon les
systèmes et peut aller de 0 à 127. Les priorités peuvent être définie en fonction
de plusieurs paramètres : le type de Processus, les limites de temps, les limites
mémoires, …
Exemple : on dispose de 5 processus ayant des priorités différentes comme le
montre le tableau ci-dessous :
processu durée priorité Temps
s d’attente
P1 10 2 6
P2 1 4 0
P3 2 2 16
P4 1 1 18
P5 5 3 1
total 19 41
P2 P5 P1 P3 P4
Tah moy = 41/5 = 8,2 ut
Critique de la méthode : une situation de blocage peut survenir si les processus
de basse priorité attendent indéfiniment le processeur, alors que les processus
de haute priorité continuent à arriver.
Pour éviter une telle situation, on peut utiliser la technique dite du
vieillissement. Elle consiste à incrémenter graduellement la priorité des
processus attendant dans le système pendant longtemps. Par exemple, nous
pourrions incrémenter de 1 la priorité d’un processus en attente toute les 15
minutes. En fin de compte, même un processus ayant une priorité initiale égale
à 0 aurait la plus haute priorité dans le système et serait exécuté.

4) L’algorithme Round Robin (Tourniquet)


Il a été conçu pour les systèmes à temps partagé. Il alloue le processeur au
processus à tour de rôle pendant une tranche de temps appelé quantum. Dans
la pratique, le quantum s’étale entre 10 et 100 ms.
Exemple : on dispose de 03 processus p1, p2 et p3 ayant comme durée
d’exécution respective 24,3 et 3 ms. En utilisant un algorithme Round Robin
avec un quantum de 4 ms, on obtient le diagramme de GANTT suivant
Procédure Durée Attente
P1 24 0+(10-4)
P2 3 4
P3 3 7

Diagramme de GANTT

La performance de Round Robin dépend largement de la taille. Si le quantum


est très grand, le round robin serait similaire au FCFS. S’il est très petit, la
méthode round robin permettrait un partage du processeur : chacun des
utilisateurs aurait l’impression de disposer de son propre processeur (on parle
de pseudo-parallélisme)

Vous aimerez peut-être aussi