0% ont trouvé ce document utile (0 vote)
62 vues119 pages

Sys Exp-1

Ce document présente une introduction aux systèmes d'exploitation, en détaillant leurs structures, fonctions et mécanismes de gestion des processus, fichiers et mémoires. Il aborde également les différents types de systèmes d'exploitation, leur organisation, ainsi que la gestion des processus et l'ordonnancement. Enfin, il explique les concepts de processus, de threads et d'algorithmes de scheduling.

Transféré par

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

Sys Exp-1

Ce document présente une introduction aux systèmes d'exploitation, en détaillant leurs structures, fonctions et mécanismes de gestion des processus, fichiers et mémoires. Il aborde également les différents types de systèmes d'exploitation, leur organisation, ainsi que la gestion des processus et l'ordonnancement. Enfin, il explique les concepts de processus, de threads et d'algorithmes de scheduling.

Transféré par

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

INTRODUCTION AUX

SYSTÈMES
D’EXPLOITATIONS :
L2 MATHÉMATIQUES
ET INFORMATIQUE
OBJECTIFS :
-Connaître les structures d’un SI et d’un SE;

-Connaître les principales fonctions d’un SE;

-Connaître les mécanicismes de gestion des


Processus, fichiers et mémoires par le SE ;

-Savoir exécuter des commandes à l’aide de l’


Interpréteur de commande d’un SE.
PLAN DU COURS
CHAPITRE I : GÉNÉRALITÉS SUR LES
SYSTÈMES D’EXPLOITATIONS ;

CHAPITRE II : GESTION DES PROCESSUS ;

CHAPITRE III : GESTION DES FICHIERS ;

CHAPITRE IV : GESTION DES MEMOIRES.


CHAPITRE I :
GÉNÉRALITÉS SUR LES
SYSTÈMES
D’EXPLOITATIONS
I-GÉNÉRALITÉS SUR LES SYSTÈMES D’EXPLOITATIONS
 Un ordinateur ne peut exécuter des tâches de lui-même, des
instructions (ordres) bien organisées sous forme de
programmes informatiques doivent lui être écrites ;

 Deux grandes catégories de logiciels (programmes) existent en


informatique :

Les logiciels de base ou systèmes d’exploitations et les


logiciels d’applications.
NB : Dans le cadre de ce cours nous n’allons parler que des
systèmes d’exploitations.
1.1Définition d’un système d’exploitation

 Un système d’exploitation est un programme (logiciel) qui


joue un rôle d’interface entre le matériel et l’utilisateur (il nous
épargne le désordre électronique dans l’unité centrale) ;

 Il permet de gérer les ressources matérielles (Processeurs,


Mémoires vives, mémoires mortes (supports de stockage)) et
logiciels (Bios, Utilitaires de fonctionnement de périphériques,
Programmes d’application, processus etc.).
BIOS : Basic Input Output System
-C’est un petit programme se trouvant sur la carte
mère de l’ordinateur précisément sur une mémoire
ROM (Mémoire à lecture uniquement ) ;

ROM : READ ONLY MEMORY

-Il (BIOS) passe en revue tous les périphériques


d’entrée et sortie de l’ordinateur avant l’amorçage du
système d’exploitation.
QUELQUES EXEMPLES DE SYSTÈMES D’EXPLOITATIONS :

-Microsoft Windows : Propriété de Microsoft corporation ;


-Mac OS (Mackintosh), iOS (iPhones) : Propriété de Appel ;
-Linux : Système d’exploitation à accès libre, Linux Thorvald
est l’initiateur du projet Linux ;
-Vx Works (Système embarqué ) : Propriété de la NASA, pour
les sondes de reconnaissance orbitaire sur la planète mars
(Spirit, opportunity et curiosity) ;
-Ouragan : Propriété de la ville de paris, il est utilisé pour
l’exploitation des lignes de métro parisiens ;
-QNX : Utilisé en robotique, dans les aspirateurs robots.
1.2 Organisation d’un système informatique et
caractérisation du système d’exploitation
1.2.1 Organisation d’un système informatique
Le système informatique s’organise autour de plusieurs
éléments dont le système d’exploitation ce sont :
 Matériel : Entité unique (composants électroniques et
périphériques) ;
 Système d’Exploitation : Logiciel qui englobe le
matériel pour fournir des services ;
 Applications : Elles utilisent les services fournis par le
noyau du SE par des appels ;
 Utilisateurs : Ils utilisent les applications se trouvant
sur le système d’exploitation.
Cette organisation peut être représentée par le schéma ci-
dessous :
1.2.2 Caractérisation du système d’exploitation
1.2.2.1 Structure d’un système d’exploitation
Le système d’exploitation est composé de deux principaux
éléments : le noyau (kernel en anglais) et l’interpréteur de
commande (shell en anglais).

 Noyau du SE
Les différentes fonctions du noyau d’un SE sont :

-Gestion des processus : Ce sont les éléments qui


concernent l’exécution des programmes ;
-Gestion des mémoires : Ce sont les éléments qui
concernent le transfert des données nécessaires aux
programmes ;
-Gestion des fichiers : Maintenir l’ordre, de manière
généralement arborescente de l’ensemble des données
utilisées par les applications ;
-Gestion des entrées sortie : Tous ce qui concerne la
communication avec l’extérieur ;
-Gestion des communications réseau ;
-Gestion des interfaces graphiques : Tous ce qui
concerne l’affichage sur l’écran.
NB : Les fonctions les plus importes d’un SE sont : La gestion
des processus, La gestion des mémoires, La gestion des
fichiers

Interpréteur de commande

Il permet la communication avec le système


