Vous êtes sur la page 1sur 48

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

Connaître l’histoire et les principes de base des systèmes


Objectif général
d’exploitation.
Parcourir l’histoire des ordinateurs.
Parcourir l’histoire des systèmes d’exploitation.
Objectifs
Savoir définir un système d’exploitation par ses différents
spécifiques
rôles.
S’initier aux principes de base d’un système d’exploitation.

Volume horaire Cours : 3h

Système, services, processus, mémoire, fichiers, matériels,


Mots clés
programmes,…

Par : Ben Mahmoud & Shimi -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
Gestion de l’interface H/M Outils d’administration ;

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
Figure de vie
3 - Cycle de d'un processus
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 comportent les opérations suivantes : création,

Par : Ben Mahmoud & Shimi -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 Débuter avec les stratégies et les algorithmes
spécifiques d’ordonnancement.
Etudier les processus sous le système unix.

Cours : 3h
Volume horaire
TD : 1,5h

Système, services, processus, mémoire, fichiers, matériels,


Mots clés
programmes,…

Par : Ben Mahmoud & Shimi - 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.

Processeur
… P4 P3 P2 P1 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 P3 P4

0 5 9 11 13 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 P4 P2 P1

2 4 6 10 15 temps

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 P2 P3 P4 P1 P2 P3 P4 P1 P2 P1 P2 P1

0 1 2 3 4 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

Connaître quelques services de gestion de la mémoire


Objectif général
centrale.
Comprendre le principe d’utilisation de la mémoire
centrale.
Objectifs
Décrire les méthodes de partitionnement de la mémoire
spécifiques
centrale.
Connaître les stratégies d’allocation de la mémoire centrale.
Cours : 1,5h
Volume horaire
TD : 1,5h

Mots clés Mémoire centrale, zone, partitions, allocation,…

Par : Ben Mahmoud & Shimi - 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 Comprendre la structure d’un disque et les opérations y liées.
spécifiques Connaître l’organisation logique des fichiers.
Connaître l’organisation physique des fichiers.

Cours : 1,5h
Volume horaire
TD : 1,5h

fichier, répertoire, disque dur, formatage, partitionnement,


Mots clés
organisation, blocs,…

Par : Ben Mahmoud & Shimi - 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é Info

.
.
Clé
.
Recherche .
k
.
.

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 Nbre Adr. 1er Bloc 1


nom
info. Bloc=3 bloc
descripteur du fichier 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 Valeur Description


2 0 ………………………………….
3 0 ………………………………….
4 5 ………………………………….
5 7 ………………………………….
6 0 ………………………………….
7 8 ………………………………….
8 EOF ………………………………….
9 0 ………………………………….
10 11 ………………………………….
11 12 ………………………………….
12 0 ………………………………….
13 EOF ………………………………….

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 -

Vous aimerez peut-être aussi