Historique des systèmes d`exploitation

publicité
Systèmes d’exploitation 1
Guide du cours
Ce cours s'adresse aux étudiants de la 1ème année licence technologies de
l’informatique, tronc commun. Il sera enseigné en tant que élément constitutif de l’unité
d’enseignement fondamentale « Systèmes 2 ». Il sera assuré pendant 15 semaines à raison
d’une heure et demie de cours et travaux dirigés par semaine. Il comporte quatre leçons.
I. OBJECTIFS DU COURS

Se familiariser avec les concepts et les techniques fondamentales des systèmes
d'exploitation.

Expliquer et analyser le fonctionnement des différents modules du système
d'exploitation.

Utiliser et/ou adapter les techniques et les services du système d'exploitation
pour concevoir des codes plus fiables et plus performants.
II. PRE-REQUIS

ECUE : Systèmes logiques;

ECUE : Algorithmique & Structures de données 1 ;

ECUE : Atelier Systèmes 1
III. BIBLIOGRAPHIE CONSEILLEE
1. Andrew Tanenbaum, « Systèmes d’exploitation », Edition Pearson 3ème édition,
2008
2. Leila Baccouche, « Au Coeur des Systèmes d’Exploitation des Ordinateurs :
Concepts de base et Exercices Résolus », Centre de Publications universitaire
2003.
3. Mohamed Said Ouerghi, « Principes des Systèmes d’Exploitation », Centre de
Publications universitaire 2003.
4. Samia Bouzefrane, « Les systèmes d’exploitation, Unix, Linux et Windows XP
avec C et Java », Edition DUNOD, 2007
IV. SOMMAIRE DU COURS
Leçon 1 : Principes et histoire des systèmes d’exploitation
Par : Ben Mahmoud & Shimi
-1-
Systèmes d’exploitation 1
I.
Introduction
II.
Rappels
III.
Qu’est ce qu’un système d’exploitation ?
IV.
Historique des systèmes d’exploitation
V.
Structuration d’un système d’exploitation
VI.
Fonctionnalités d’un système d’exploitation
VII.
Conclusion
Leçon 2 : Gestion des processus
I.
Introduction
II.
Généralités sur les processus
III.
Activités des processus
IV.
Stratégie d’ordonnancement
V.
Les processus sous unix
VI.
Conclusion
Leçon 3 : Gestion de la mémoire centrale
I.
Introduction
II.
Généralités sur la mémoire centrale
III.
Méthodes de partitionnement
IV.
Les stratégies d’allocation
V.
Conclusion
Leçon 4 : Systèmes de gestion des fichiers
I.
Introduction
II.
Fichiers et répertoires
III.
Gestion des disques
IV.
Organisation logique des fichiers
V.
Organisation physique des fichiers
VI.
Conclusion
Par : Ben Mahmoud & Shimi
-2-
Systèmes d’exploitation 1
Leçon 1 : Principes et histoire des systèmes
d’exploitation
Objectif général
Connaître l’histoire et les principes de base des systèmes
d’exploitation.
Parcourir l’histoire des ordinateurs.
Objectifs
spécifiques
Parcourir l’histoire des systèmes d’exploitation.
Savoir définir un système d’exploitation par ses différents
rôles.
S’initier aux principes de base d’un système d’exploitation.
Volume horaire
Mots clés
Par : Ben Mahmoud & Shimi
Cours : 3h
Système, services, processus, mémoire, fichiers, matériels,
programmes,…
-3-
Systèmes d’exploitation 1
I. Introduction
Dès l’apparition des systèmes d’exploitation, aux années 60,
le monde
informatique a connu un large changement dans les méthodes d’utilisation et de
développement des ordinateurs.
Ce premier chapitre introductif mettra l’accent sur l’histoire des systèmes
d’exploitation tout rappelant certaines notions. Ensuite, les principes de base des
systèmes d’exploitation seront décrits afin de mieux comprendre l’utilité des
systèmes.
II. Rappels
1. Définitions
Un ordinateur est une machine de traitement de l’information. Il est capable
d’acquérir de l’information, de la stocker, de la transformer en effectuant des
traitements quelconques, puis de la restituer sous une autre forme. Le mot
informatique vient de la contraction des mots information et automatique.
On appelle information tout ensemble de données. On distingue
généralement différents types d’informations : textes, nombres, sons, images, etc...
Toute information est manipulée sous forme binaire (ou numérique) par l’ordinateur.
Un programme est une suite d’instructions élémentaires, qui vont être
exécutées dans l’ordre par le processeur. Ces instructions correspondent à des
actions très simples, comme additionner deux nombres, lire ou écrire une case
mémoire, etc...
2. Architecture de base d’un ordinateur
Par : Ben Mahmoud & Shimi
-4-
Systèmes d’exploitation 1
Un ordinateur est constitué principalement de 2 éléments essentiels : la
mémoire centrale et le processeur. La mémoire centrale (MC en abrégé) permet de
stocker de l’information (programmes et données), tandis que le processeur exécute
pas à pas les instructions composant les programmes.
2.1.
Le processeur
Le processeur est un circuit électronique complexe qui exécute chaque
instruction très rapidement. Toute l’activité de l’ordinateur est cadencée par une
horloge unique, de façon à ce que tous les circuits électroniques travaillent
ensembles. La fréquence de cette horloge s’exprime en MHz (millions de battements
par seconde). Par exemple, un ordinateur “PC Pentium 133” possède un processeur
de type Pentium et une horloge à 133 MHz.
Le processeur est capable d’exécuter des programmes en langage machine,
c’est à dire composés d’instructions très élémentaires suivant un codage précis.
Chaque type de processeur est capable d’exécuter un certain ensemble
d’instructions.
2.2.
La mémoire centrale (MC)
La mémoire centrale est divisée en cases de taille fixe (par exemple 8 bits)
utilisées pour stocker instructions et données d’un programme. En principe, la taille
d’une case mémoire pourrait être quelconque ; en fait, la plupart des ordinateurs en
service aujourd’hui utilisent des emplacements mémoire d’un octet (byte en anglais,
soit 8 bits, unité pratique pour coder un caractère par exemple).
III. Qu’est ce qu’un système d’exploitation ?
Selon plusieurs auteurs, un système d’exploitation (SE en abrégé) est défini
comme étant un ensemble de programmes ayant pour tâche de faire fonctionner un
Par : Ben Mahmoud & Shimi
-5-
Systèmes d’exploitation 1
ordinateur. Un système d’exploitation jouera ainsi le rôle d’intermédiaire entre
l’utilisateur et la machine.
On peut dire, à ce stade, que le système d’exploitation joue le rôle d’une
machine virtuelle (par rapport à la machine physique) qui va cacher la complexité du
matériel.
IV. Historique des systèmes d’exploitation
Sans trop détailler l’histoire des systèmes d’exploitation, on va se limiter à une
présentation brève des principales dates donnant lieu à des changements important
dans l’histoire de l’informatique et des systèmes. Cette histoire peut être classée en
cinq générations :
 La première génération : le traitement par lots ;
 La deuxième génération : la multiprogrammation ;
 La troisième génération : le temps partagé ;
 La quatrième génération : le temps réel ;
 La cinquième génération : les systèmes distribués ;
Activité :
Pour mieux connaître l’histoire des systèmes d’exploitation, je propose aux
étudiants de faire une activité de recherche et une synthèse des différentes
générations mentionnées ci-dessus.
V. Structuration d’un système d’exploitation
On a déjà vu précédemment que le système d’exploitation est un
intermédiaire entre l’utilisateur (qui va utiliser les applications de l’ordinateur) et le
matériel (qui est composé de périphériques et organes internes et externes). Ce rôle
Par : Ben Mahmoud & Shimi
-6-
Systèmes d’exploitation 1
nous mène à dire que le SE est formé d’un ensemble de parties ou couches. La
structuration d’un SE est sa représentation en couches.
Le noyau est la partie essentielle et délicate d’un SE. Il possède les
caractéristiques suivantes :
 Réside en mémoire
 De petite taille
 Gérer le processeur
 Gérer la mémoire
 Gérer les interruptions
La figure suivante la structuration en couches du SE.
Matériels
Noyau
Autres couches
Utilitaires
Applicatifs
Figure 1 - Structuration en couches d'un SE
Par : Ben Mahmoud & Shimi
-7-
Systèmes d’exploitation 1
VI. Fonctionnalités d’un système d’exploitation
On parle de fonctionnalités pour mentionner les services offerts par le système
d’exploitation pour assurer l’interfaçage entre l’utilisateur et le matériel. Ces services
peuvent être classés en deux catégories comme suit :
Services
d’un système d’exploitation
Services communs :
Services spécifiques :
Services résidents en MC ;
Services résidents en MS
Gestion des processus ;
Outils de développement
Gestion de la mémoire ;
Outils de communication ;
Gestion des fichiers
Outils de bureautique ;
Gestion des périphériques
Outils d’administration ;
Gestion de l’interface H/M
Figure 2 – Services d’un SE
1. Gestion des processus
Un processus est une entité créé lors de l’exécution d’un programme. Cet
entité possède un cycle de vie allant de sa création jusqu’à sa terminaison.
Au cours de son cycle de vie, un processus transite d’un état à un autre. Ces
états peuvent être résumés maintenant comme suit :
 Créé : un processus vient d’être créé (un programme est lancé en
exécution) ;
Par : Ben Mahmoud & Shimi
-8-
Systèmes d’exploitation 1
 Prêt : le processus est en attente d’être exécuté par le processeur ;
 Actif : le processus est élu pour exécution ;
 Bloqué : le processus est en attente d’un évènement ;
 Terminé : le processus achève son exécution.
Créé
Terminé
Actif
Prêt
Bloqué
Figure
2 - Cycle
de vie
processus
Figure
3 - Cycle
de d'un
vie d'un
processus
Le cycle représenté ci-dessus décrit celui des processus dans un système
mono-processeur (un seul processeur) utilisant une stratégie d’ordonnancement
basée sur le partage de temps.
Entre autre, les processus peuvent coopérer entre eux pour réaliser une tâche
commune. Cette coopération nécessite parfois une synchronisation et une
communication inter-processus.
La gestion des processus est l’ensemble des activités relatives au traitement du
processus.
Ces
activités
Par : Ben Mahmoud & Shimi
comportent
les
opérations
suivantes :
création,
-9-
Systèmes d’exploitation 1
ordonnancement, activation, terminaison, synchronisation et communication des
processus.
2. Gestion de la mémoire centrale
Nous avons déjà vu que la mémoire centrale est composée de cellules utilisées
pour stocker les données et les instructions d’un programme. En effet, l’exécution
d’un programme se fait en mémoire centrale en allouant un espace suffisant pour en
contenir les données (constantes et variables) et les instructions du code source.
On rappelle que la mémoire centrale est initialement vide avant la mise en
tension de l’ordinateur. Après le démarrage de la machine, le système d’exploitation
occupe initialement une partie de l’espace mémoire dans laquelle résident les
services communs du système. Ensuite, au fur et à mesure de l’utilisation de
l’ordinateur, les applicatifs de l’utilisateur occupent aussi des espaces mémoire. Ces
espaces forment la partie utilisateur de la mémoire centrale.
Le service de gestion de la mémoire centrale peut comporter les actions
suivantes :
 Diviser de la mémoire en deux parties ou zones : zone système et zone
utilisateur ;
 Allouer les espaces mémoires pour les programmes en exécution ;
 Charger les processus dans les espaces alloués ;
 Vérifier l’intégrité des espaces mémoire réservés.
3. Gestion des fichiers
 Un fichier peut être défini comme étant une unité de stockage logique
de l’information.
 Pratiquement, le fichier est le seul et unique moyen logique pour
sauvegarder les données.
Par : Ben Mahmoud & Shimi
- 10 -
Systèmes d’exploitation 1
 Un fichier peut avoir les attributs suivants : nom, taille, type, protection,
date, propriétaire,…
 Un fichier peut être classé en deux catégories selon la nature des
informations y contenues : fichiers programmes et fichiers de données.
La gestion des fichiers est l’ensemble des actions relatives à leur existence :
création, édition, recherche, duplication, suppression, impression, compression,…
4. Gestion des périphériques
Un périphérique est un dispositif connecté à l’ordinateur pour assurer des
fonctionnalités à celui-ci. Le périphérique joue un rôle essentiel pour assurer le
dialogue entre l’ordinateur et son milieu externe. Généralement, lorsqu’on ajoute un
nouveau périphérique à l’ordinateur, on doit installer sur le système un programme
spécifique appelé pilote permettant au système d’exploitation de reconnaître ce
périphérique et de l’utiliser correctement.
Les services de gestion de périphériques peuvent concerner l’installation, le
paramétrage et l’utilisation des périphériques.
5. Gestion de l’interface homme/machine
Le dialogue entre l’utilisateur et l’ordinateur peut être géré physiquement
moyennant les périphériques. La bonne utilisation de ces derniers assure le bon
fonctionnement du système et offre une communication claire et précise.
L’utilisateur peut ainsi communiquer avec la machine à travers des ordres et des
commandes lancées par les périphériques d’entrée et à travers aussi des résultats
aperçus par le biais des périphériques de sortie.
La gestion de l’interface homme/machine définit les moyens et les outils mis en
œuvre afin que l’homme puisse communiquer et contrôler la machine.
Par : Ben Mahmoud & Shimi
- 11 -
Systèmes d’exploitation 1
6. Services spécifiques
Parmi les services spécifiques d’un SE, on peut citer les tâches d’exploitation
standards de programmation (éditeurs de textes, traducteurs, éditeurs de liens,
compilateurs,…), de gestion de fichiers (formatage de volumes, copies de volumes et
de fichiers, tris de fichiers, conversion de support, archivage de supports,…) , de
gestion de tâches d’administration du système (gestion de mots de passe, gestion et
contrôle des accès , installation de nouvelles applications ou versions d’un logiciel,
outils d’évaluation de performances,…), de gestion de tâches d’un bureau (outils de
communication, outils de bureautique,…),etc.
VII. Conclusion
En résumé de ce chapitre, nous avons essayé de connaître les principes de base
d’un système d’exploitation. Les chapitres suivants seront consacrés à détailler
certains services communs du SE en commençant par la gestion des processus.
Par : Ben Mahmoud & Shimi
- 12 -
Systèmes d’exploitation 1
Leçon 2 : Gestion des processus
Objectif général
Apprendre les notions de bases relatives aux processus.
Comprendre les différents états d’un processus.
Objectifs
spécifiques
Débuter avec les stratégies et les algorithmes
d’ordonnancement.
Etudier les processus sous le système unix.
Volume horaire
Mots clés
Par : Ben Mahmoud & Shimi
Cours : 3h
TD : 1,5h
Système, services, processus, mémoire, fichiers, matériels,
programmes,…
- 13 -
Systèmes d’exploitation 1
I. Introduction
La gestion des processus est l’une des fonctionnalités les plus importantes et
critiques d’un système d’exploitation. La gestion des processus rassemble des
activités relatives au traitement du processus. Ce chapitre traitera en premier lieu le
cycle de vie d’un processus. En second lieu, nous verrons les stratégies
d’ordonnancement des processus à travers des algorithmes et des exemples. Nous
traiterons, en dernier lieu, les processus sous le système unix.
II. Généralités sur les processus
1. Définition d’un processus :
Un processus est l’entité créée par le système d’exploitation pour l’exécution
d’un programme. Chaque fois qu’on lance un programme, un processus est créé
durant l’exécution de ce programme.
Un processus est identifié par un numéro unique que l'on appelle le PID
(Process IDentifier)
2. Ressources nécessaires d’un processus :
Une ressource est une entité nécessaire à l’exécution d’un processus. Elle peut
être une ressource matérielle (imprimante, disque, processeur,…) ou bien une
ressource logicielle (fichier, base de données, programme,…).
On distingue les ressources privées et les ressources partageables.
 Les ressources privées sont les ressources propres au processus. Pour cela,
elles ne posent pas de problèmes.
 Les ressources partageables posent des problèmes d’accès puisque il y-a
compétition entre les processus pour les acquérir.
Par : Ben Mahmoud & Shimi
- 14 -
Systèmes d’exploitation 1
Une ressource (si elle est bien sûr disponible) est allouée au processus lors de
sa création.
3. Cycle de vie d’un processus :
On rappelle qu’un processus possède un cycle de vie allant de sa naissance à sa
mort passant par divers phases d’activité et d’attente. Ce cycle est appelé aussi un
diagramme d’états-transitions des processus. La figure suivante illustre ce diagramme
dans le cadre d’un système mono processeur avec stratégie de partage de temps
entre les processus.
Créé
Terminé
Actif
Prêt
Bloqué
Figure 4 - Cycle de vie d’un processus
III. Activités des processus
1. Création d’un processus :
Lors de sa création, un processus reçoit un numéro unique qui sert à le
désigner et qui permet d’accéder à son descriptif le principale problème s’impose est
l’allocation des contextes et des noms des processus
2. Destruction d’un processus :
Par : Ben Mahmoud & Shimi
- 15 -
Systèmes d’exploitation 1
La destruction d’un processus prend lieu lorsqu’on termine d’une façon
normale ou anormale un programme. En conséquent, la libération des ressources qui
lui étaient allouées est un résultat obligatoire. Parmi ces ressources, seul les noms et
le contexte sont directement gérés par le noyau : les autres ressources tel que les
fichiers sont acquises par des mécanismes spécifique réalisés par la gestionnaire de la
mémoire, de fichier,…
3. Suspension d’un processus :
La suspension d’un processus permet à celui-ci de contrôler par exemple
l’activité de son fils, en finissant avec force son exécution. Un autre cas se réalise
lorsqu’un processus demandera explicitement sa suspension momentanée jusqu’à ce
qu’un événement particulier attendu soit signalé. Dans tous les cas le processus
interrompu sera transféré dans une file spécifique à l’événement attendu
4. Reprise d’un processus :
La reprise est une suite éventuelle à la suspension d’un processus. Dans ce cas le
processus appelant réveillera son processus fils suspendu et ce après modification
éventuelle de son contexte.
IV. Stratégie d’ordonnancement :
Un système informatique commun peut posséder un processeur unique ou
plusieurs processeurs. La gestion des processus s’occupe alors de l’allocation des
processeurs aux processus créés.
Une stratégie d’ordonnancement est implémenté réellement moyennant des
algorithmes dites algorithmes d’ordonnancement.
Par : Ben Mahmoud & Shimi
- 16 -
Systèmes d’exploitation 1
L’objectif d’un algorithme d’ordonnancement est d’optimiser une des grandes
temporelles suivantes, sachant que l’on intéresse par ailleurs au taux de l’utilisation
de l’unité centrale et au débit moyen :
-
Le temps de traitement moyen décrit la moyenne des intervalles de temps
séparant la soumission et l’accomplissement d’un processus.
TTM =
(date de fin d′exécution − date d′ arrivée) ⁄ 𝑛𝑜𝑚𝑏𝑟𝑒 𝑑𝑒 𝑝𝑟𝑜𝑐𝑒𝑠𝑠𝑢𝑠
∑
processus
-
Le temps d’attente moyen est le temps est la moyenne des durées de temps
que les processus ont passé dans la file d’attente des processus à l’état prêt.
TAM =
∑
(date début d′exécution − date d′ arrivée) ⁄ 𝑛𝑜𝑚𝑏𝑟𝑒 𝑑𝑒 𝑝𝑟𝑜𝑐𝑒𝑠𝑠𝑢𝑠
processus
1. Algorithme d’ordonnancement sans réquisition :
a. Ordonnancement FCFS (first come first served)
On l’appelle aussi FIFO (pour first in first out) ou premier arrivé premier servi.
Cet algorithme traite les processus selon l’ordre de leur soumission (date arrivée)
sans prendre compte de leur temps d’exécution. L’organisation de la file d’attente
des processus prêt est donc tout simplement FIFO.
… P4 P3 P2 P1
Processeur
Terminé
File d’attente « prêt »
b. Ordonnancement SJF (shortest job first)
SJF, ou la plus courte durée d’exécution, choisit les processus ayant le plus court
temps d’exécution sans réellement tenir compte de leur date d’arrivée. Cet
algorithme est non implémentable à cause de l’aspect statistique de ses calculs.
Par : Ben Mahmoud & Shimi
- 17 -
Systèmes d’exploitation 1
Néanmoins, il est intéressant en vue d’étudier des performances de l’algorithme
d’ordonnancement réellement mis en œuvre par le système
c. Ordonnancement avec tourniquet ou Round Robin
On procède ici à un recyclage des processus sur le processeur tant que les
processus ne sont pas terminés.
Lorsque un processus est élu on lui attribue une tanche de temps fixe appelé
quantum laquelle il s’exécute Au bout de ce temps on ne poursuit plus l’exécution
du processus on lui retire donc le processeur et on le réinsère dans la file des
processus prêt. Là il devra attendre sa prochaine élection.
Processeur
… P4 P3 P2 P1
Terminé
File d’attente « prêt »
Si le quantum n’est pas épuisé,
alors retour à la file d’attente
2. Application
Soit la liste des processus suivante :
Processus
P1 P2 P3 P4
Date d’arrivée
0
1
2
3
Durée d’exécution 5
4
2
2
Pour chaque stratégie d’ordonnancement : FCFS, SJF, Round Robin déterminer les
grandeurs suivantes : le temps de traitement moyen TTM et le temps d’attente
moyen TAM.
Par : Ben Mahmoud & Shimi
- 18 -
Systèmes d’exploitation 1
a. Stratégie FCFS
Afin de calculer les deux grandeurs TTM et TAM, nous devons tout d’abord
tracer le diagramme de GANTT qui représente le graphique d’occupation du
processeur selon la politique d’allocation.
Diagramme de GANTT :
P1
P2
0
P3
5
9
P4
11
13
temps
15
temps
Donc :
 TTM = ((5-0)+(9-1)+(11-2)+(13-3)) / 4 = 32 / 4 = 8
 TAM = ((0-0)+(5-1)+(9-2)+(11-3)) / 4 = 19 / 4 = 4,75
b. Stratégie SJF
Diagramme de GANTT :
P3
2
P4
4
P2
6
P1
10
Donc :
 TTM = ((4-2)+(6-3)+(10-1)+(15-0)) / 4 = 29 / 4 = 7,25
 TAM = ((2-2)+(4-3)+(6-1)+(10-0)) / 4 = 16 / 4 = 4
c. Stratégie tourniquet
Par : Ben Mahmoud & Shimi
- 19 -
Systèmes d’exploitation 1
On suppose ici que le quantum est égal à 1. C'est-à-dire que chaque processus
possède un intervalle de temps qui vaut 1 unité de temps durant laquelle il est élu
par l’ordonnanceur pour exécution.
Diagramme de GANTT :
P1
0
P2
1
P3
2
P4
3
P1
4
P2
P3
P4
P1
P2
P1
P2
P1
5 …………………………………………. 11 12 13
temps
Donc :
 TTM = ((13-0)+(12-1)+(7-2)+(8-3)) / 4 = 34 / 4 = 8,25
 TAM = ((3+3+1+1)+(3+3+1)+(3)+(3)) / 4 = 21 / 4 = 5,25
V. Les processus sous unix
1. Contexte d'un processus :
On distingue des processus utilisateurs et des processus système. Ces derniers :
-
ne sont sous le contrôle d'aucun terminal
-
ont comme propriétaire le super utilisateur (processus démons). Ils restent
résidents en MC en attente d'une requête
-
ils assurent des services généraux accessibles à tous les utilisateurs
-
ils peuvent être créés au lancement du système ou à des dates fixées par
l'administrateur.
Un processus peut s'exécuter dans deux modes différents :
-
mode utilisateur (user mode) : le processus n'accède qu'à son espace
d'adressage et n'exécute que des instructions ordinaires du programme
chargé.
Par : Ben Mahmoud & Shimi
- 20 -
Systèmes d’exploitation 1
-
mode noyau ou système (kernel mode) : le processus exécute des
instructions n'appartenant pas au programme, mais au noyau. Il accède à
des données externes à son espace d'adressage. On peut passer en mode
noyau soit par une interruption appropriée, soit par la réalisation d'un
appel système par le processus lui-même (exemple : requête de lecture au
clavier dans le programme)
2. Structure d'un processus sous unix
Le noyau gère une table des processus, listable par la commande ps avec une
entrée par processus, et contenant des informations sur celui-ci. Cette entrée est
allouée à la création du processus et retirée à son achèvement.
Un processus est identifié par un pid (process identifier), entier de 0 à 32767
retourné par le noyau. Il est caractérisé aussi par sa priorité, son propriétaire et son
groupe propriétaire, son terminal de rattachement.
3. Ordonnancement d'un processus
L'ordonnanceur ou scheduler (gestionnaire des ressources et d'enchaînement des
processus) gère plusieurs processus concurremment et autorise le multitâche par
partage de temps. Il attribue des quanta de temps. A l'expiration de son quantum de
temps, le processus actif, s'il n'est pas terminé, sera obligé de relâcher le processeur.
Un autre processus est alors élu et attribué au processeur. Le processus suspendu
reprend son exécution quand son tour arrive à nouveau pour disposer du processeur.
Sous UNIX, l'horloge de l'ordonnanceur délivre 100 tops, ou cycles mineurs, par
seconde et un quantum, ou cycle majeur, correspond à plusieurs tops (par exemple
100, soit 1 seconde).
Un processus peut prendre l'un des 9 états décrits dans /usr/include/sys/proc.h),
parmi lesquels :
Par : Ben Mahmoud & Shimi
- 21 -
Systèmes d’exploitation 1
-
actif : en mode utilisateur (pas de droit d'accès aux ressources du système)
ou en mode système (ou noyau)
-
activable ou prêt à exécuter : en mémoire ou en zone de swap. Il est
éligible par l'ordonnanceur. Ces deux états sont codés R
-
bloqué : en attente d'un événement (horloge, montage d'un disque,
résultat d'un autre processus, ...), en mémoire ou en zone de swap. Il ne
consomme pas de temps CPU. Il repasse à l'état activable dès que les
conditions le permettent. non prêt : en création ou zombie (désigné par Z,
le processus est achevé, mais son père n'en a pas encore connaissance). Il
ne consomme pas de temps CPU.
Figure 7 : Cycle de vie d’un processus sous unix
-
1 : le processus créé par fork a acquis les ressources nécessaires à son
exécution
-
2 : le processus vient d'être élu par l'ordonnanceur
-
3 : le processus revient d'un appel système ou d'une interruption
-
4 : le processus a réalisé un appel système ou une interruption est
survenue
Par : Ben Mahmoud & Shimi
- 22 -
Systèmes d’exploitation 1
-
5 : le processus se met en attente d'un événement (libération de ressource,
terminaison de processus par wait). Il ne consomme pas de temps UC
-
6 : l'événement attendu par le processus s'est produit
-
7 : conséquence d'un signal particulier
-
8 : réveil du processus par le signal de continuation
-
9 : le processus s'achève par exit, mais son père n'a pas pris connaissance
de sa terminaison. Il ne consomme pas de temps UC et ne mobilise que la
ressource table des processus
VI. Conclusion
Ce chapitre était consacré à la gestion des processus. Après avoir été élu par
l’ordonnanceur, un processus se charge en mémoire centrale pour s’exécuter. La
mémoire centrale représente le lieu d’exécution des processus. Le prochain chapitre
traitera en détail la gestion de la mémoire centrale.
Par : Ben Mahmoud & Shimi
- 23 -
Systèmes d’exploitation 1
Systèmes d’exploitation 1
Travaux Dirigés N° 1
Exercice 1
Dans un système monoprocesseur, on considère les processus suivants:
Processus
Date d’arrivée
Durée d’exécution
P1
0
8
P2
1
2
P3
2
4
P4
3
5
P5
3
6
1- Dessiner le diagramme de GANTT pour les politiques d’allocation suivantes:
a) Premier arrivé premier servi (FCFS)
b) Le plus court d’abord (SJF)
c) Tourniquet (Round Robin) avec quantum = 1
d) Tourniquet (Round Robin) avec quantum = 2
2- Calculer le temps d’exécution de chaque processus pour chacune des politiques
d’allocation.
3- Calculer le temps d’attente de chaque processus pour chacune des politiques d’allocation.
Exercice 2
On considère 4 processus, A, B, C, D. On suppose que l’exécution des processus
nécessite :

Pour A : 4 unités de temps

Pour B : 6 unités de temps

Pour C : 5 unités de temps

Pour D : 2 unité de temps
On suppose que :

A se présente en premier, à l’instant 0,

B se présente à l’instant 1,

C se présente à l’instant 3,
Par : Ben Mahmoud & Shimi
- 24 -
Systèmes d’exploitation 1

D se présente à l’instant 5.
Dans chacun des cas suivants, montrez comment les 4 processus vont utiliser le
processeur, déterminez le temps de traitement moyen et le temps d’attente moyen :
a. Si l’ordonnanceur fonctionne selon Premier Arrivée Premier Servi.
b. Si l’ordonnanceur fonctionne selon la plus courte durée d’exécution.
c. Si l’ordonnanceur utilise l'algorithme du tourniquet, avec un quantum de 2.
Par : Ben Mahmoud & Shimi
- 25 -
Systèmes d’exploitation 1
Leçon 3 : Gestion de la mémoire
Objectif général
Connaître quelques services de gestion de la mémoire
centrale.
Comprendre le principe d’utilisation de la mémoire
Objectifs
spécifiques
centrale.
Décrire les méthodes de partitionnement de la mémoire
centrale.
Connaître les stratégies d’allocation de la mémoire centrale.
Volume horaire
Mots clés
Par : Ben Mahmoud & Shimi
Cours : 1,5h
TD : 1,5h
Mémoire centrale, zone, partitions, allocation,…
- 26 -
Systèmes d’exploitation 1
I. Introduction
Sans mémoire centrale, le système d’exploitation ne pourra jamais s’exécuter
et l’ordinateur ne fonctionnera pas. La mémoire centrale est l’espace d’exécution de
tous les programmes y compris le système d’exploitation.
Dans ce chapitre, nous verrons comment la mémoire centrale est partitionnée
et comment les programmes utilisateurs et systèmes sont affectés aux espaces
mémoire.
II. Généralités sur la mémoire centrale
Le service de gestion de la mémoire centrale divise de la mémoire en deux
zones : zone système qui contient les processus du système d’exploitation et zone
utilisateur qui contient les processus utilisateur.
zone système
zone utilisateurs
Figure 8 : Partitionnement de la mémoire centrale
Le gestionnaire de mémoire gère l'allocation de l'espace mémoire au système et aux
différents processus en cours d'exécution. Parmi ses tâches :
 connaître les parties libres et occupées de la mémoire,
 allouer de la mémoire aux processus qui en ont besoin,
 récupérer la mémoire utilisée par un processus lorsque celui-ci se termine
 traiter le « va-et-vient » entre le disque et la mémoire principale lorsque
cette dernière ne peut pas contenir tous les processus.
Par : Ben Mahmoud & Shimi
- 27 -
Systèmes d’exploitation 1
Le « Va-et-vient » est une technique qui consiste à déplacer les zones de la mémoire
sur le disque afin d’avoir de zones libres.
La partie suivante du cours traitera les schémas de partitionnement possibles de
la mémoire centrale ainsi que les stratégies d’allocation des espaces mémoires aux
différents processus demandant de l’espace.
III. Méthodes de partitionnement :
Le partitionnement de la mémoire consiste à diviser l’espace en des partitions de
taille fixe ou de taille variable. Dans notre cours, nous allons s’intéresser au
partitionnement de la mémoire dans le cadre de la multiprogrammation. Le cas des
systèmes mono-programmés ne sera pas traité puisque les processus sont exécutés
séquentiellement et un à la fois.
1. Partitions fixes :
Dans ce schéma de partitionnement, l’espace mémoire est divisée en un certain
nombre de zones de taille fixe, appelées des partitions. Une partition peut accueillir,
à un instant donné, un programme et un seul. La taille du programme est en tout cas
plus petite ou égale à celle de la partition choisie.
Figure 9 : Espace mémoire découpé en partitions fixes
Par : Ben Mahmoud & Shimi
- 28 -
Systèmes d’exploitation 1
2. Partitions variables :
Ici les parties de l’espace mémoire sont de tailles variables. La zone mémoire
allouée à un processus redevient libre après la distribution du processus. Ces espaces
forment des partitions (de tailles) variables.
Figure 10 : Placement initial en mémoire
La figure précédente montre la répartition initiale des processus dans l’espace
mémoire. Il est supposé que la taille de cette mémoire totalise 100 unités (exprimées
en Kilo ou Méga-octets), que le système d’exploitation nécessite 30% de cet espace
et que le reste est à partager entre les processus utilisateurs. Les processus sont
ordonnés dans une file d’attente selon leurs dates d’arrivées.
Lorsque certains processus se terminent, l’espace mémoire devient une
alternance de zones libres et de zones occupées de taille variable. La figure suivante
décrit une situation à l’issue de laquelle il y aura une formation d’un trou.
Par : Ben Mahmoud & Shimi
- 29 -
Systèmes d’exploitation 1
Figure 11 : Formation des trous
Pour remédier à l’augmentation du nombre de trous, une solution consiste à
grouper les zones libres selon deux techniques :
 Concaténation des trous juxtaposés ;
 Compactage des trous et de l’espace libre en un seul espace.
IV. Les stratégies d’allocation :
L’allocation d’un espace libre à un processus peut s’effectué selon plusieurs
stratégies.
1. Stratégie First-Fit :
Il s’agit de choisir, pour satisfaire une demande, le premier trou, dans l’ordre des
adresses, dont la taille est supérieure ou égale à la demande (autrement dit, on
cherche à allouer le premier trou qui convient). La figure suivante est un exemple
d’allocation selon ce principe.
Par : Ben Mahmoud & Shimi
- 30 -
Systèmes d’exploitation 1
Figure 12 : Stratégie First fit
2. Stratégie Best-Fit :
Il s’agit de choisir, pour satisfaire une demande, le plus petit trou dont la taille soit
suffisante pour répondre à la demande. On peut ainsi espérer ne pas fragmenter les
gros trous afin de satisfaire les demandes gourmandes en espace mémoire. La figure
suivante est un exemple d’allocation selon ce principe.
Par : Ben Mahmoud & Shimi
- 31 -
Systèmes d’exploitation 1
Figure 12 : Stratégie Best fit
3. Stratégie Worst-Fit :
Il s’agit de choisir, pour satisfaire une demande, le plus grand trou dont la taille
est largement supérieure à la demande. On peut ainsi espérer aboutir à un restant
dont la taille est suffisante pour satisfaire les petites demandes en espace mémoire.
La figure suivante est un exemple d’allocation selon ce principe.
Par : Ben Mahmoud & Shimi
- 32 -
Systèmes d’exploitation 1
Figure 13 : Stratégie Worst fit
V. Conclusion
Maintenant, nous avons vu deux services communs du système d’exploitation et
qui sont en étroite relation. Un autre concept est aussi important et sera abordé dans
le cadre du chapitre suivant, c’est le fichier.
Par : Ben Mahmoud & Shimi
- 33 -
Systèmes d’exploitation 1
Systèmes d’exploitation 1
Travaux Dirigés N° 2
Exercice 1
Dans le cadre d’un schéma de partitionnement de la mémoire centrale, on suppose
une allocation de type partition variable. La mémoire centrale est structurée de la façon
suivante :
Système
Libre (300K)
occupé
Libre (100K)
occupé
Libre (200K)
occupé
Libre (500K)
On suppose avoir la séquence suivante des demandes d’allocation : 150k, 200k, 100k, 300k,
150K. Donner l’état final de la mémoire avec les techniques First-fit, Best-fit et Worst-fit.
Conclure.
Exercice 2
On Considère les 5 processus du tableau suivant :
Processus Date d’arrivée Durée d’exécution Taille en MC
P1
0
8
200
P2
2
10
500
P3
4
13
250
P4
10
15
350
P5
11
6
600
On considère aussi une mémoire centrale structurée de la façon suivante :
Par : Ben Mahmoud & Shimi
- 34 -
Systèmes d’exploitation 1
Système
Libre (300K)
occupé
Libre (700K)
occupé
Libre (500K)
occupé
Libre (200K)
occupé
Libre (300K)
Donnez sous forme de diagrammes de temps l’évolution de l’état de la mémoire et de la file
de haut niveau, aux différentes étapes de traitement de ces processus, sous les hypothèses
suivantes :

Le mode d’allocation des trous pour la mémoire centrale est First Fit ;

L’ordonnancement des processus fonctionne selon la stratégie Premier Arrivé,
Premier Servi.
Par : Ben Mahmoud & Shimi
- 35 -
Systèmes d’exploitation 1
Leçon 4 : Système de gestion de fichiers
Objectif général
Connaître les notions de base relatives aux fichiers.
Etudier le concept fichier et le concept fichier.
Objectifs
spécifiques
Comprendre la structure d’un disque et les opérations y liées.
Connaître l’organisation logique des fichiers.
Connaître l’organisation physique des fichiers.
Volume horaire
Mots clés
Par : Ben Mahmoud & Shimi
Cours : 1,5h
TD : 1,5h
fichier, répertoire, disque dur, formatage, partitionnement,
organisation, blocs,…
- 36 -
Systèmes d’exploitation 1
I. Introduction
Un fichier est vu comme une suite d'articles ou d'enregistrements logiques
d'un type donné qui ne peuvent être manipulés qu'au travers d'opérations
spécifiques. Cette 3ème leçon comporte une description physique et logique des
fichiers, des supports de stockage des fichiers et des systèmes de fichiers.
II. Fichiers et répertoires
1. Le concept fichier
Un fichier est un objet abstrait à partir duquel on peut lire et écrire des
informations sans se soucier de l’emplacement physique du contenu du fichier.
On peut classer les fichiers selon les types suivants :
 Fichier classique
 ASCII : peut être affiché et imprimé sans modification, facile à modifier
par un éditeur de texte, exemple : .txt, .html, .bat
 Binaire de données : nécessite un programme décodeur, contiennent
souvent des données structurées, exemple : .doc, .excel, .gif
 Binaire exécutable : possède une structure binaire qui définie les
composantes d’un programme exécutable.
 Fichier spéciaux d’E/S divisé en fichier spéciaux octet et fichier spéciaux bloc
 octet : terminaux, imprimantes, réseaux
 bloc : disque (exemple /etc/hdd1)
 Les catalogues : fichiers spéciaux dont le contenu permet de cataloguer
l’arborescence des fichiers sur le disque.
Un fichier peut être créé de deux façons :
 Soit par l’utilisateur dans la plupart des cas ;
Par : Ben Mahmoud & Shimi
- 37 -
Systèmes d’exploitation 1
 Soit par le système. Certains fichiers sont générés par les systèmes ou certains
outils tels que les compilateurs.
2. Le concept répertoire
Lorsque le nombre de fichiers devient élevé, le système d’exploitation a besoin
d’une organisation afin de structurer ces fichiers et de pouvoir y accéder rapidement.
Cette organisation est effectuée par le biais de répertoires ou catalogues. Un
répertoire est une entité crée pour l’organisation des fichiers. En effet on peut
enregistrer un grand nombre de fichiers sur un disque dur.
Un répertoire est considéré comme un fichier puisqu’il est stocké sur le disque
et est destiné à contenir des fichiers.
III. Gestion des disques
1. Présentation
Un disque dur est un support de stockage des données. Un disque dur contient
un axe central autour duquel les plateaux tournent à une vitesse de rotation
constante. Toutes les têtes de lecture/écriture sont reliées à une armature qui se
déplace à la surface des plateaux, avec une à deux têtes par plateau (une tête par
face utilisée). L’armature déplace les têtes radialement à travers les plateaux pendant
qu’ils tournent, permettant ainsi d’accéder à la totalité de leur surface.
Chaque plateau (possédant le plus souvent 2 surfaces utilisables) est composé
de pistes concentriques séparées les unes des autres. Les pistes situées à une même
distance de l’axe de rotation forment un cylindre. La piste est divisée en secteurs
(aussi appelés blocs) contenant les données.
Pour accéder à un bloc du disque, il faut trois coordonnées :
Par : Ben Mahmoud & Shimi
- 38 -
Systèmes d’exploitation 1
 Le numéro de la piste (détermine la position du bras portant l’ensemble
des têtes) ;
 le numéro de la tête de lecture (choix de la surface) ;
 le numéro du bloc (ou secteur) sur cette piste (détermine à partir de
quel endroit il faut commencer à lire les données).
Figure 14 : Structuration d’un disque dur
Si on veut déterminer la taille d’un disque, on aura besoin des informations
suivantes :
 Le nombre de cylindres
 Le nombre de pistes par cylindre (=nombre de têtes)
 Le nombre de secteurs par piste
 nombre de secteurs du disque = nombres de tete * nombres de cylindre *
nombre de secteurs par cylindre
 taille du disque = nombre de secteurs du disque * taille d’un secteur
2. Partitionnement
Un disque peut être décomposé en partitions. Chaque partition peut contenir
un système de fichiers (données et structures de contrôle).
Par : Ben Mahmoud & Shimi
- 39 -
Systèmes d’exploitation 1
L’information sur le partitionnement d’un disque est stockée dans son premier
secteur (secteur zéro), le MBR (Master Boot Record).
Deux types de partitionnement :
 Primaire : On peut créer jusqu’à 4 partitions primaires sur un même disque.
 Etendue : est un moyen de diviser une partition primaire en sous-partitions
(une ou plusieurs partitions logiques qui se comportent comme les
partitions primaires, mais sont créées différemment (pas de secteurs de
démarrage)).
Dans un même disque, on peut avoir un ensemble de partitions, contenant
chacune un système de fichier (par exemple Windows et Linux).
3. Formatage
Le formatage est l'action de formater, c'est-à-dire de préparer un support de
données informatique (disquette, disque dur, etc.) en y inscrivant un système de
fichiers, de façon à ce qu'il soit reconnu par le système d'exploitation de l'ordinateur.
On distingue deux types de formatage : le formatage bas niveau (ou physique)
consiste à réécrire la table d'allocation des clusters, pour chaque plateau. Ceci
permet de réorganiser l'architecture du disque et ainsi d'isoler les clusters
défectueux.
Par contre, le formatage haut niveau, appelé également formatage logique
s'effectue après le formatage de bas niveau, il crée un système de fichiers sur le
disque, qui va permettre à un système d'exploitation d'utiliser l'espace disque pour
stocker et utiliser des fichiers.
IV. Organisation logique des fichiers :
Un fichier est considéré comme un ensemble d’articles dont la structuration et
la manière d’y accéder sont modélisées logiquement par l’utilisateur. On distingue
Par : Ben Mahmoud & Shimi
- 40 -
Systèmes d’exploitation 1
alors deux méthodes d’organisation logiques des fichiers selon qu’on veuille accéder
aux données séquentiellement ou directement.
1. Organisation séquentielle :
L’accès aux données d’un fichier se fera d’une façon séquentielle. Ce type
d’organisation peut être adapté aussi bien par des mémoires secondaires à accès
exclusivement séquentiel (exemple : les bandes magnétiques) que par des mémoires
à accès direct (exemples : les disques durs).
Dans un fichier, on regroupe les données d’une même entité logique
(exemple : un étudiant parmi les étudiants d’un institut) dans un même article. Les
composants d’un article sont alors des champs de type simple (exemple : le CIN de
l’étudiant) ou d’un type composé (exemple : l’adresse de l’étudiant avec un nom de
rue, un code postal et un nom de ville).
Succ
e1
e2
….
ei
ei-1
en
X
Figure 15 : Description schématique d’un fichier séquentiel
2. Organisation à un accès direct :
La représentation des articles d’un fichier dans une organisation à accès direct
doit permettre selon les besoins un accès tantôt séquentiel et tantôt direct (voir
même calculé). Seules des mémoires secondaires du genre disque dur permettent
l’accès direct aux données. La figure suivante schématise une telle organisation.
Par : Ben Mahmoud & Shimi
- 41 -
Systèmes d’exploitation 1
fichier
clé
Clé
Recherche
k
Info
.
.
.
.
.
.
Figure 16 : Organisation d’un fichier à un accès direct
Pour pouvoir accéder directement à un quelconque article du fichier, on doit
supposer l’existence d’une donnée qui permette de le désigner en tant que tel. Cette
donné est une clé d’accès.
Clé
Autres Champs d’informations
Figure 17 : Article d’un fichier à un accès direct
V. Organisation physique des fichiers :
La mémoire centrale est composée d’un ensemble fini d’unités d’allocation
appelées blocs et qu’un fichier occupe dans cette mémoire un segment logique
constitué d’un certain nombre de blocs (par exemple 5 secteurs pour un fichier
renfermant 2320 octets si la taille d’un bloc vaut 512 octets).
1. Blocs contigus :
Dans une implantation contiguë, chaque fichier occupe un certain nombre de
blocs consécutifs. La simplicité d’une telle organisation présente un avantage certain
Par : Ben Mahmoud & Shimi
- 42 -
Systèmes d’exploitation 1
pour les fichiers dont le nombre et la taille ne changent pas et dont l’accès est
séquentiel. En effet, il suffirait pour localiser un fichier, de mémoriser pour chaque
fichier un nombre (celui des blocs occupés) et l’adresse de son premier bloc.
Malheureusement, cette technique d’implantation présente un inconvénient
majeur que constitue la fragmentation de l’espace mémoire.
autres
info.
nom
Nbre
Bloc=3
descripteur du fichier
Adr. 1er
bloc
Bloc 1
Bloc 2
Bloc 3
Espace
mémoire
Figure 18 : Blocs contigus en mémoire secondaire
2. Blocs chaînés :
Dans une implantation chaînée, les blocs sont liés entre eux. Cette information
supplémentaire sur le chaînage doit être sauvegardée dans le descripteur du fichier
ou dans le bloc mémoire. On mémorise aussi dans le descripteur du fichier l’adresse
du premier bloc alloué et éventuellement celui du dernier bloc.
3. Représentation des blocs par des tables d’implantation :
Pour pallier l’inefficacité des méthodes précédentes pour le cas des accès
directs, l’idée est de rassembler toutes les adresses dans une table d’implantation.
Ces adresse rassemblées peuvent se présenter sous plusieurs formes ; une table
unique, des tables chaînes ou encore des tables à plusieurs niveaux.
Par : Ben Mahmoud & Shimi
- 43 -
Systèmes d’exploitation 1
a. Tables d’implantation unique :
Dans le cas d’une table unique, toutes les adresses des blocs alloués au fichier
se trouvent dans le descripteur du fichier. Ceci amène à limiter la taille du fichier au
nombre d’entrées de la table d’implantation.
Figure 19 : Représentation de blocs par une table unique
b. Tables d’implantation chaînées :
Dans ce cas, chaque table d’implantation doit indiquer le nombre de blocs
accessibles, un lien de chaînage vers une autre table d’implantation et des pointeurs
vers les blocs de données du fichier.
Par : Ben Mahmoud & Shimi
- 44 -
Systèmes d’exploitation 1
Figure 20 : Représentation de blocs par des tables chaînés
c. Tables d’implantation à plusieurs niveaux :
Pour des tables d’implantation de grandes tailles, il est serait préférable
d’organiser les tables selon une structure hiérarchique en limitant les niveaux à deux
ou trois. Ceci améliore nettement les temps d’accès aux données car la recherche est
plus rapide.
Par : Ben Mahmoud & Shimi
- 45 -
Systèmes d’exploitation 1
Figure 7.8: Représentation de blocs par des tables multi-niveaux
VI. Conclusion
Nous avons essayé, dans ce chapitre, de présenter quelques concepts liés au
fichier. D’autres concepts seront traités dans le cadre du cous système d’exploitation
2 enseigné au cours de la 3ème année.
Par : Ben Mahmoud & Shimi
- 46 -
Systèmes d’exploitation 1
Systèmes d’exploitation 1
Travaux Dirigés N° 3
Exercice 1
Soit un disque dur ayant les caractéristiques suivantes :
Caractéristique
Performance
Taille d’un secteur
512 octets
Nombre de plateaux
5
Nombre de têtes
10
Nombre de cylindres
100 000
Nombre de secteurs par piste
4 000
Quelle est la capacité d’une piste, d’un cylindre, d’une surface, et du disque ?
Exercice 2
Soit le fichier td3.doc décrit avec le système MS-DOS par l’entrée suivante :
ds.doc … … 4
Etant donné le descripteur du fichier suivant :
Numéro du bloc
2
3
4
5
6
7
8
9
10
11
12
13
Valeur
0
0
5
7
0
8
EOF
0
11
12
0
EOF
Description
………………………………….
………………………………….
………………………………….
………………………………….
………………………………….
………………………………….
………………………………….
………………………………….
………………………………….
………………………………….
………………………………….
………………………………….
EOF : signifie le bloc de fin de fichier.
1. Quelle est la taille du fichier « td3.doc » en nombre de blocs utilisés ?
2. Complétez la colonne description par l’état du bloc (occupé ou libre).
Par : Ben Mahmoud & Shimi
- 47 -
Systèmes d’exploitation 1
Bibliographie
1. Andrew Tanenbaum, « Systèmes d’exploitation », Edition Pearson 3ème édition,
2008.
2. Leila Baccouche, « Au Coeur des Systèmes d’Exploitation des Ordinateurs :
Concepts de base et Exercices Résolus », Centre de Publications universitaire
2003.
3. Mohamed Said Ouerghi, « Principes des Systèmes d’Exploitation », Centre de
Publications universitaire 2003.
4. Samia Bouzefrane, « Les systèmes d’exploitation, Unix, Linux et Windows XP
avec C et Java », Edition DUNOD, 2007.
Par : Ben Mahmoud & Shimi
- 48 -
Téléchargement