d'exploitation par l'intermédiaire d'un langage de
commandes, afin de permettre à l'utilisateur de :
-piloter les périphériques en ignorant tous des
caractéristiques du matériel qu'il utilise ;
-Gérer des adresses physiques, etc.
1.2.2.2 Les différents types de SE
Il existe trois types de SE différents, si l’on ignore les systèmes
rudimentaires de la 1 génération ce sont :

-Systèmes d’exploitation mono tâches ou mono programmés


(2ème génération) ;

-Systèmes d’exploitation multitâches ou multiprogrammés


(3ème génération) ;

-Systèmes d’exploitation à temps partagé (amélioration de la


3ème génération).
Système d’ Exploitation (SE) monotâches

Ces SE sont caractérisés par les éléments suivants :

-Impossibilité d’avoir en mémoire centrale plusieurs taches à


un moment donné ;

-Lorsqu’un programme est lance, il mobilise les ressource de


la machine et ne les libèrent qu’à sa fermeture.

EXEMPLE : MS-DOS
MS-DOS : Microsoft Disc Operating System
Systèmes d’exploitation multitâches ou multiprogrammés

Les systèmes d’exploitation multitâches sont caractérisés par


les éléments suivants :

-Possibilité d’avoir en mémoire centrale plusieurs tâches


s’exécutant en même temps ;

-Possibilité de partage du temps du processeur entre


plusieurs programmes qui semblent s’exécuter en même
temps.
EXEMPLE : WINDOWS X, Linux etc.
On distingue :
-Le multitâches coopératif : Un S.E. multitâches est dit
coopératif quand il permet à plusieurs applications de
fonctionner et d'occuper la mémoire, leur laissant le soin de
gérer cette occupation.

EXEMPLE : Windows 95, 98 et Millénium

-Le multitâches préemptif : Un SE multitâches est dit


préemptif lorsqu'il peut arrêter à tout moment n'importe
quelle application pour passer à la suivante.

EXEMPLE : Windows XP, Windows 7-8-10 et Linux


Systèmes multiutilisateurs ou à temps partagé

C’est une amélioration de la 3ème génération, c’est à dire les


systèmes d’exploitation multitâches.
-C’est un système multitâches indispensable dans l’utilisation de
contexte réseau ;

-Il gère les environnements de tous les utilisateurs ;

-Partage la mémoire centrale et le processeur de telle sorte que


l’utilisateur est l’impression qu’il est le seul à l’utiliser.
EXEMPLE : WINDOWS SERVER, WINDOWS 2000, LINUX
CHAPITRE II :
GESTION DES PROCESSUS
2.1 Définition
-Un processus est un programme en cours d'exécution par un
système d'exploitation ;
-C’est l'image en mémoire centrale d'un programme s'exécutant
avec son contexte d'exécution (registres internes, place en
mémoire centrale, données, code etc.) fourni par le processeur
central
-Selon Andrew Tanenbaum, spécialiste en SE à l’Université libre
d’Amsterdam un processus est un programme qui s'exécute et qui
possède son propre espace mémoire, ses registres, ses piles,
ses variables et son propre processeur virtuel (simulé en multi-
programmation par la commutation entre processus effectuée
par le processeur unique).
2.2 Discontinuité dans le temps d’exécution des processus
Lorsque l'on fait exécuter plusieurs programmes "en même
temps " :
-Le processeur passe cycliquement une partie de son temps
(quelques millisecondes) à exécuter séquentiellement une
tranche d'instructions de chacun des programmes selon une
logique qui lui est propre ;

- Il donne ainsi l'illusion que tous les programmes sont traités en


même temps parce que la durée de l'exécution d'une tranche
d'instruction est plus rapide que notre attention consciente.
EXEMPLE : Exécution de plusieurs processus
2.3 Différents états d’un processus
Quand un processus s’exécute, il change d’état. Chaque processus
peut se trouver dans chacun des états suivants :

-En exécution: il a le contrôle du processeur central et exécute les


actions du programme dont il est l'image en mémoire centrale ;

-Blocqué (En attente ) : il est en attente d'une information;

-Prêt : Le processus attend d’être affecté à un processeur.


Ces différents états peuvent s’illustrer par le schéma
ci-dessous :
1-Processus bloqué en attente de données;

2-L’ordonnanceur choisi un autre processus ;

3-L’ordonnanceur exécute le processus choisi ;

4-Les données deviennent disponibles pour le


processus précédemment bloqué.

NB : Les processus Crée peut être détruit.


2.4 Gestion des processus par le SE
Chaque processus est représenté dans le SE par une table des
processus qui contient une entrée sous forme d'un bloc de
contrôle du processus ou PCB (Process Control Block).
Le PCB contient plusieurs informations concernant un processus
spécifique, comme par exemple :

-L’état du processus ;

-Le compteur d’instructions (il indique l’adresse de l’instruction


suivante devant être exécutée par ce processus) ;

-Les informations sur le scheduling de la CPU ( information


concernant la priorité du processus) ;
-Les (valeurs des registres base et limite, des tables de
pages ou des tables de segments) ;

-Les Informations sur l’état des E/S (liste des


périphériques E/S allouées à ce processus, une liste des
fichiers ouverts, etc.).

Le schéma ci-dessous illustre la présentation du PCB


EXEMPLES :
EXEMPLE 1: Sous WINDOWS voici certaines informations sur les processus
obtenus à l’aide du gestionnaire de taches Windows
- PID (Process ID) : un unique identifiant utilisé pour référer le
processus
- Statut : Cette rubrique donne le statut du processus (actif ou
passif ou bloqué) ;
-Processeur : Le pourcentage de processeur utilisé par le
processus ;
-Mémoire : Le pourcentage de mémoire utilisé par le processus ;

-Réseau : Si la machine est en réseau, le débit de données


véhiculé par le processus sur le réseau.
NB : Le logiciel Process Explorer détaille beaucoup plus les
processus que le gestionnaire de taches de Windows.
EXEMPLE 2 : Sous linux liste des informations sur les processus :
-PID (Process ID) : un unique identifiant utilisé pour référer le
processus ;

- PPID (Process Parent ID) : le nombre de sous processus


contenus dans un processus ;

- TTY (Terminal) : Le terminal sur lequel le processus est


connecté ;
2.5 Processus léger ou threads

Un processus travaille et gère, pendant le quantum de temps


qui lui est alloué, des ressources et exécute des actions sur et
avec ces ressources. Un thread constitue la partie exécution
d'un processus alliée à un minimum de variables qui sont
propres au thread (c’est un processus léger).

-Un processus peut comporter plusieurs threads ;

-Les threads situés dans un même processus partagent les


mêmes variables générales de données et les autres ressources
allouées au processus englobant.
-
Les processus légers (threads), partagent un contexte
-

commun sauf la pile ( ils possèdent leur propre pile d'appel).

-Pile : C’est une partie de la mémoire allouée par le système


d'exploitation pour l'exécution d'une tâche.
-Le tas : C’est un emplacement de la mémoire utilisé pour
les allocations dynamiques, par exemple les pointeurs.

NB :

-La taille de la pile est décidée par le système


d'exploitation, elle ne peut pas varier et la pile est
supprimée lors de la fin de l'exécution de la tâche ;

- Contrairement à la pile, n'importe quel bloc du tas peut être


alloué ou libéré à n'importe quel moment.
2.6 L'ordonnancement ou scheduling des processus pour
gérer le temps du processeur
2.6.1 Scheduler ou ordonnanceur

Le Scheduler est un programme du SE qui s’occupe de choisir,


selon une politique de scheduling donnée, un processus parmi
les processus prêts pour lui affecter le processeur

2.6.2 Commutation de contexte


Le fait de commuter le processeur sur un autre processus
demande de sauvegarder l’état de l’ancien processus et de
charger l’état sauvegardé par le nouveau processus. Cette
tâche est connue sous le nom de commutation de contexte.
2.6.3 Critères de scheduling

Plusieurs critères ont été proposés pour comparer et évaluer


les performances des algorithmes de scheduling du processeur.
Les critères les plus souvent utilisés sont :
-Utilisation du processeur : Un bon algorithme de scheduling
sera celui qui maintiendra le processeur aussi occupé que
possible ;
-Capacité de traitement : C’est la quantité de processus
terminés par unité de temps ;
-Temps de restitution : C’est le temps s’écoulant entre la
soumission du travail et sa terminaison ;
-Temps d’attente : C’est le temps passé à attendre dans la
file d’attente des processus prêts ;

-Temps de réponse : C’est le temps passé dans la file


d’attente des processus prêts avant la première exécution.
2.6.4 Algorithmes de scheduling
2.6.4.1 Algorithmes de scheduling non préemptif
 Notion d’Algorithme non préemptif

Lorsqu’un processus devient élu (il a le processeur), il conserve


son état (il conserve le processeur) jusqu’à ce qu’il se bloque
ou se termine.
-L’algorithme du Premier Arrivé Premier Servi (FCFS)
L’algorithme de scheduling du processeur le plus simple est
l’algorithme du Premier Arrivé Premier Servi (First Come
First Served : FCFS).
Quand un processus entre dans la file d’attente des processus
prêts, son PCB est enchaînée à la queue de la file d’attente.
Quand le processeur devient libre, il est alloué au processeur
en tête de la file d’attente.
EXEMPLE :
Trois processus P1, P2 et P3 arrivent dans cet ordre au
système. Leurs durées d’exécution sont respectivement : 24,
3, 3 unités de temps. Pour représenter l’historique
d’occupation du processeur, on utilise le diagramme suivant,
appelé de Gantt.
Diagramme de Gantt :

Le temps d’attente est égal à 0 pour le processus P1, 24 pour le


processus P2 et 27 pour le processus P3. Le temps d’attente
moyen est égal à : (0+24+27)/3, soit 17 unités de temps.
Si les processus étaient arrivés dans l’ordre P2, P3 et P1, les
résultats seraient différents :

Diagramme de Gantt :
Le temps moyen d’attente serait : (0+3+6)/3=3 unités.
Ainsi le temps moyen d’attente avec une politique FCFS n’est
généralement pas minimal et peut varier substantiellement si
les durées d’exécution des processus varient beaucoup.
Critique de la méthode :
-La méthode FCFS tend à pénaliser les travaux courts ;
-L’algorithme du FCFS n’effectue pas de réquisition. C’est à dire
qu’une fois que le processeur a été alloué à un processus, celui-
ci le garder jusqu’à ce qu’il le libère, soit en terminant, soit après
avoir demandé une E/S.
-L’algorithme FCFS est particulièrement incommode pour les
systèmes à temps partagé, Où il est important que l’utilisateur
obtienne le processeur à des intervalles réguliers. Il peut
paraître désastreux de permettre qu’un processus garde le
processeur pendant une période étendue.
2.6.4.2 Algorithmes de scheduling préemptif
 Notion d’Algorithme préemptif
Un processus élu (possédant le processeur) peut être suspendu
avant qu’il se termine ou se bloque

-L’algorithme du Plus Court d’abord (SJF) :


Cet algorithme (en anglais Shortest Job First : SJF) affecte le
processeur au processus possédant le temps d’exécution le plus
court. Si plusieurs processus ont la même durée, une politique
FIFO sera alors utilisée pour les départager.
EXEMPLE : On soumet au système quatre processus P1, P2,
P3 et P4 dont les durées d’exécution sont données par le
tableau suivant :

L’algorithme du travail le plus court donnera alors le résultat


suivant :
Diagramme de Gantt :
Le temps moyen d’attente est = (0+3+9+16)/4=7.
Alors que si on avait choisi une politique FCFS, le temps moyen
serait de : 10.25 unités de temps.

-Critique de la méthode :

-Il a été prouvé que l’algorithme SJF est optimal dans le temps
dans le sens qu’il obtient le temps d’attente le plus court pour
un ensemble de processus donné ;
-Toutefois, cet algorithme est difficile à implémenter pour une
raison simple : Comment peut-on connaître le temps
d’exécution d’un processus à l’avance ?
-Scheduling avec priorité :

-Cet algorithme associe à chaque processus une priorité, et le


processeur sera affecté au processus de plus haute priorité.
Cette priorité varie selon les systèmes et peut aller de 0 à 127.

-Les priorités peuvent être définies en fonction de plusieurs


paramètres : le type de processus, les limites de temps, les
limites mémoires, etc.

EXEMPLE : On dispose de 5 processus ayant des priorités


différentes, comme le montre ce tableau :
Le temps moyen d’attente est = (0+1+6+16+18)/5=8.2 unités de
temps.
Critique de la méthode :
-Une situation de blocage peut survenir si les processus de
basse priorité attendent indéfiniment le processeur, alors que des
processus de haute priorité continuent à affluer ;
-Pour éviter une telle situation, on peut utiliser la technique dite
du vieillissement. Elle consiste à incrémenter graduellement la
priorité des processus attendant dans le système pendant
longtemps ;
-Par exemple, nous pourrions incrémenter de 1 la priorité d’un
processus en attente toutes les 15 minutes. En fin de compte,
même un processus ayant une priorité initiale égale à 0 aurait
la plus haute priorité dans le système et serait exécuté.

-L’algorithme de Round Robin (Tourniquet)

L’algorithme de scheduling du tourniquet, appelé aussi Round


Robin, a été conçu pour des systèmes à temps partagé. Il
alloue le processeur aux processus à tour de rôle, pendant une
tranche de temps appelée quantum. Dans la pratique le
quantum s’étale entre 10 et 100 ms.
EXEMPLE : On dispose de 3 processus P1, P2 et P3 ayant
comme durée d’exécution, respectivement 24, 3 et 3 ms. En
utilisant un algorithme Round Robin, avec un
quantum de 4 ms, on obtient le diagramme de Gantt suivant :
Diagramme de Gantt :

14
Critique de la méthode :
-La performance de l’algorithme de Round Robin dépend
largement de la taille du quantum.

-Si le quantum est très grand, la politique Round Robin serait


similaire à celle du FCFS.

-Si le quantum est très petit, la méthode Round Robin permettrait


un partage du processeur :

-Chacun des utilisateurs aurait l’impression de disposer de son


propre processeur. Cependant le quantum doit être choisi de
sorte à ne pas surcharger le système par de fréquentes
commutations de contexte.
EXEMPLE :
On dispose d’un processus P dont le temps d’exécution est
de 10 ms. Calculons le nombre de commutations de contexte
nécessaires pour un quantum égal respectivement à : 12, 6 et 1.
CHAPITRE III :
GESTION DES FICHIERS
3 Gestion des fichiers
3.1 Définition

-Le Système de Gestion de Fichiers (SGF) joue un rôle central


dans un système d’exploitation car il doit gérer la plupart des
informations des usagers et du système lui-même ;

-Il s'agit en fait d'un mécanisme logique, basé sur une ou


plusieurs structures de données, permettant d'organiser l'espace
physique d'un disque de façon à pouvoir y stocker des fichiers
grâce au bras de lecture/écriture.

NB : Un fichier est l’unité de stockage logique pour


l’enregistrement de données : c’est l’unité d’allocation.
3.2 Fonctions du SGF
-Simplifier la gestion des fichiers pour l’utilisateur (généralement,
l’utilisateur fournis seulement les attributs nom et extension du
fichier, les autres attributs sont gérés implicitement par le SGF) ;

-Gestion de l’organisation des fichiers sur le disque (allocation de


l’espace disque aux fichiers) ;

-Gestion de l’espace libre sur le disque dur ;

-Sécurité des fichiers, c’est à dire la garantie de leur intégrité en


cas d’incident ou de malveillance.
C’est tout cela qui regroupe le fonctionnement d’un système de
gestion de fichiers dont voici l'illustration :
3.3 Support physique d’organisation des fichiers
3.3.1 Structure des disques de stockage
3.3.2 Notion de cluster
Un cluster est la plus petite unité de disque gérée.
Il est la structure suivante :
- Un cluster est constitué d'un ou plusieurs secteurs consécutifs;

-Le contenu d'un fichier est découpé, suivant sa taille, en un


certain nombre de clusters (de blocs) qui seront placés
sur le support magnétique (le disque) et répertoriés par le SGF ;

- Tous les clusters d’un fichier sont retrouvés par le SGF grâce à
certains mécanismes entre autres :
FAT16, FAT32, NTFS, ext2fs, etc.
3.3.3 Secteur de « boot »
Le premier secteur d'une partition « primaire » ou « logique »
(Généralement le C) s'appelle le secteur de boot. Le secteur de
boot contient également, en plus de l'éventuel programme
de lancement du SE, que l'on appelle le programme de boot
L’image ci-dessous suivante illustre les clusters sur un disque de
stockage :

NB : Un cluster appartient totalement à un fichier qu'il n'y ait


qu'un seul octet à l'intérieur ou que le cluster soit totalement
rempli.
EXEMPLE
Supposons que notre système d'exploitation travaille avec des
clusters de 32Ko secteurs par clusters. Détermine le nombre de
secteur par cluster

SOLUTION
Un secteur de disque vaut généralement : 512 Octet
La taille moyenne des clusters de notre disque : 32 Ko = 32768
Octet Nombre de secteurs : 32768 / 512 = 64 Secteurs
REMARQUE : Si on enregistre un fichier de 300 octets, un
seul cluster suffit mais on
peut voir qu'il y aura beaucoup de perte de place.
NB : Le MBR contient la description des partitions ainsi que le
bootloader permettant de lancer l'exécution du programme se
trouvant dans le secteur de boot.
3.3.4 Système de Gestion de Fichiers sous Windows et Linux
/ Unix
3.3.4.1 Système de Gestion de Fichiers sous Windows
-Organisation des fichiers

Les fichiers (et les dossiers) sous Windows sont organisés selon
une structure arborescente. Le schéma ci-dessous en donne
l’illustration
-Premier niveau : La racine du disque système (Généralement le C)
-Deuxième niveau : Les Principaux dossiers sur le disque système
- Les autres niveaux sont obtenus par l’utilisateur en créant des
sous-dossiers au niveau
du deuxième niveau
- L’évolution des SGF sous Windows
Le système de gestion de fichiers sous Windows ont évoluées selon
l’ordre suivant : FAT ( Files Allocation Table ) ou Fat 16 pour le
système MS-DOS, FAT 32 à partir de Windows 95 et aujourd’hu
NTFS (New Technology File System).

NB : Il faut noter qu’aujourd’hui en plus du NTFS, les autres


SGF (FAT 32 continue d’être utilisés par les systèmes Windows)
FAT ou FAT 16 : Cette structure de données qui est en fait une
table (un tableau), appelée la « Table d'Allocation des Fichiers
» ou « Files Allocation Table » ou « FAT », dans laquelle
chaque entrée (chaque case) peut contenir une valeur numérique
qui correspond en fait à un numéro de cluster, est codée sur 16
bits d'où le terme de FAT16 ;

FAT 32 : Il se base sur le même principe que la FAT16 mais dans


son cas le numéro de chaque cluster est codé sur 32 bits (en
réalité 28 bits car les 4 bits de poids forts sont réservés) ;
NTFS
Le système de fichiers NTFS (New Technology File System) est
utilisé par Windows2000, WindowsNT, Windows Vista etc.
Il utilise un système basé sur une structure appelée MFT (Master
File Table), permettant de contenir des informations détaillées
sur les fichiers. Le schéma ci-dessous illustre une partition NTFS
3.3.4.3 Taille par défaut des clusters FAT 32 et NTFS
- Cluster NTFS
Windows 7, Windows Server 2008 R2,
Windows Server 2008, Windows Vista,
Taille du volume Windows NT 3.51 Windows NT 4.0
Windows Server 2003, Windows XP et
Windows 2000
7 Mo–512 Mo 512 octets 4 KB 4 KB
512 Mo–1 Go 1 Mo 4 KB 4 KB
1 Go–2 Go 2 Ko 4 KB 4 KB
2 Go–2 To 4 KB 4 KB 4 KB

2 To–16 To Pas de prise en charge* Pas de prise en charge* 4 KB

16 Mo–32 Mo Pas de prise en charge* Pas de prise en charge* 8 Go

32 Mo–64 Mo Pas de prise en charge* Pas de prise en charge* 16 Ko

64 Mo–128 Mo Pas de prise en charge* Pas de prise en charge* 32 Ko

128 Mo–256 Mo Pas de prise en charge* Pas de prise en charge* 64 KB

> 256 To Non pris en charge Non pris en charge Non pris en charge
-Cluster FAT 32
Windows 7, Windows
Taille Server 2008 R2, Windows
du Windows NT 3.51 Windows NT 4.0 Server 2008, Windows Vista,
volume Windows Server 2003, Windows
XP et Windows 2000
Pas de
Pas de prise en
7 Mo–16 Mo prise en Pas de prise en charge
charge
charge
16 Mo–32 Mo 512 octets 512 octets Pas de prise en charge
32 Mo–64 Mo 512 octets 512 octets 512 octets
64 Mo–128 Mo 1 Mo 1 Mo 1 Mo
128 Mo–256 Mo 2 Ko 2 Ko 2 Ko
256 Mo–8 Go 4 KB 4 KB 4 KB
8GB–16GB 8 Go 8 Go 8 Go
16GB–32GB 16 Ko 16 Ko 16 Ko
Pas de
32GB–2TB 32 Ko prise en Pas de prise en charge
charge
Pas de
Pas de prise en
> 2 To prise en Pas de prise en charge
charge
charge
Pour s’adresser au disque, NTFS utilise deux terminologies :
- LCN (Logical Cluster Numbers) : représente le numéro de
cluster depuis le début du volume (c’est à dire de la partition NTFS
en question) jusqu’à la fin (0 est le nombre du secteur de boot).

3.3.4.2 Les Systèmes de fichiers LINUX / UNIX


- Types de FS sous Unix:

Il existe différents types de FS sous Unix, en voici une petite liste


UFS : Unix File System, le système de fichier d’Unix (standard)
BFFS : Berkeley Fast File System, une amélioration (performances
et fonctionnalités) de l’UFS. Ecrite par Kirk McCusick.
-Le Système de fichier de Linux
Le système de fichier EXT2FS (extented N°2 File System).
Il faut noter que ce système de fichier est en perpétuel évolution
(EXT3, EXT4 etc.)
Ce pendant les SE linux reconnaissent les systèmes de fichiers
comme :
UFS : Système de fichier UNIX ;
NTFS : Système de fichier Windows NT.
-Types de fichiers sous Linux

Il existe principalement 4 types de fichiers sous Linux :


 les fichiers ordinaires : fichiers de données, exécutables,
manipulés directement par les utilisateurs.
 Les fichiers répertoires : Ce sont des fichiers conteneurs qui
contiennent des références à d'autres fichiers. ils permettent
d'organiser les fichiers par catégories ;
 Les fichiers spéciaux : périphériques, mémoire, manipulés que
par l’intermédiaire du système.
 fichiers liens symboliques : ce sont des fichiers qui ne
contiennent qu'une référence (un pointeur) à un autre fichier.
Cela permet d'utiliser un même fichier sous plusieurs noms
sans avoir à le dupliquer sur le disque.

-Organisation des fichiers sous linux


Les fichiers (et les dossiers) sous Linux sont organisés selon une
structure arborescente. Le schéma ci-dessous en donne
l’illustration :
-Premier niveau : root ou racine, c’est le répertoire de la partition
système ;
-Deuxième niveau : constitué des répertoires bin, home, dev,
user etc qui sont les répertoires couramment utilisés ;
- Les autres niveaux sont constitués de répertoire auxquels
l’utilisateur n’a pas couramment accès.

Descriptions des répertoires sous linux

/ : Répertoire racine (le répertoire /) contient les sous répertoires


suivants :
/ bin : ce répertoire contient les commandes utilisateur de base ;
/ boot : fichiers statiques du chargeur de lancement ;
/dev : fichiers de périphériques ;
/etc : configuration système spécifique à la machine ;
/home : répertoires personnels des utilisateurs ;
/lib : bibliothèques partagées essentielles et modules du noyau
/mnt : point de montage pour les systèmes de fichiers montés
temporairement ;
/proc : système de fichiers virtuel d'information du noyau et des
processus ;
/root : répertoire personnel du root ( administrateur ) ;
/sbin : contiennent les commandes d’administration du système;
/sys : état des périphériques (model device) et sous-systèmes
(subsystems) ;
/tmp : fichiers temporaires.
3.3.4.3 Fonctionnement du Système de fichier Linux
Sous linux, le système de fichiers se compose de 4 parties :
-Secteur de Boot : Il contient éventuellement un court
programme, le programme de boot, permettant l'amorçage du SE.
-Superbloc : Il contient des informations sur le « file system »
lui-même :
 la taille en blocs du système de fichiers ;
 Le nom logique de la partition ;
 la taille en blocs de la liste des inodes.

NB : Ces informations déterminent le nombre maximum de


fichiers que l'on peut créer et la taille du système de fichiers
-Tables des inodes
Ce bloc contient un ensemble de structures de données
particulières appelées « inode » pour « index node »
-inode : Il contient des informations sur un fichier ou un répertoire
donné sauf son nom, ce sont (informations) entre autres :
 Le type du fichier
« - » pour un fichier ordinaire ;
« d » pour un répertoire ;
« b » : pour un fichier en mode bloc comme les fichiers lecteurs;
« c » : pour les fichiers en mode caractère comme les fichiers
imprimantes ;
 Les droits d'accès aux fichiers ;
 La taille du fichier ;
 Les UID (identifiant du propriétaire) du propriétaire ;
 Les Date / Heure de création ;
 Les Date / Heure de dernier accès etc. Le schéma ci-dessous
-Blocs de données : Ces blocs contiennent soit les données
d'un fichier ou d'un répertoire soit des numéros d'autres blocs.

NB : Sous LINUX, tout est vu comme un fichier même un


répertoire
3.5 Interpréteur de de commandes sous Linux (Terminal)
3.5.1 Accès au système
-Le premier concept important à garder en mémoire avant de
travailler avec Linux est qu'il s'agit d'un système multi-
utilisateurs. L'accès à la machine Linux doit donc être contrôlé.
Pour être enregistré sous Linux, il faut avoir un compte
utilisateur (login, password) créé par l'administrateur système ;

-L’administrateur est un «super utilisateur » qui a les droits de


gestion du système (login root ou su)
3.5.2 Administrer le système
Travailler en tant qu'administrateur :
Root : super-utilisateur possédant tous les droits.
Su : changer d’utilisateur ou devenir root
Exit : interruption du terminal en cours d’exécution

3.5.3 Commandes Linux


Quelques commandes importantes
3.5.3.1 Gestion des fichiers
-Manipuler des fichiers et des répertoires
ls : Affichage la liste fichiers et/ou répertoires d’un répertoire ;
ls –l : Liste de toutes les informations disponibles sur les fichiers ;
et répertoire.
-Déplacements dans une arborescence de répertoires et
listage du contenu
Création et manipulation de répertoires
-
Résumé :
CHAPITRE IV :
GESTION DES
MEMOIRES
4.1 Hiérarchisation des mémoires
-Registres : Les registres sont de petites mémoires rapides de 8,
16, 32 ou 64 bits dans lesquelles le processeur stocke
temporairement les instruction en exécution.
Les principaux registres sont :
le registre accumulateur (ACC) : il stocke les résultats des
opérations arithmétiques et logiques ;
le registre d'état (PSW, Processor Status Word) : il permet de
stocker des indicateurs sur l'état du système (retenue,
dépassement, etc.) ;
le registre instruction (RI) : il contient l'instruction en cours de
traitement ;
le compteur ordinal (CO ou PC pour Program Counter) :contenant
l'adresse de la prochaine instruction à traiter ;
le registre tampon : stockant temporairement une donnée
provenant de la mémoire.

-La mémoire cache :(également appelée antémémoire ou


mémoire tampon) :

elle est une mémoire rapides, mais couteuse se trouvant à


proximité du processeur, permettant de réduire les délais
d'attente des informations stockées en mémoire vive. Le schéma
ci-dessous pourrait illustrer l’image de l’utilisation de la
mémoire cache par le processeur de l’ordinateur
-Disque magnétique : Ce sont les supports de stockage comme
le disque dur de l’ordinateur, les disques durs externes etc.
- Disque optique : Ce sont les support de stockage comme les
CD-ROM, DVD-ROM etc.
- Banque magnétique : Ce sont des support de stockage qui
étaient utilisés au niveau des télévisions et radio
analogiques, de longs rouleau sur lesquels étaient enregistrés
les programmes (émissions)

NB : Dans la hiérarchisation des mémoires, celles situées au


niveau le plus bas sont moins rapides et moins couteuses que
celles situées au niveau le plus élevé
4.2 Gestion des mémoires
4.2.1 Gestion sans recouvrement ni pagination
4.2.1.1 La monoprogrammation
Il n'y a en mémoire centrale que :
- un seul processus utilisateur ;
- le processus système (pour partie en RAM, pour partie en
ROM; la partie en ROM étant appelée BIOS (Basic Input Output
System)
- les pilotes de périphériques
Cette technique en voie de disparition est limitée à quelques
micro-ordinateurs. Elle n'autorise qu'un seul processus actif en
mémoire à un instant donné.
La mémoire est Habituellement subdivisée en deux partitions :
une pour le SE résident et l’autre pour les processus Utilisateurs
Le schéma ci-dessous illustre l’utilisation de la mémoire :
4.2.1.2 La multiprogrammation

-Pour pouvoir utiliser un ordinateur en multiprogrammation, le


SE charge plusieurs processus en mémoire centrale (MC). La
façon la plus simple consiste à affecter à chaque processus un
ensemble d'adresses contiguës ;
-Quand le nombre de tâches devient élevé, pour satisfaire au
principe d'équité et pour minimiser le temps de réponse des
processus. Il est donc nécessaire d’utiliser certaines technique
pour la gestion optimum de la mémoire, les plus utilisées sont :
l’allocation contiguë de la mémoire, la pagination, la
segmentation et la mémoire virtuelle (swapping)
4.2.1.2.1 Allocation contiguë de la mémoire
Selon ce principe :
-la mémoire est subdivisée en partitions de taille fixe ;
-Chaque répartition peut contenir exactement un processus ;
-Quand une partition devient libre, on sélectionne un processus
de la file d’attente des processus prêts et on le charge dans la
partition libre ;
-Quand le processus se termine, la partition devient libre pour
un autre processus
Les algorithmes utilisés dans le cadre de l’allocation contiguë de
la mémoire sont :
• Algorithme First-fit (Le premier trouvé) : On alloue au
processus le premier trou suffisamment grand.

• Algorithme Best-fit (Le meilleur choix) : On alloue au


processus le trou le plus petit suffisamment grand ; c’est à dire
celui qui provoquera la plus petite miette possible. Cet algorithme
nécessite le parcours de toute la liste des espaces libres.

• Algorithme Worst-fit (Le plus mauvais choix) : On alloue au


processus le trou le plus grand. Cet algorithme nécessite le
parcours de toute la liste des espaces libres.
Problème lié aux algorithmes de gestion contiguë de la mémoire

Les algorithmes d’allocation de la mémoire contiguë précédents,


produisent la fragmentation de la mémoire. En effet, suite aux
différentes entrées et sorties de processus, des miettes séparées
se froment dans la mémoire.

Exemple : Si un processus P désire entrer


dans le système en occupant 500K, il ne
pourrait pas bien que l’espace total
disponible est de 700 K.
Exemple : L’état de la mémoire d’un système est décrit par la
figure suivante. On suppose qu’un
processus P demande un espace mémoire de 80K. :
L’application des différents algorithme donnera le résultat suivant :
En fonction de l’algorithme utilisé, on choisirait
le trou T1, T2 ou T3.

Algorithme First-Fit : trou T1.


Algorithme Best-Fit : trou T3.
Algorithme Worst-Fit : trou T2.
La solution au problème de la fragmentation peut être le
compactage. Le principe est de rassembler tous les trous en un
seul bloc.
Inconvénient : L’opération de compactage est une opération très
coûteuse pour le SE.
De plus en plus pour résoudre le problème de la fragmentation
De la mémoire les techniques de pagination et de segmentation

4.2.1.2.2 Pagination

Une autre solution au problème de la fragmentation consiste à


permettre que l’espace d’adressage logique d’un processus ne soit
plus contigu, autorisant ainsi l’allocation de la mémoire physique
à un processus là où elle est disponible.
Principe : Pour qu’un processus soit géré en mémoire centrale, le
processeur génère un certains nombre de page d’adresses
logique. L’adresse logique ainsi générée par le processeur sera
convertie en adresse physique (adresse du processus en
mémoire centrale)
Selon le principe de
Adresse logique = Numéro de page + Déplacement

-L’adresse physique correspondant à une adresse logique d’une


page donnée est donc la combinaison de de l’adresse de de base
se trouvant dans la table de page et du déplacement dans la page
- Adresse physique = Adresse de base + Déplacement
Le schéma de la diapositive suivante illustre le mécanisme de
transformation de l’adresse logique en adresse physique
-Il faut noter que la mémoire physique est également
subdivisée en blocs de la même taille que les pages d’adresse
virtuelles appelée pages.

Table de page :
-Elle contient l’adresse de base de chaque page d’adresse
virtuelle
-Elle est indicée par le numéro de des pages d’adresses virtuelle

-La taille de la table de page est une puissance de 2 variant entre


512 octets et 8192 octets, selon l’architecture de l’ordinateur.
-Le choix d’une puissance de 2 comme taille de page facilite la
traduction d’une adresse logique en un numéro de page et un
déplacement dans la page.

-Si la taille de l’espace adresse logique est de 2m et la taille de la


page est de 2n unités d’adressage (mots ou octets), les m-n
bits de poids forts d’une adresse logique désignent le numéro de
page et les n bits de poids faible désignent le déplacement dans la
page.
Exemple :
si l’espace adresse est de 232, et si la taille d’une page est de 4Ko
(212), alors la table de pages peut posséder jusqu’à 1 million
d’entrées (pages) (232/212 = 232-12 )
m=32 bits pour les adresse
n= 12 bits pour déplacements

4.2.1.2.3 Segmentation
La segmentation consiste à découper l’espace logique en un
ensemble de segments. Chacun des segments est de longueur
variable ; la taille dépend de la nature du segment dans le
programme. Chaque segment possède un numéro et une longueur.
Pour cibler une zone mémoire spécifique, on doit donc désigner
deux paramètres : un numéro de segment et un déplacement. :
-De ce point de vue , la segmentation est différente de la
pagination, puisque dans la pagination, l’utilisateur ne spécifie
qu’une seule adresse qui est décodée par le SE en un numéro de
page et un déplacement

-En segmentation la conversion d’une adresse logique en une


adresse physique est faite grâce à une table de segments. Chaque
entrée de la table de segment possède deux valeurs :

• La base : c’est l’adresse de début du segment en mémoire.


• La limite : spécifie la taille du segment.
Le schémas sur la diapositive suivante illustre la présentation
d’une table de page.
-Une adresse logique est constituée de 2 parties : un numéro
de segment S et un déplacement dans ce segment d.
-On utilise le numéro de segment comme indice dans la
table de segments
-Le déplacement d de l’adresse logique doit se trouver
entre 0 et la limite du segment
-Une adresse logique est constituée de 2 parties : un numéro de
segment S et un déplacement dans ce segment d.
-On utilise le numéro de segment comme indice dans la table
de segments
-Le déplacement d de l’adresse logique doit se trouver entre 0
et la limite du segment
-Si ce n’est pas le cas, il y a un déroutement vers le SE pour
tentative d’adressage hors limite
-Si le déplacement est correct, on l’additionne à la base du
segment pour calculer l’adresse physique de l’emplacement
désiré.
Exemple : Faisons la conversion des adresses logiques suivantes
en adresses physiques :

Les techniques de pagination et de segmentation possèdent le


même objectif : maintenir plusieurs processus en mémoire
simultanément, cependant elles tendent à demander que le
processus se trouve en mémoire dans sa totalité avant de pouvoir
être exécuté. D’où la technique de la mémoire virtuelle
4.2.1.2.4 Mémoire virtuelle (swapping)
La mémoire virtuelle est une technique autorisant l’exécution
de processus pouvant ne pas être complètement en mémoire.
Le principal avantage de ce schéma est que les programmes
peuvent être plus grand que la mémoire physique.

Le concept de mémoire virtuelle a été mis au point après que


l’on a constaté que dans de nombreux cas, on n’a pas besoin
d’un programme dans sa totalité.
Exemples :
• Les programmes possèdent souvent du code pour manipuler
des situations exceptionnelles. Ce
code n’est alors que très rarement exécuté.
-On alloue souvent aux tables et tableaux plus de mémoire que
ce dont ils ont réellement besoin. On peut déclarer un tableau
100x100, alors qu’on n’utilise que 10x10 éléments.

Ainsi la possibilité d’exécuter un programme se trouvant


partiellement en mémoire présenterait plusieurs bénéfices :

• Un programme n’est plus limité par la quantité de mémoire


physique disponible. Les utilisateurs pourront écrire des
programmes pour un espace adresse virtuel extrêmement
grand, simplifiant ainsi la tâche de programmation.
• Comme chaque programme utilisateur pourrait occuper moins
de mémoire physique, il serait possible d’exécuter plus de
programme en même temps.
Cette technique peut être illustrée par le schéma ci-dessous
-Remplacement de pages
Lorsque le SE se rend compte au moment de charger une page
se trouvant sur la mémoire auxiliaire (swap in) en mémoire
centrale qu’il n’existe aucun cadre de page disponible, il peut
faire recours à un remplacement de page. Ainsi le code complet
d’une procédure de traitement d’un défaut de pages est le
suivant :

1.Trouver l’emplacement de la page désirée sur disque.


2. Trouver un cadre de page libre. S’il existe un cadre de pages
libre, l’utiliser, sinon utiliser un
algorithme de remplacement de pages pour sélectionner un
cadre de page victime.
-Remplacement de pages
3.Enregistrer la page victime (swap out) dans le disque et
modifier la table de page.
4. Charger la page désirée dans le cadre de page récemment
libéré et modifier la table de pages.

5. Redémarrer le processus utilisateur.

Algorithmes de remplacement de pages :


-Remplacement de pages
3.Enregistrer la page victime (swap out) dans le disque et
modifier la table de page.
4. Charger la page désirée dans le cadre de page récemment
libéré et modifier la table de pages.

5. Redémarrer le processus utilisateur.

-Algorithmes de remplacement de pages :


Il existe plusieurs algorithmes différents de remplacement de
pages. En général, on souhaite celui qui provoquera le taux de
défauts de pages le plus bas.
Les plus utilisés sont :
Algorithme FIFO :
L’algorithme de remplacement FIFO (First In First Out) est le
plus simple à réaliser. Avec cet algorithme, quand on doit
remplacer une page, c’est la plus ancienne qu’on doit
sélectionner.
Algorithme optimal :

L’algorithme de remplacement optimal fournit le taux de


défauts de pages le plus bas de tous les autres algorithmes. Son
principe est de remplacer la page qui mettra le plus de temps
à être de nouveau utilisée.
Algorithme LRU :

L’algorithme LRU (Least Recently Used) sélectionne pour le


remplacement d’une page victime, la page la moins
récemment utilisée. C’est à dire qu’on doit remplacer une
page, l’algorithme sélectionne la page qui n’a pas été utilisée
pendant la plus grande période de temps.

Vous aimerez peut-être aussi