Vous êtes sur la page 1sur 97

COURS SYSTEMES DEXPLOITATION

Objectifs du cours :
Lobjectif de ce cours est de prsenter les concepts
fondamentaux des systmes dexploitation. Le systme
UNIX permettra dexpliciter les notions tudies.
Plan :
Introduction
Gestion des processus
Communication inter-processus
Ordonnancement des processus
Les interblocages
Les Entres/sorties
Gestion de la mmoire
Gestion des fichiers

Bibliographie :
Tanenbaum
Les systmes dexlpoitation :conception et mise en uvre.
InterEditions 1989
J. Peterson, A. Silbershatz
Operating system concepts.
Series in computer science addison Wesley 1983
M. Griffiths, M. Vayssade
Architecture des systmes dexlpoitation.
Hermes 1990

A. Mouradi

Cours Systmes d Exploitation

page 1

Historique des machines


et des systmes d'exploitation

Les machines tubes (1945 - 1955)


pas de SE (entre manuelle)

Les machines transistor (1955-1965)


Un moniteur pour enchaner les travaux
cartes de contrle

$job
$fortran
programme
$load
$run
donnes
$end

Les machines circuits intgrs (1965 1980)


Multiprogrammation
SPOOL (Simultaneous Peripheral Operation On line)
Temps partag (Time sharing)
Les ordinateurs personnels ( 1980 - 199?)
Circuits LSI & VLSI
A. Mouradi

Cours Systmes d Exploitation

page 2

QUELQUES FONCTIONS ESSENTIELLES D'UN S.E.

Interface

avec l'utilisateur

Gestion des priphriques


Gestion des fichiers

Gestion de la mmoire
Allocation du processeur aux processus

ETAT D'UN PROCESSEUR

L'tat d'un processeur est dfini par le contenu de ses


registres:
registres gnraux manipuls par le programme,
registres spcialiss regroups sous la forme d'une
information synthtique appele MOT D'ETAT ( PSW )
qui contient en particulier le mode courant du processeur
( matre / esclave )

A. Mouradi

Cours Systmes d Exploitation

page 3

PROCESSUS
processus = programme excutable +
ses donnes et sa pile d'excution +
son compteur ordinal +
son pointeur de pile et les autres registres

ETAT D'UN PROCESSUS

ELU
2
1

3
PRET
BLOQUE

1 Le processus se bloque en attente de donnes


2 Le processus est suspendu (provisoirement)
pour permettre l'excution d'un autre processus

3 L'ordonnanceur choisit ce processus


4 Les donnes deviennent disponibles

A. Mouradi

Cours Systmes d Exploitation

page 4

PROCESS CONTROL BLOC

Chaque processus est reprsent dans le SE par


un bloc appel process control bloc. Le PCB est un
enregistrement contenant des informations associs
un processus. Parmi ces informations :

Ltat du processus (bloqu, prt, lu)


Le compteur ordinal (indique ladresse de
la prochaine instruction tre excute par ce
processus
Les registres
Lallocation mmoire

La liste des fichiers ouverts


Les priphriques associs au processus

.
.

A. Mouradi

Cours Systmes d Exploitation

page 5

ORDONNANCEMENT DES PROCESSUS

L'ordonnancement est la base


de la multiprogrammation
La plupart des ressources de l'ordinateur font l'objet
de l'ordonnancement avant leur utilisation

exemple: plusieurs processus sont prts tre excuts.


Lequel il faut choisir et selon quel critre.
Plusieurs critres sont possibles:

utilisation CPU : le processeur est une ressource


chre, donc il faut lutiliser au maximum
temps de rponse : en mode interactif, le temps de
rponse mesure le temps qui scoule entre lmission
dune requte et le dbut de la rponse par le systme
temps d'attente du processus : temps que passe
un processus dans la queue des processus prts
turn around time ( temps de retournement) :
correspond au temps depuis la soumission du travail
jusquau rsultat. Cest la somme des temps pour avoir
la mmoire + temps pass dans la queue des
processus prts + temps des I/O + temps CPU

A. Mouradi

Cours Systmes d Exploitation

page 6

QUELQUES ALGORITHMES D'ORDONNANCEMENT


-Premier Arriv Premier Servi
Cest Un algorithme simple mais il nest pas performant
Le premier processus qui a besoin du CPU est servi
Limplantation de cet algorithme peut se faire laide dune
queue FIFO
Quand un processus entre dans la queue des processus prts,
son CPB (control process bloc) est rattach la fin,
Quand le CPU est libr, on prend le processus situ la tte
Exemple :
JOB

Temps dexcution

20

10

Si on excute les travaux dans lordre 1,2,3 alors :


Le Job 1 sexcute en 20 units
Le Job 2 sexcute en 20+10 = 30 units
Le Job 3 sexcute en 20+10+4 = 34 units
Le temps moyen dexcution est alors (20+30+34)/3 = 28 units

Si on excute les travaux dans lordre 2,3,1


Le temps moyen dexcution est (10+14+34)/3 = 19 units
Si on excute les travaux dans lordre 3,2,1
Le temps moyen dexcution est (4+14+34) = 17 units

A. Mouradi

Cours Systmes d Exploitation

page 7

-Le Plus Court Job d'abord


Lunit centrale est affecte au job le plus court.
Cet algorithme est optimal au sens du temps moyen dattente
(adapt pour les traitements en batch)

La difficult rside dans le fait de connatre, priori, la dure CPU


dun job. (job limit ou estimations se basant sur le comportement
antrieur des processus)
- Ordonnancement avec priorit
On associe une priorit chaque job et la CPU est associe au
job qui a la plus haute priorit. Deux job ayant la mme priorit
sont traits selon FIFO.

Dans le cas du plus cout job dabord, la priorit est linverse du


temps CPU (prdit). Plus le temps CPU est grand, plus la priorit
est basse.
Dautres facteurs peuvent tre utiliss pour calculer la priorit
tels que : la mmoire ncessaire, le nombre de fichiers ouverts,

Un des problmes majeurs des algorithmes dordonnancement


avec priorit est le blocage de certains processus. Les
processus qui ont une faible priorit risquent dattendre
longtemps avant davoir la CPU.
Une solution cette situation est la technique du vieillissement
( AGING ) qui consiste augmenter graduellement la priorit
des jobs qui attendent dans le systme pendant longtemps.
-Ordonnancement Circulaire ( Tourniquet / Round Robin)
Cest un algorithme qui est utilis en particulier pour les travaux
temps partag . On dfinit une unit de temps appele
quantum.
La liste des jobs prts est traite comme une liste circulaire.
LOrdonnanceur parcourt la queue des jobs et alloue la CPU
chaque processus pour une dure qui peut atteindre le
quantum.

A. Mouradi

Cours Systmes d Exploitation

page 8

NOTION D'INTERRUPTION

Signal envoy un processeur pour indiquer qu'un


vnement asynchrone ( qui peut survenir n'importe
quel moment ) s'est produit

La squence courante des instructions est temporairement


suspendue et une squence approprie l'interruption
commence sa place.

plusieurs catgories d'interruption:


dispositifs d E/S
appel au superviseur par un processus
( SVC : SuperVisor Call )
droutement ( violation de protection mmoire, instruction
inconnue, division par zro, ... )
interruption due l'oprateur
synchronisation l'aide de l'horloge

A. Mouradi

Cours Systmes d Exploitation

page 9

INTERACTION ENTRE PROCESSUS


Communication entre processus pour changer
des informations
Accs concurrent des ressources partageables
exemple d'accs concurrent : cas du SPOOL
Une solution au problme d'accs concurrent une
section critique ( partie du programme o il risque
d'avoir conflit d'accs ) EST l'exclusion mutuelle

QUELQUES METHODES POUR REALISER L'E.M.


1 masquage des interruptions

2 variables de verrouillage
3 l'alternance
4 l'algorithme de PETERSON

5 l'instruction TSL ( Test and Set Lock )


6 les primitives SLEEP & WAKEUP

7 les smaphores
8 les moniteurs
9 l'change de messages
A. Mouradi

Cours Systmes d Exploitation

page 10

SPOOL : signifie Simultaneous Peripheral Operation On Line.


Cette fonction inclut un mcanisme de gestion de file d'attente pour
grer l'ensemble des requtes, les fichiers imprimer s'accumulant
successivement sur le disque
Quand un processus veut imprimer un fichier, il place son nom dans
un rpertoire spcial. Un autre processus vrifie priodiquement sil
y a des fichiers imprimer. Si oui, il les imprime et retire leur nom du
rpertoire.

P1 P2 P3
4

INT (7) : variable qui pointe sur le premier emplacement libre

OUT (4) : variable qui pointe sur le fichier imprimer


Soient A et B deux processus. A et B veulent imprimer un fichier
(placer au mme moment un fichier dans la file dimpression.
Le processus A lit IN et mmorise sa valeur 7 dans une variable
locale.

Une interruption horloge arrive et le processeur est retir A


puis donn B
Le processus B lit IN et mmorise sa valeur 7 dans une variable
locale.

B place le nom du fichier imprimer la place indique par IN


et incrmente IN qui vaut alors 8
A reprend la main, l o il tait interrompu et place le nom du
fichier imprimer la place indique par sa variable locale
cest--dire 7 et donc il dtruit le fichier plac par B

A. Mouradi

Cours Systmes d Exploitation

page 11

La solution ce problme est dempcher


laccs par dautres processus un objet
partag si cet objet est entrain dtre utilis
par un processus.
Cest ce quon appelle

EXCLUSION MUTUELLE
La partie du programme o il risque davoir
conflit daccs est appele
SECTION CRITIQUE

A. Mouradi

Cours Systmes d Exploitation

page 12

EXCLUSION MUTUELLE
VARIABLES DE VEROUILLAGE

verrou variable unique partage


verrou initialis 0
si verrou = 0 alors
mettre verrou 1
section critique
remettre verrou 0

sinon ( cas o verrou = 1 ) attendre que verrou passe 0

Supposons que le processus A a lu le verrou et trouve 0


avant de mettre verrou 1, le processus A est interrompu
Le processus B qui a la main trouve verrou 0
B met verrou 1
entre dans la section critique
Puis B est interrompu
Le processus A prend la main
A trouve verrou 0
IL met verrou 1
A rentre en section critique

Donc Nous avons deux processus en section critique

A. Mouradi

Cours Systmes d Exploitation

page 13

EXCLUSION MUTUELLE AVEC UN DRAPEAU


(verrou) pour chaque processus

Processus A

Processus B

Faire toujours

Faire toujours

(1) partie neutre

(1') partie neutre

(2) occup1:=true

(2') occup2:=true

(3) Tant que occup2

attendre

(3') tant que occup1

attendre

section critique

section critique

occup1:=false

occup2:=false

Les deux processus A et B se bloquent mutuellement


en (3) et (3') (deadlock)

A. Mouradi

Cours Systmes d Exploitation

page 14

L'ALTERNANCE

variable tour qui mmorise le tour du processus


qui peut entrer en section critique
Soient deux processus A et B
La variable tour est initialise 0
Processus A

Processus B

while tour <> 0 (attente)


while tour <> 1 (attente)
section critique
section critique
tour = 1
tour = 0
section non critique
section non critique

supposons que le processus A quitte sa section critique


===> tour = 1
le processus B entre et quitte aussi sa section critique
===> tour = 0
le processus A peut alors entrer en section critique
il y entre puis il sort ===> tour = 1
le processus A est dans sa section non critique
le processus B est encore dans sa section non critique
il y reste pendant un moment
Si le processus A veut entrer en section critique
IL NE PEUT PAS car tour = 1
Donc le processus B n'est pas en section critique mais
IL BLOQUE A entrer dans sa section critique !!!
A. Mouradi

Cours Systmes d Exploitation

page 15

L'ALGORITHME DE PETERSON
section non critique
entrer_region
section critique

quitter_region
section non critique

SOLUTION de PETERSON
#define FALSE 0
#define TRUE 1
#define N 2 /* nombre de processus */
int tour /* qui le tour */
int interesse[N] /* tableau initialis FALSE */
entrer_region (process)
int process; /* numro du processus */
{
int autre; /* numro de l'autre processus */
autre = 1-process;
interesse[process]=TRUE;
tour=process;
while (tour==process && interesse[autre]==TRUE) attendre
}
quitter_region (process)
int process;
{
interesse[process]=FALSE;
}
A. Mouradi

Cours Systmes d Exploitation

page 16

L'ALGORITHME DE PETERSON
Cas o les deux processus sont intresss et appellent
enter-region presque simultanment

Process 0
1
2
3
4

autre = 1-process;
Interesse [process] = TRUE;
tour = process;
while (tour==process && interesse[autre]==TRUE) attendre

autre = 1

interesse[1] = true

tour = 0

3 a mis tour = 1 donc ici tour # process alors on rentre en S.C.


Process 1
1
2
3
4

autre = 1-process;
Interesse [process] = TRUE;
tour = process;
while (tour==process && interesse[autre]==TRUE) attendre

autre = 0

interesse[0] = true

tour = 1

Ici tour = 1 et interesse [1] = true donc on attend

quitter_region (process)
int process;
{
interesse[process]=FALSE;
}
Lorsque process 0 termine il fait quitter-region(0) et par consquent,
interesse [0] passe false alors process 1 peut alors entrer en S.C.

A. Mouradi

Cours Systmes d Exploitation

page 17

L'INSTRUCTION TSL (Test and Set Lock)

on fait appel au hardware


instruction TSL:

charge le contenu d'un mot mmoire dans un registre


met une valeur non nulle l'adresse du mot
les oprations de lecture et d'criture du mot sont
INDIVISIBLES
drapeau variable partage
entrer_region:
tsl registre,drapeau <==> registre <= drapeau
drapeau <= 1
cmp registre,0
bne enter_region

ret
quitter_region:

mov drapeau,0
ret

A. Mouradi

Cours Systmes d Exploitation

page 18

Remarques

L'algorithme de Peterson et l'instruction TSL ont


l'inconvnient de l'attente active ( test rpt sur une
variable pour detecter l'apparition d'une valeur).
Cette attente doit tre vite car elle consomme du
temps CPU

Dans certains cas il y a risque de blocage. En effet:


Soient A et B deux processus avec
priorit(A) < priorit(B)
A s'excute et entre dans sa section critique
B passe l'tat prt et il est lu (plus prioritaire)
(remarque: A est toujours dans la section critique)
B veut entrer en section critique et il boucle sur
attente active
A ne peut pas continuer car B mobilise le CPU
Donc blocage de A et B

A. Mouradi

Cours Systmes d Exploitation

page 19

PRIMITIVES SLEEP & WAKEUP

Au lieu de faire une attente active, les processus vont


se bloquer au cas o ils ne peuvent pas entrer en
section critique
SLEEP: appel systme qui suspend le processus
appelant jusqu ce qu'un autre processus vient le
rveiller
WAKEUP(process): appel systme qui rveille le
processus pass en paramtre
Cas du PRODUCTEUR et du CONSOMMATEUR

Soient deux processus P (producteur) et C


(consommateur) qui partagent un buffer
(mmoire tampon)
P met des informations dans le buffer et C les
retire
Si le buffer est plein, P doit dormir (sleep) car il
ne peut plus mettre dinformation. Il attend
jusqu ce que C retire une ou plusieurs
informations et dans ce cas, C doit rveiller P
pour produire.
Si le buffer est vide alors C doit dormir en
attendant que P met des informations et rveille
C

A. Mouradi

Cours Systmes d Exploitation

page 20

PRIMITIVES SLEEP & WAKEUP

Cas du PRODUCTEUR et du CONSOMMATEUR

#define N 100 /* taille du buffer */


int compteur = 0 /* nombre d'objets ds buffer */
producteur()
{while TRUE
{ produire_objet
if (compteur==N) sleep() /* buffer plein */
mettre_objet
compteur=compteur+1
if (compteur==1) /* compteur tait 0 */
wakeup(consommateur) } }

consommateur()
{while TRUE
{ if (compteur==0) sleep()
retirer_objet
compteur=compteur-1
if (compteur==N-1) /* avant compteur=N */
wakeup(producteur)

}}

A. Mouradi

Cours Systmes d Exploitation

page 21

consommateur()

{while TRUE
{ if (compteur==0) sleep()
retirer_objet
compteur=compteur-1
if (compteur==N-1) /* avant compteur=N */
wakeup(producteur)
}}
Supposons un instant donn que le buffer est vide et le
consommateur trouve alors 0 dans compteur
A cet instant, le scheduler dcide de suspendre le consommateur et
de relancer le producteur qui met alors un objet dans le buffer et fait
passer compteur de 0 1.
Daprs le programme du producteur, celui-ci va faire un wakeup du
consommateur.
Ce signal wakeup sera perdu car le consommateur ne dormait pas
encore.

Le producteur continuera remplir buffer et va dormir lorsque


compteur = N
Le consommateur, lorsquil sera relanc trouve compteur = 0, valeur
quil avait avant dtre suspendu. Il va donc dormir

On va alors se retrouver avec le producteur et le


consommateur qui dorment en mme temps.

A. Mouradi

Cours Systmes d Exploitation

page 22

LES SEMAPHORES

Solution propose par Dijkstra pour compter le


nombre d'appels en attente
Un Smaphore S est constitu d'un compteur
valeurs entires qui mmorise le nombre de reveils
en attente et d'une file d'attente
Un smaphore sert bloquer des processus en attendant
qu'une condition soit ralise pour leur rveil.
Les processus bloqus sont placs dans la file d'attente
Dijkstra proposa deux primitives appeles DOWN et UP
DOWN et UP sont des oprations indivisibles

DOWN(S)
Si S > 0 alors S:=S-1
Sinon s'endormir
UP(S)

Si au moins un processus est bloqu par S


alors en librer un
Sinon S:=S+1
Un smaphore ne peut tre manipul que par DOWN et UP

La valeur du compteur et l'tat de la file sont inaccessibles


A. Mouradi

Cours Systmes d Exploitation

page 23

SOLUTION DU PRODUCTEUR-CONSOMMATEUR
AVEC LES SEMAPHORES

#define N 100 /* taille du buffer */


typedef int semaphore /* dfinition de type */
semaphore mutex = 1 /* controle accs S.C. */
semaphore libre = N /* Nbre places libres */
semaphore plein = 0 /* Nbre places occupes */
producteur ()
{
while TRUE
{
produire-objet /* produire un objet */
down(libre) /* decrmenter nbre places libres */
down(mutex) /* entrer en S.C. */
mettre-objet
up(mutex) /* sortir de la S.C. */
up(plein) /* incrmenter nbre places occupes */
}
}

consommateur()
{
while TRUE
{
down(plein) /* decrmenter nbre places occupes */
down(mutex) /* entrer en S.C. */
retirer-objet
up(mutex) /* sortir de la S.C. */
up(libre) /* incrmenter nbre places libres */
}
}
A. Mouradi

Cours Systmes d Exploitation

page 24

LES MONITEURS

Un moniteur est une primitive de synchronisation

Un moniteur = ensemble de variables


+
procdures qui les utilisent
Les variables sont manipules uniquement par les
procdures du moniteur ( non accessibles aux
processus)

Les moniteurs font partie du langage de


programmation
Dans un moniteur, le blocage et le rveil des
processus se fait au moyen de conditions
Une condition est une variable qui ne peut tre
manipule qu' l'aide des oprations:

wait(C): bloquer le processus et le placer en attente


de C
signal(C): rveiller un processus en attente de C
vide(C): fonction boolenne qui est vraie si aucun
processus n'attend C, fausse autrement

A. Mouradi

Cours Systmes d Exploitation

page 25

monitor Producteur-Consommateur
condition plein,vide;
integer compteur;
procedure mettre;
begin
if compteur=N then wait(plein);
mettre-objet;
compteur:=compteur+1;
if compteur=1 then signal(vide);
end;
procedure retirer;
begin
if compteur=0 then wait(vide);
retirer-objet;
compteur:=compteur-1;
if compteur=N-1 then signal(plein)
end;
compteur:=0;
endmonitor;

procedure producteur;
begin
whileTRUE do
begin
produite_objet;
producteur_consommateur.mettre;
end;
end;
procedure consommateur;
begin
while TRUE do
begin
producteur_consommateur.retirer;
utiliser_objet;
end;
end;
A. Mouradi

Cours Systmes d Exploitation

page 26

L'ECHANGE DE MESSAGES

Utilis pour une communication inter-processus


dans un systme plusieurs machines
2 primitives sont utilises:

- send (destination , &message)


- receive (source , &message)
message d'acquittement

A. Mouradi

Cours Systmes d Exploitation

page 27

modle du producteur-consommateur
avec N messages

#define N 100
producteur()
{ int objet;
message m; /* buffer des messages */
while true
{
produire_objet (&objet)
receive(consommateur,&m)
faire_message(&m,objet)
send(consommateur,&m)
}
}

consommateur()
{
int objet,i;
message m;
for (i=0; i<N ; i++)
send(producteur,&m); /*envoyer m messages vides*/
while TRUE
{
receive(producteur,&m); /*attendre un message*/
retirer_objet(&m,&objet); /*retirer l'objet du message*/
utiliser_objet(objet); /* utiliser objet */
send(producteur,&m); /*renvoyer une rponse vide*/
}
A. Mouradi

Cours Systmes d Exploitation

page 28

PROBLEME DES PHILOSOPHES

#define N 5

philosophe(i)
int i;
{
while TRUE
{
penser();
prendre_fourchette(i);
prendre_fourchette((i+1)%N);
manger();
poser_fourchette(i);
poser_fourchette((i+1)%N);
}
}
Risque de blocage si tous les philosophes prennent
une fourchette en mme temps

A. Mouradi

Cours Systmes d Exploitation

page 29

avec exclusion mutuelle

#define N 5
typedef int semaphore /* dfinition de type */
semaphore mutex = 1 /* controle accs S.C. */
philosophe(i)
int i;
{
while TRUE
{
penser();
down(mutex);
prendre_fourchette(i);
prendre_fourchette((i+1)%N);
manger();
poser_fourchette(i);
poser_fourchette((i+1)%N);
up(mutex);
}
}
solution correcte mais non performante

A. Mouradi

Cours Systmes d Exploitation

page 30

SOLUTION AU PROBLEME
DES PHILOSOPHES

#define N 5 /* nbre de philosophes */


#define GAUCHE (i-1)%N /* voisin gauche du philo i*/
#define DROITE (i+1)%N /* voisin droit du philo i*/
#define PENSE 0 /* philo pense */
#define FAIM 1 /* philo veut fourchettes */
#define MANGE 2 /* philo mange */
typedef int semaphore; /* type smaphore (entier) */
int etat[N]; /* etat de chaque philo init PENSE*/
semaphore mutex = 1; /* exclusion mutuelle */
semaphore s[N]; /* un smaphore par philo init 0*/
philosophe(i)
int i;
{
while TRUE
{
penser();
prendre_fourchettes(i);
manger();
poser_fourchettes(i);
}
}

prendre_fourchettes(i)
int i;
{
down(mutex);
etat[i]=FAIM;
test(i);
up(mutex);
down(s[i]);
A. Mouradi

Cours Systmes d Exploitation

page 31

poser_fourchettes(i)
int i;
{
down (mutex);
etat[i]=PENSE;
test(GAUCHE);
test(DROITE);
up (mutex)
}

test(i)

int i;
{
if (etat[i]==FAIM)&&(etat[GAUCHE]!=MANGE)
&&(etat[DROITE!=MANGE)
{ etat[i]=MANGE; up(s[i]); }
}

A. Mouradi

Cours Systmes d Exploitation

page 32

PROBLEME DES LECTEURS ET REDACTEURS

typedef int semaphore;


semaphore mutex=1;
semaphore base=1;
int nbrelire=0;
lecteur()
{
while TRUE
{
down(mutex);
nbrelire=nbrelire+1;
if nbrelire==1) down(base);
up(mutex);
lire_base();
down(mutex);
nbrelire=nbrelire-1;
if (nbrelire==0) up(base);
up(mutex);
utiliser_donnes_lues;
}
}

redacteur()
{
while TRUE
{
creer_donnees();
down(base);
ecrire_donees();
up(base);
}
}
A. Mouradi

Cours Systmes d Exploitation

page 33

EXECUTION DES PROCESSUS


EN PARALLELE OU (pseudo //)

Pour que des objets qui s'excutent en "parallle" et


qui utilisent des objets partags puissent cooprer
correctement ( sans conflit d'accs, ni blocage mutuel,
ni attente indfinie ), il faut avoir les 4 conditions
suivantes:

2 processus ne peuvent pas tre en section critique


en mme temps
aucun processus suspendu en dehors d'une section
critique ne doit bloquer les autres processus entrer
en section critique,

aucun processus ne doit attendre trop longtemps


enter en section critique,
aucune hypothse n'est faite sur les vitesses des
processus ni sur le nombre de processeurs

A. Mouradi

Cours Systmes d Exploitation

page 34

LES INTERBLOCAGES

Les 4 conditions de Coffman qu'il faut runir pour qu'il


puisse y avoir interblocage sont:
(1) exclusion mutuelle: chaque ressource est soit
attribue un seul processus, soit disponible,

(2) la dtention et l'attente: les processus qui


dtiennent
des ressources peuvent en demander d'autres
ressources,
(3) pas de rquisition: les ressources obtenues par un
processus ne peuvent lui tre retires, elles ne sont
disponibles que s'il les libre
(4) l'attente circulaire: il doit y avoir une chane
circulaire
de deux ou plusieurs processus, chacun d'entre eux
attendant une ressource dtenue par le processus
suivant
dans la chane.

A. Mouradi

Cours Systmes d Exploitation

page 35

TRAITEMENT DES INTERBLOCAGES

Pas de politique pour viter ou traiter les


interblocages
Technique de la dtection et de la reprise
Prvenir les interblocages
Eviter les interblocages ( algorithme du banquier )
Algorithme du banquier pour une ressource unique
On appelle tat du systme, concernant l'allocation des
ressources, la liste:
- des clients (processus),
- des montants emprunts (nbre de ressources dj
alloues)
- des crdits maximum auxquels les clients ont droit
( nombre de ressources non encore alloues et dont
les processus auront besoin )
Un tat est dit sr, s'il existe une suite d'tats
permettant
aux clients de disposer de leur crdit maximum.

A. Mouradi

Cours Systmes d Exploitation

page 36

exemple
ETAT 0
processus ress. utilises

ress. max

P1

P2

P3

P4

valeur de crdit maximum est: 6+5+4+7=22


les processus n'auront pas besoin immdiatement de
leurs ressources maximum

Supposons que nous ne disposons que de 10


instances de la ressource
supposons que les processus p1, p2, p3, p4 ont
demand respectivement les quantits de ressources
1, 1, 2, 4

si on satisfait ces demandes on aura l'tat suivant:

A. Mouradi

Cours Systmes d Exploitation

page 37

ETAT 1
processus ress. utilises

ress. max

P1

P2

P3

P4

Les ressources disponibles sont gales :

ressources maximales - ressources utilises


= 10 -(1+1+2+4)=2
l'tat 1 est sr car:
on peut faire attendre tous les processus sauf p3
auquel on alloue les deux units restantes ( p3 peut
disposer de 4 ressources au maximum )
p3 se termine et libre les 4 units dont il dispose,

on peut alors satisfaire p2 ou p4 , et ainsi de suite


supposons qu'on est l'tat 1 et que p2 demande une
quantit de ressources gale 1
si on satisfait cette demande est-ce qu'on reste dans
un tat sr ?
A. Mouradi

Cours Systmes d Exploitation

page 38

ETAT 2

processus ress. utilises

ress. max

P1

P2

P3

P4

les ressources disponibles sont gales


10-(1+2+2+4) = 1
l'tat 2 n'est pas sr car aucun processus
ne peut tre satisfait s'il demande ces ressources
maximales donc il y a interblocage

A. Mouradi

Cours Systmes d Exploitation

page 39

ALGORITHME DU BANQUIER
POUR PLUSIEURS RESSOURCES
ressources attribues

(ETAT A)

P1

P2
P3

0
1

P: Processus
D: Drouleur
T: table
I: imprimante
R: perforateur

0
ressources exist.

P4

P5

0
0

1
0

E=6342
ressources affect.
A= 5 3 2 2

ressources demandes

ressources disp.

P1

P2

P3

P4

P5

A. Mouradi

D=1020
(E-A)

Cours Systmes d Exploitation

page 40

L'ETAT A est sr, en effet:

on peut satisfaire P4 alors D devient D+ 1 1 0 1 = 2 1 2 1


on peut satisfaire P1; D = 2 1 2 1 + 3 0 1 1 = 5 1 3 2
on peut satisfaire P2; D = 5 1 3 2 + 0 1 0 0 = 5 2 3 2
on peut satisfaire P3; D = 5 2 3 2 + 1 1 1 0 = 6 3 4 2
on peut satisfaire P5; D = 6 3 4 2 + 0 0 0 0 = 6 3 4 2

ALGORITHME QUI DETERMINE SI UN ETAT EST SUR

(a) Trouver une range dans la matrice RD (ressources


demandes) plus faible que le vecteur D (s'il n'existe
aucune range alors il y a risque d'interblocage)
(b) supposer que le processus de cette range s'est
termin et ajouter ses ressources D partir de
la matrice des ressources alloues RA
(c) si tous les processus peuvent se terminer
(satisfaire (a) et (b)) alors l tat est sr

sinon l tat n'est pas sr.

A. Mouradi

Cours Systmes d Exploitation

page 41

Supposons que P2 demande une imprimante


On va essayer de satisfaire la demande et voir si
l tat rsultant reste sr

P1

P2

P3

P4

P5

P1

P2

P3

P4

P5

A. Mouradi

RA : ressources
attribues

RD : ressources
demandes

Cours Systmes d Exploitation

page 42

Le vecteur des ressources disponibles devient


D=1010
P4 peut se terminer

D=1010+1101=2111
P1 peut se terminer

D=2111+3011=5122
P2 peut se terminer
D=5122+0110=5232
P3 peut se terminer
D=5232+1110=6342

P5 peut se terminer
D=D+0000=D

L'tat rsultant est un tat sr donc on peut


satisfaire la demande

Supposons que maintenant P5 demande une


imprimante
D devient 1 0 1 0 - 0 0 1 0 = 1 0 0 0
et les matrices RA et RD seront comme suit:
A. Mouradi

Cours Systmes d Exploitation

page 43

RA
P

P1

P2

P3

P4

P5

P1

RD

P2

P3

P4

P5

aucune range de RD ne peut tre satisfaite avec le


vecteur D = 1 0 0 0
Donc il y a risque d'interblocage.
A. Mouradi

Cours Systmes d Exploitation

page 44

LES E/S
Les E/S demandes par les utilisateurs sont effectues
via le systme d'exploitation
L'utilisateur demande une opration d E/S en spcifiant
un nom logique du support et c'est le systme
d'exploitation qui:
- s'assure qu'un processus n'utilise que les ressources
qui lui sont alloues,
- prend en charge les caractristiques des dispositifs
d'E/S (disques, disquettes, bande magntique, ...)
Un processus dsirant faire une E/S fait appel un
module du SE en lui transmettant les paramtres qui
prcisent la nature de l'E/S (lecture,criture), la
quantit d'informations transfrer, ...
Le module appel analyse la requte et signale les
erreurs ventuelles (priphrique inexistant,
priphrique non allou, ...)
Si la requte est correcte alors il :
- lance le transfert en excutant des instructions
appropries (pilote),
- bloque le processus demandeur,

- appelle le scheduler pour slectionner un autre


processus
A. Mouradi

Cours Systmes d Exploitation

page 45

LES PERIPHERIQUES D'E/S

2 catgories de priphriques d E/S


- les priphriques blocs (disque, ..),
- les priphriques caractres (terminal, ...)

Un priphrique bloc mmorise les informations dans


des blocs de taille fixe. Chaque bloc a sa propre
adresse. La taille d'un bloc peut tre 512 ou 1024
octets par exemple pour les disques.
Une des caractristiques de ces priphriques est
qu'ils permettent d'adresser un bloc indpendamment
des autres (lire, crire, rechercher)
Un priphrique caractre accepte un flot de
caractres sans aucune structuration
(exemple : terminal, souris, )

LES CONTROLEURS DE PERIPHERIQUES


Les dispositifs d E/S sont constitus de 2 parties:

une partie mcanique: moteurs, chariots, ...


une partie lectronique: appele contrleur ou
adaptateur
en gnral, un contrleur est une carte de l'ordinateur
relie au priphrique ( un contrleur peut tre
utilis pour plusieurs priphriques de mme type )
A. Mouradi

Cours Systmes d Exploitation

page 46

PILOTE (DRIVER)

Un ordinateur est constitu d'un assemblage de


priphriques.

Pour pouvoir contrler chacun de ses priphriques,


le systme d'exploitation a besoin d'une interface
logicielle entre lui et le matriel, on appelle drivers
(pilotes ou gestionnaires de priphriques en

franais) les programmes permettant au systme


d'exploitation de grer le matriel.
Le rle des drivers est de jouer les intermdiaires
entre le systme et les cartes d'extension ou bien les
priphriques externes

Les drivers sont dvelopps par les fabricants du


matriel auquel ils correspondent.

A la base, n'importe quel priphrique, y compris le

matriel "de base" a besoin de drivers pour


fonctionner.

A. Mouradi

Cours Systmes d Exploitation

page 47

Pour charger le systme d'exploitation vous avez besoin


d'accder au disque dur, or comment faire pour accder au
disque dur si votre systme d'exploitation n'est pas encore
charg?
C'est le BIOS qui au dmarrage de l'ordinateur agit tel un
systme d'exploitation en permettant aux composants
vitaux (carte vido, disque dur, lecteur de disquettes,
clavier) de dmarrer grce des pilotes standards. En effet

le BIOS permet d'amorcer la carte graphique qui a ellemme

des

fonctions graphiques

qui vont

permettre

d'afficher les premires informations. Il en est de mme


pour le disque dur, qui va amorcer le systme grce des
pilotes standard. Une fois le systme d'exploitation amorc,
celui-ci va pouvoir prendre lui-mme le contrle de certains
priphriques grce aux pilotes fournis par le constructeur
du/des

matriels

ou grce

des

pilotes standards

propritaires (dvelopps par le fabricant du systme

d'exploitation).

A. Mouradi

Cours Systmes d Exploitation

page 48

EXEMPLE DCRITURE SUR DISQUE


Pour transfrer des donnes sur un disque, le pilote
de ce disque met des commandes, aux adresses
adquates, dans les registres du contrleur.

Ces commandes sont :

La mise en route ventuellement,

Le positionnement de la tte sur le bon cylindre,


Linstruction dcriture, avec les paramtres
ncessaires, notamment le secteur o crire le bloc.

Le pilote transmet ensuite les donnes crire dans

le tampon du contrleur puis il se bloque en


attendant la fin de lcriture effective.

A. Mouradi

Cours Systmes d Exploitation

page 49

CPU

Mmoire

Contrleur
disque

BUS

Contrleur
imprimante

Liaison
srie

Contrleur
terminal

DMA (Direct Memory Access)


C'est un type particulier d'interface qui est capable de
transfrer des donnes directement de la mmoire
un priphrique ( ou dans l'autre sens ) sans que ces
donnes ne transitent par l'unit centrale

ENTRELACEMENT ( interleaving )

A. Mouradi

Cours Systmes d Exploitation

page 50

LACCS DIRECT LA MMOIRE


Pour les priphriques blocs, le transfert des
donnes entre la mmoire et le contrleur nest
pas, en gnral, ralis par le processeur mais par
un circuit spcialis daccs la mmoire (DMA)

Ce circuit est attach au priphrique. Il permet


dcrire les donnes de la mmoire centrale vers

les tampons du contrleur et inversement.

Il permet ainsi de librer le processeur pour


dautres tches.
Avant de le lancer, le processeur lui communique

le sens du transfert, ladresse dorigine de la


mmoire o on dsire lire ou crire les donnes
ainsi que le nombre doctets transfrer.

A. Mouradi

Cours Systmes d Exploitation

page 51

LE LOGICIEL DES E/S

Le logiciel d E/S doit offrir une interface utilisateur


assez simple et facile utiliser
L'utilisateur n'a pas se soucier de la structure
physique des priphriques ( nombre de secteurs/
piste pour un disque, ...)
L'utilisateur lance une opration d'E/S et c'est le
SE qui se charge des particularits du matriel
cat fich

sort le rsultat sur cran

cat fich > resultat

sort le rsultat dans


fichier rsultat

La gestion des erreurs doit tre traite si c'est


possible par les couches infrieures (contrleur,
pilote)
Un logiciel d E/S peut tre structur en plusieurs
couches:
le logiciel E/S accessible l'utilisateur

le logiciel d E/S qui fait partie du SE


le traitement des interruptions
A. Mouradi

Cours Systmes d Exploitation

page 52

1) logiciel d E/S accessible l'utilisateur

un utilisateur peut demander une lecture partir


d'un fichier situ sur disque
read(descripteur_fich,tampon,nbre)
read est une une procdure du systme

descripteur_fich correspond un fichier ouvert


( l'aide de la fonction open )
tampon correspond une zone mmoire contigu de
cases ( on peut lire jusqu' nbre cases )
open ouvre un fichier en entre ou en sortie
open (nom,mode)
char *nom;
mode = 0: lecture; 1: criture; 2: lecture/criture
descripteur_fich = open(nom,2)
open et read sont des procdures qui se trouvent dans
la bibliothque standard des E/S et qui sont lies
avec les programmes utilisateurs
2) logiciel d E/S qui fait partie du SE
nous pouvons distinguer 2 parties dans ce logiciel
partie commune tous les priphriques,

partie spcifique chaque priphrique


A. Mouradi

Cours Systmes d Exploitation

page 53

La premire partie concerne:

- la dsignation des objets tels que les fichiers en crant


un lien entre les noms symboliques des priphriques
et les priphriques eux mmes,
- la protection des priphriques,

- la taille des blocs logiques (la taille des secteurs peut


varier d'un disque un autre. Ces particularits sont
reportes au niveau du driver)
- l'utilisation des tampons. L'change avec le matriel se
fait l'aide de blocs entiers, l'utilisateur peut ne lire ou
crire qu'une partie du bloc)
- l'allocation d'espace pour les nouveaux fichiers.
(le systme maintient une liste de blocs libres pour
chaque disque)
- l'allocation et la libration de priphriques ddis

La deuxime partie est spcifique


chaque priphrique
Le programme qui commande le fonctionnement
lmentaire d'un priphrique est appel pilote (driver)
IL adresse directement le contrleur du priphrique
en envoyant des commandes comprises par ce dernier
C'est au niveau du pilote que sont traits, le dplacement
du bras, les pistes, les secteurs, ... pour un disque
donn.

A. Mouradi

Cours Systmes d Exploitation

page 54

3) Traitement des interruptions


Le pilote envoie une commande au contrleur et se
bloque en attendant la fin de l'opration. Ds que
l'opration est termine, le priphrique envoie une
interruption qui rveille le pilote.
Etude de quelques priphriques d E/S

1) les disques
Les disques durs constituent un des lments importants
dans un ordinateur. Un disque est souvent utilis comme
source et destination des traitements.

Un disque est caractris physiquement par sa forme


circulaire plate. Ses deux surfaces sont couvertes avec
une couche magntique. les informations sont
mmorises sur les surfaces.
Un disque est entran par un moteur qui tourne une
vitesse rapide (environ 7200 tours/minute). IL y a une
tte de lecture/criture situe juste au dessus de la
surface magntise.
La surface du disque est divise logiquement en
pistes (tracks). Les informations sont lues/crites
partir des pistes.
On peut distinguer deux types de ttes de lecture/criture
les ttes fixes et les ttes mobiles.
Un disque ttes fixes possde une tte de lecture/
criture par piste. Ce qui permet d'aller d'une piste
une autre rapidement (pas de dplacement du bras)
Ce type de disque est cher car il ncessite une tte
par piste

Un autre type de disque possde une tte de lecture/


criture par surface, le bras est mobile et se dplace
pour accder une piste.
A. Mouradi

Cours Systmes d Exploitation

page 55

Pilotes de disques
Lorsqu'on veut lire un bloc d'un disque, il faut:
- positionner le bras sur la piste (temps de recherche)
- positionner le secteur sous la tte (dlai de rotation)
- lire le bloc (temps de transfert)
Nous voulons rduire le temps de lecture ou d'criture
donc il faut rduire le temps de recherche.

Ordonnancement du bras du disque


une stratgie simple est FCFS (First Come First Served)
algorithme facile programmer mais ne donne pas les
meilleurs rsultats
exemple : soit la queue des demandes d'accs aux pistes
98 183 37 122 14 124 65 67
Supposons que la tte est positionne sur la piste 53
(valeur de dpart), elle doit faire les trajets:

53
98

>>
>>

98
183

= 045
= 085

183

>>

37

= 146

37

>>

122

= 085

122

>>

14

= 108

14
124

>>
>>

124
65

= 110
= 059

65

>>

67

= 002
640

A. Mouradi

Cours Systmes d Exploitation

page 56

Donc la tte s'est dplace 640 pistes avec un cas


14
124
flagrant 122
Une autre stratgie SSTF
Shortest Seek Time First

Servir les demandes proches de la position de la


tte d'abord. Donc partir de la position actuelle on `
cherche la distance minimum.
53 65 67 37 14 98 122 124 183

cela implique un mouvement de la tte de 236 pistes


Cet algorithme est meilleur que FCFS mais il n'est
pas optimal, (voir algorithme SCAN)
De plus, il ressemble Short Job First dans le cas des
processus et peut laisser certaines demandes non
servies pour une longue priode.

Algorithme SCAN
53
37

>>
>>

37
14

= 016
= 023

14

>>

65

= 051

65

>>

67

= 002

67

>>

98

= 031

98
122

>>
>>

122
124

= 024
= 002

124

>>

183

= 059
208

A. Mouradi

Cours Systmes d Exploitation

page 57

L'algorithme SCAN ( l'ascenseur)


la tte de lecture commence un bout du disque et se
dplace vers l'autre bout en servant les demandes de
chaque piste. Une fois arrive l'autre bout il y a
changement de direction.

Une autre alternative du SCAN est le C-SCAN


(Scan circulaire) qui une fois arrive l'autre bout,
la tte se positionne sur la piste 0 de dpart
Remarque:
Les demandes d'accs au disque peuvent tre
influences normment par la mthode utilise pour
allouer de l'espace disque pour les fichiers.
Si l'espace allou est contigu alors les demandes
d'accs au disque sont porches (secteurs proches)
Si l'espace allou est dispers (chanage) alors
il y a beaucoup de mouvements de la tte de
lecture / criture.

A. Mouradi

Cours Systmes d Exploitation

page 58

GESTION DE LA MMOIRE

La taille de la mmoire peut acclrer d'une manire


significative le temps d'excution des programmes
Dans le pass, le prix de la mmoire cotait cher.
La taille tait petite ( 32k, 64 k octets, ... )
Avance technologique, donc le prix de la mmoire
a baiss et les machines sont dotes de mmoire
assez grande ( des mga octets).
Mais les besoins ont aussi volu et les applications
utilisent les interfaces graphiques , ce qui consomme
beaucoup de mmoire.
La partie du S.E. qui s'occupe de la gestion de la
mmoire s'appelle LE GESTIONNAIRE DE LA MEMOIRE

Mthodes de gestion de la mmoire


2 manires de grer la mmoire:
sans swapping (sans utiliser le disque)
avec swapping ( va et vient; pagination )
(dplacement des processus entre la mmoire
et le disque)

A. Mouradi

Cours Systmes d Exploitation

page 59

Gestion de la mmoire sans swapping

CAS DE LA MONOPROGRAMMATION
Dans ce cas, nous avons en mmoire le SE et un
processus utilisateur. Sur les PC, les pilotes des
priphriques sont dans une ROM appele BIOS
(Basic Input Output System)

BIOS

Processus
utilisateur
S.E.

CAS DE LA MULTIPROGRAMMATION
La multiprogrammation amliore les performances d'un
systme informatique et permet plusieurs utilisateurs
de travailler en interactif.
Dans ce cas, il est ncessaire d'avoir plusieurs
processus en mmoire
Supposons que nous disposons d'une mmoire de 1
Moctets (le SE occupe 200K et chaque processus
occupe 200k)
On peut loger alors 4 processus en mmoire
A. Mouradi

Cours Systmes d Exploitation

page 60

Si n processus se trouvent en mme temps en mmoire,


la probabilit pour qu'ils soient tous en attente d'une
E/S est p la puissance n (p tant la fraction de temps
qu'un processus passe en attente de la fin d'une
E/S 0,5 ; 0,8; ... par exemple)
Supposons qu'un processus passe 80% de son
temps attendre la fin d'une E/S
n
L'utilisation du processeur est alors 1 - p
Nmbre
processus

100 _

1
2
3
4
5
6
7
8
9
10
11
12
13
14

80 _
60 _
40 _
20 _

utilisation
pourcentage
CPU
0,20
20,00
0,36
36,00
0,49
48,80
0,59
59,04
0,67
67,23
0,74
73,79
0,79
79,03
0,83
83,22
0,87
86,58
0,89
89,26
0,91
91,41
0,93
93,13
0,95
94,50
0,96
95,60

D'aprs le schma, le temps d'utilisation du processeur


est d'environ 60%
Si on ajoute 1 Mga octets de mmoire, on peut loger
encore 5 processus.
Le taux d'utilisation du CPU passe 87%
(soit une amlioration de 45%)
A. Mouradi

Cours Systmes d Exploitation

page 61

Si on ajoute un autre Mga octets de mmoire


supplmentaire, on arrive un taux d'utilisation du
CPU de 96 % (soit une amlioration de 10 %)

Remarque: Ce schma est bas sur le fait que les


processus passent 80 % de leur temps attendre
la fin d'une E/S. Un taux infrieur 80 % amliore
le pourcentage d'utilisation du CPU.

MULTIPROGRAMMATION AVEC PARTITIONS FIXES


( Cas des systmes Batch)
Une manire simple d'organiser la mmoire en vue
de la multiprogrammation est de la diviser en
N partitions (les tailles des partitions peuvent tre
diffrentes). Le positionnement peut tre fait au moment
du dmarrage du systme par l'oprateur.
Une premire manire de grer les partitions est
d'avoir une file d'attente par partition

1100
Part 4 (400k)

700
Part 3 (300k)
400
Part 2 (200k)
Part 1 (100k)
S.E.
A. Mouradi

Cours Systmes d Exploitation

200
100
0
page 62

Chaque nouveau processus est plac dans la file


d'attente de la plus petite partition qui peut le contenir.
Cette mthode peut aboutir un gaspillage de la
mmoire si les processus ncessitent une taille assez
petite par exemple.
Une autre manire de faire est de n'utiliser qu'une seule
file d'attente. Ds qu'une partition se libre (fin d'un
processus) on y place le premier processus de la
file qui peut loger dans cette partition.
Ou bien on cherche le plus grand processus qui peut
loger dans la partition.
Chaque faon de faire a ses avantages et ses
inconvnients.

1100
Part 4 (400k)
700
Part 3 (300k)
400

Part 2 (200k)
Part 1 (100k)
S.E.

A. Mouradi

Cours Systmes d Exploitation

200
100
0

page 63

Protection et Translation de Code

Nous avons besoin de protger le S.E. (code et


donnes) des changements (accidentel ou intentionn)
que peut produire un utilisateur.

Nous avons besoin de protger les autres programmes


utilisateurs (dans le cas de la multiprogrammation)
Une premire solution au problme de protection est
d'avoir une "borne de sparation" appele "fence" qui
contient la premire adresse qui peut tre utilise par
un programme utilisateur.
Chaque adresse gnre par un programme utilisateur
est compare au fence.
Base

adresse
CPU

adresse
>
fence

oui
MEM

non

erreur d'adresse

A. Mouradi

Cours Systmes d Exploitation

page 64

Rallocation

La premire adresse d'un programme utilisateur doit


tre situe aprs le fence.
L'affectation des adresses mmoires pour les donnes
et les instructions d'un programme peut se faire au
moment de la compilation ou au moment du chargement
Si l'adresse du fence est connue au moment de la
compilation alors on peut gnrer du code absolu.
Cependant, si l'adresse du fence change, alors il
faut recompiler le programme.

Une autre manire de faire est que le compilateur


gnre des adresses relatives (code translatable)
et de laisser l'affectation des adresses mmoires
au niveau du chargement. Dans ce cas si le fence
change, il suffi t de recharger le programme.
Dans ce qui prcde, nous avons suppos que le
fence est statique au moment de l'excution du
programme.
IL existe des cas o la taille du S.E. peut changer
au moment de l'excution d'un programme
(librer des buffers, charger de nouveaux drivers, ...)
et donc il faut pouvoir changer le fence d'une manire
dynamique.

A. Mouradi

Cours Systmes d Exploitation

page 65

On peut alors envisager deux solutions:


- charger le programme utilisateur dans la mmoire
haute,
E : est un espace qui peut
augmenter ou diminuer en
changeant le fence.

Programme

E
fence
S.E.

- tarder le lien des adresses au niveau de l'excution.

1000

adresse
logique
CPU

A. Mouradi

registre de base

adresse
physique
+

Cours Systmes d Exploitation

MEM

page 66

Gestion de la mmoire avec swapping


La mthode des partitions fixes est valable pour les
systmes batch.
Les systmes temps partag (plusieurs utilisateurs
travaillant en interactif) doivent tre organiss d'une
autre manire car la mmoire ne peut pas contenir
tous les processus des utilisateurs.
ALORS, quelques processus sont placs sur disque
puis ramens en mmoire avant leur excution.
Ce mouvement mmoire-disque-mmoire est
appel SWAPING.
UTILISATION DES PARTITIONS VARIABLES
Dans la mthode des partitions fixes, les processus
logent dans des partitions souvent plus grandes que
la taille ncessaire aux processus, d'o une perte
d'espace mmoire.
Dans les systmes interactifs, on souhaite placer le
maximum de processus en mmoire, alors on utilise
des partitions de taille variable.
Avec cette technique, le nombre, les tailles et les
positions des partitions changent dynamiquement
en fonction des processus. Cela amliore l'utilisation
de la mmoire mais il complique les algorithmes
d'allocation et de restitution de la mmoire.

A. Mouradi

Cours Systmes d Exploitation

page 67

FRAGMENTATION ET COMPACTAGE DE LA MEMOIRE

Dans les systmes partition fixe, il y a deux types


de fragmentation:
une fragmentation interne qui rsulte de l'espace non
utilis dans une partition de taille N alors que le
processus qui y loge et de taille M avec M<N,
une fragmentation externe qui rsulte du fait d'avoir
des partitions disponibles et non utilises parce
qu'elles ne peuvent contenir aucun processus en
attente.
Dans les systmes partitions variables on peut
effectuer compactage de la mmoire en dplaant
tous les processus vers le bas de la mmoire, on cre
alors une partition libre de grande taille. (Ce travail
ncessite du temps processeur)
ALLOCATION DE LA MEMOIRE AUX PROCESSUS
Si un processus a une taille fixe alors on lui alloue la
taille ncessaire. Mais certains processus peuvent
changer de taille en demandant l'allocation dynamique
dans le tas. 2 cas peuvent se prsenter:

il existe un espace libre adjacent au processus qui


peut rpondre la demande d'allocation, alors on
alloue au processus cet espace supplmentaire,
le processus est entour par 2 autres processus, alors
soit en le dplace dans une partition plus grande, soit
on dplace un ou plusieurs processus sur le disque
pour pouvoir crer un espace suffisant.
A. Mouradi

Cours Systmes d Exploitation

page 68

GESTION DE LA MEMOIRE
Nous allons tudier quelques mthodes pour la
gestion de l'occupation mmoire:
les tables de bits,
les listes chanes,
les subdivisions.
GESTION DE LA MEMOIRE PAR TABLE DE BITS
La mmoire est divise en units d'allocation.
A chaque unit on associe un bit dans la tables des bits.
Ce bit est 0 si l'unit d'allocation est libre, 1 si
elle est occupe.

Exemple : Mmoire de 32 Koctets avec une unit


d'allocation de 1 Koctets

A : 5 Ko
3 Ko inutliss
B : 6 Ko
C : 4 Ko
2 Ko inutiliss
D : 6 Ko
E : 3 Ko
3 Ko inutiliss

11111000

11111111
11001111

11111000
Table des Bits

A. Mouradi

Cours Systmes d Exploitation

page 69

Si l'unit d'allocation est petite alors la table des bits


est grande.
Si l'unit d'allocation est grande, la tables des bits est
petite mais on perd de la place non utilise de la
dernire unit d'allocation de chaque processus
(la taille d'un processus n'est pas en gnral, un
multiple de l'unit d'allocation).
Pour allouer de l'espace mmoire pour un processus
demandant K units, il faut parcourir la table des bits
en cherchant K zros conscutifs. Cette recherche
pnalise l'utilisation de la table des bits parce qu'elle
consomme du temps.
GESTION DE LA MEMOIRE PAR LISTE CHAINEE

Une autre mthode pour la gestion de la mmoire est


l'utilisation des listes chanes. Pour l'exemple
prcdent, on aura:
P 0 5

A. Mouradi

20 6

14 4

26 3

Cours Systmes d Exploitation

18 2

29 3

page 70

Structure d'un lment de la liste:


- une valeur indiquant que le segment est un processus
ou il est libre,
- l'adresse de dpart du segment,
- la taille du segment,
- un pointeur sur le segment suivant.

Remarque: cette liste est trie selon les adresses des


segments.
La gestion de la mmoire est simplifie si on utilise des
listes doublement chanes. Dans l'exemple prcdent,
si le processus occupant la zone mmoire qui
commence
l'adresse 8 et de taille 6 se termine, avec le double
chanage, on accde facilement au segment prcdent
qui est libre, et on les fusionne.

P 0 5

Voici quelques algorithmes pour l'allocation de la


mmoire utilisant les listes chanes:

Algorithme 1: Premire zone libre (First Fit)


On parcourt la liste en cherchant le premier bloc
libre qui peut contenir le processus.
Si la taille de ce bloc est strictement gale au processus
alors on lui affecte ce bloc,
Si la taille du bloc est suprieure au processus alors
on divise le bloc en deux parties.
A. Mouradi

Cours Systmes d Exploitation

page 71

La premire partie va tre utilise par le processus et


la deuxime partie est un segment libre.
On peut amliorer lgrement cet algorithme en
mmorisant l'adresse du premier segment libre trouv,
ainsi la prochaine recherche commence cette adresse
et non au dbut de la liste. cet algorithme est appel
zone libre suivante (next fit).

Algorithme 2: meilleur ajustement (Best Fit)

On cherche le plus petit segment de la liste qui peut


contenir le processus. (cela vite de fractionner les
grands segments).
cet algorithme est plus lent que le premier car il faut
parcourir toute la liste. IL conduit aussi une
fragmentation de la mmoire car on aura plusieurs
petits segments libres qui ne peuvent tre utiliss.
Algorithme 3: Plus grand rsidu (Worst Fit)
Dans ce cas on cherche le plus grand segment libre.
Ainsi, la deuxime partie non utilise sera grande et
peut contenir d'autres processus.
(la simulation a montr que les rsultats ne sont pas
bons)

A. Mouradi

Cours Systmes d Exploitation

page 72

GESTION DE LA MEMOIRE PAR SUBDIVISIONS


L'utilisation des listes chanes pour la gestion de la
mmoire amliore l'allocation mais reste lente quand
la libration car il faut examiner les voisins du segment
libr pour voir si on peut former un segment plus
grand.
Une autre mthode utilise est appele gestion par
subdivision (Buddy system). Elle est base sur le fait
que les ordinateurs utilisent des adresses binaires.
Les tailles des zones mmoires sont des puissances de2
Pour une mmoire de 1 Moctets on aura 21 listes:
L1M
L512K
L256K
L128K
L64K
L32K
L16K
L8K
L4K
L2K
L1K

L512O
L256O
L128O
L64O
L32O
L16O
L8O
L4O
L2O
L1O

Au dbut on a une liste libre de 1 Mga Octets. Les


autres listes sont vides.
Supposons que nous avons un processus de 70 KO
placer en mmoire. Les tailles sont des puissance de 2
donc le plus petit segment qui peut contenir le
processus est de 128 KO
A. Mouradi

Cours Systmes d Exploitation

page 73

LA MEMOIRE VIRTUELLE

Dans ce que nous avons vu jusqu' maintenant, le


programme d'un utilisateur pouvait loger en entier
en mmoire centrale.
Que se passe-t-il si le programme est plus grand que
la taille mmoire disponible ?
Une solution consiste diviser le programme en
segments de recouvrement (overlays)

E
F

C
Les segments de recouvrement sont stocks sur
disque et il y a un swapping entre le disque et la M.C.
effectu par le systme d'exploitation.
Mais c'est le programmeur qui doit dfinir les
diffrents segments de recouvrement et comment ils
sont disposs ( leur indpendance )
C'est une tche qui n'est pas vidente lorsqu'on a des
programmes assez volumineux.

Une autre mthode est base sur la notion de


MEMOIRE VIRTUELLE
A. Mouradi

Cours Systmes d Exploitation

page 74

Une mmoire virtuelle est l'ensemble des emplacements


dsigns par les adresses engendres par le CPU

Mmoire
virtuelle

Objet
dsignation

Mmoire
physique
allocation
de mmoire

Nous allons voir deux techniques permettant


d'implanter la mmoire virtuelle dans une mmoire
physique de taille limite:
la PAGINATION,
la SEGMENTATION

LA PAGINATION
Les programmes manipulent des adresses virtuelles.
Pour les ordinateurs qui disposent d'une MMU
(Memory Management Unit), cette unit se charge de
traduire les adresses virtuelles en adresses physiques.
L'espace d'adressage virtuel est divis en units
appeles pages. La mmoire physique est divise en
units de mme taille appeles frames. Le transfert
entre la mmoire physique et le disque se fait par
pages entires ( 512 o, 1k, ...,4K)

A. Mouradi

Cours Systmes d Exploitation

page 75

A. Mouradi

0-4

4-8

8-12

12-16

0-4

16-20

4-8

20-24

3X

8-12

24-28

12-16

28-32

X3

16-20

32-36

20-24

36-40

24-28

10

40-44

28-32

11

44-48

12

48-52

13

52-56

14

56-60

15

60-64

Cours Systmes d Exploitation

page 76

LA SEGMENTATION

Dans le cas de la pagination la mmoire virtuelle est


linaire. Une autre manire de considrer la mmoire
virtuelle est la segmentation.

Une mmoire virtuelle segmente est constitue


d'un ensemble de segments. Un segment occupe une
suite d'emplacements conscutifs et peut avoir une
taille variable.
Une adresse virtuelle est un couple appel adresse
segmente :
(Numro de segment , Dplacement dans le segment)
Exemple: Machines Motorola 68000

on a la possibilit d'avoir :
- 16 processus,
- chaque processus a 1024 pages (de 4k)
donc chaque processus peut avoir 4 MgaOctets.

La technique de segmentation utilise par le MMU est:


- une table de segments comportant une section
par processus,
- chaque section a 64 descripteurs de segment,

- chaque descripteur pointe sur une table de pages


Donc chaque processus peut avoir 64 segments de
16 pages.
A. Mouradi

Cours Systmes d Exploitation

page 77

Pour lancer un processus, le S.E. charge le numro du


processus dans un registre spcial.

Table des Segments

proc
n 0
64
descp

Descripteur de segment

long

ptr sur
protection table
pages

Table des pages

16
pages
max

proc
n 15

MMU D'UNE MACHINE MOTOROLA 68000

A. Mouradi

Cours Systmes d Exploitation

page 78

registre spcial

N de
processus

6 bits 4 bits
N de N de
Seg
page

12 bits
dplacement
dans page

10 bits
index dans la table des seg

ADRESSE VIRTUELLE D'UN SYSTEME DE 4 MO


(22 bits d'adresse virtuelle)
Lorsque le processus rfrence une adresse virtuelle
elle est traduite par le MMU comme suit:

IL construit un nombre constitu des 4 bits du registre


contenant le numro du processus et des 6 bits
contenant le numro du segment rfrenc de l'adresse
virtuelle ce qui donne un descripteur de segment
Il vrifie l'accs demand avec la protection du
descripteur
Si l'accs est autoris, le MMU compare le numro de
page donn dans l'adresse virtuelle avec la longueur
du segment contenue dans le descripteur
Si le segment est suffisamment long alors le numro de
page est utilis comme index dans la table des pages
et on obtient la frame, enfin le dplacement dans la page
fournie dans l'adresse virtuelle permet d'avoir l'adresse
physique (qui est alors place sur le BUS)
A. Mouradi

Cours Systmes d Exploitation

page 79

LES ALGORITHMES DE REMPLACEMENT DE PAGES

Lorsqu'il y a dfaut de page (page virtuelle non mappe


en mmoire physique, le MMU gnre un droutement
Le S.E. prend la main et doit retirer une frame et la
remplacer par la page manquante.
Si la frame a t modifie, le S.E. doit l'crire sur disque
avant de la remplacer pour sauvegarder les
modifications.
Plusieurs algorithmes sont possibles
ALGORITHME 1 : FIFO

C'est un algorithme simple, il associe chaque page


le moment o elle a t amene en mmoire. Lorsqu'il
y a dfaut de page on sort la plus ancienne
.
On peut utiliser aussi une liste chane.
exemple:

7 0 1
7 0 1
7 0
7
ddd

2 0 3 0 4 2
2 3 0 42
1 2 3 04
0 1 2 30
d d d dd

3
3
2
4
d

0 3 2 1 2 0 1 7 0 1
0
1 2
7 0 1
3
0 1
2 7 0
2
3 0
1 2 7
d
dd
ddd

Dans ce cas nous avons 15 dfauts de pages

A. Mouradi

Cours Systmes d Exploitation

page 80

Anomalie de Belady

avec 3 frames
0 1 2
0 1 2
0 1
0
ddd

3
3
2
1
d

0
0
3
2
d

1
1
0
3
d

4 0 1 2 3 4
4
2 3
1
4 2
0
1 4
d
dd

avec 3 frames nous avons 9 dfauts de page


0 1 2
0 1 2
0 1
0

3 0 1 4 0 1 2 3
3
4 0 1 2 3
2
3 4 0 1 2
1
2 3 4 0 1
0
1 2 3 4 0
dddd
ddddd

4
4
3
2
1
d

avec 4 frames nous avons 10 dfauts de page. Ce


rsultat est inattendu, on pense qu'avec un nombre de
frames plus grand on aura moins de dfauts de page

A. Mouradi

Cours Systmes d Exploitation

page 81

ALGORITHME 2: remplacement optimal


On cherche un algorithme optimal de remplacement
de page. Cet algorithme doit donner le taux minimum
de remplacement de page.
E n principe, cet algorithme doit remplacer la page qui
ne va pas tre utilise durant la priode la plus longue.

7 0 1
7 0 1
7 0
7
ddd

2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
1 3 3
3
1
1
0 0 4
0
0
0
2 2 2
2
2
7
d d d
d
d
d

l'algorithme optimal produit 9 dfauts de page.


Si on soustrait les 3 dfauts de page initiales qui sont
obligatoires, nous avons 12 dfauts de page pour
FIFO et 6 pour l'algorithme optimal.

Malheureusement, l'algorithme optimal est difficile


implanter car il ncessite une connaissance priori
des prochaines rfrences.
ALGORITHME 3 : page la moins rcemment utilise
LRU : Least Recently Used
LRU remplace la page qui n'a pas t utilise pour la
priode la plus longue. (IL est comme optimal mais
en regardant dans le pass)

A. Mouradi

Cours Systmes d Exploitation

page 82

7 0 1
7 0 1
7 0
7
ddd

2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
1 3 3 2 2 2
2 7
2
0 0 0 0 33
0 0
3
2 2 4 4 40
1 1
1
d d d d dd
d d d

Le LRU donne 12 dfauts de page, valeur intermdiaire


entre l'algorithme optimal et le FIFO. Il est considr
comme un bon algorithme mais il faut trouver un moyen
pour l'implmenter.

IL faut trouver un ordre pour les frames dfini par le


temps de la dernire utilisation.
On peut par exemple utiliser une liste chane de toutes
les pages en mmoire, la page la plus rcemment
utilise est en tte de liste, la moins rcemment
utilise est en queue. Donc, lorsqu'une page est
rfrence, il faut l'amener en tte de liste. Ce qui est
coteux et ne peut tre ralis en logiciel pour
chaque rfrence de la mmoire.
Une solution est d'avoir un matriel spcialis pour
raliser LRU. Par exemple un compteur qui est
automatiquement incrment chaque instruction.
Chaque entre de la table des pages a un champ pour
contenir ce compteur. Quand une page est rfrence,
la valeur du compteur est mmorise dans le champ de
la table des pages associ. Lorsqu'il y a dfaut de
page, on remplace la page dont le compteur est le
plus petit.

A. Mouradi

Cours Systmes d Exploitation

page 83

Pour les systmes ne disposant pas de moyens


matriels pour le LRU, on peut utiliser une
approximation du LRU l'aide d'un bit de rfrence
Pour chaque page donne, le bit de rfrence est
positionn chaque fois que la page est rfrence.
Au dpart, tous les bits sont 0. Au bout d'un certain
temps, on connat les pages rfrences et les pages
non rfrences. (Les bits de rfrence sont mis 0
chaque top d'horloge par exemple).

En combinant le bit de rfrence avec FIFO on obtient


un algorithme appel : algorithme de la deuxime
chance. Quand une page est slectionne, on regarde
son bit de rfrence, s'il est 0 on procde au
changement, sinon on lui donne une seconde chance
en mettant ce bit 0 et on passe la prochaine page
selon FIFO.
ALGORITHME 4 : page peu utilise
NFU : Not Frequently Used
Cet algorithme permet de simuler le LRU.
Chaque page a un compteur qui est initialement 0.
A chaque top d'horloge, le bit de rfrence de chaque
page est ajout son compteur. Lorsqu'il y a dfaut
de page, on remplace la page dont le compteur est le
plus faible.
Le problme de cet algorithme est : si une page est
trs active pendant une certaine priode, alors elle
reste en mmoire mme si elle n'est plus rfrence.
On peut modifier cet algorithme de la manire suivante:
on dcale les compteurs d'un bit avant de les
additionner,
le bit de rfrence est ajouter au bit gauche et non au
de droite.
A. Mouradi

Cours Systmes d Exploitation

page 84

ALGORITHME NFU

Chaque page a un compteur qui est initialis 0.


A chaque TOP dhorloge, le bit de rfrence (0 ou 1) de chaque
page est ajout son compteur.

Lorsquil y a dfaut de page, on remplace la page dont le compteur


est le plus faible.
Le problme de cet algorithme est le suivant :

Si une page est trs active pendant une certaine priode alors elles
reste en mmoire mme si elle nest plus rfrence.
On peut modifier cet algorithme de la manire suivante :
- On dcale les compteurs dun bit vers la droite avant de leur
additionner le bit de rfrence R

- R est additionn au bit de gauche et non au bit de droite.

A. Mouradi

Cours Systmes d Exploitation

page 85

Avant TOP d'Horloge

Aprs Top d'Horloge

Bits de rfrence

Bits de rfrence

Compteurs de pages

Compteurs de pages

A. Mouradi

Cours Systmes d Exploitation

page 86

LES SYSTMES DE GESTION DE FICHIERS


La partie d'un systme d'exploitation qui est
consacre :
l'organisation logique d'un fichier,
la reprsentation de l'information
la ralisation des fonctions d'accs,
la protection,
la scurit.
est appele Systme de Gestion de Fichiers (SGF)

INTERFACE UTILISATEUR D'UN SGF


Un utilisateur n'est pas concern par l'emplacement
physique d'un fichier ou par la mthode de gestion des
blocs libres d'un disque.
Plutt, il s'intresse la manire de crer et de
dtruire un fichier, comment accder aux fichiers pour
les consulter ou les modifier, comment protger ses
fichiers contre les accs non autoriss, ...
L'utilisateur donne un nom logique chacun de ses
fichiers et c'est le SGF qui se charge de faire la
correspondance entre le nom d'un fichier et son
implantation sur un support physique.
Le SGF donne l'utilisateur plusieurs primitives
(appels systme) pour crer, crire, lire, se positionner
au dbut ou effacer un fichier.

A. Mouradi

Cours Systmes d Exploitation

page 87

LES MTHODES D'ACCS AUX FICHIERS


Plusieurs mthodes d'accs un fichier peuvent tre
supportes par un SGF :

accs squentiel
(bas sur le modle bande magntique)
accs direct (bas sur le modle disque)
accs squentiel index
(ISAM : Indexed Sequential Access Method)
Nous pouvons construire d'autres mthodes d'accs
partir de l'accs direct. Ces mthodes demandent
la construction d'un index pour le fichier. L'index
contient des pointeurs vers les diffrents blocs du
fichier. Pour trouver une entre dans le fichier, on
cherche d'abord dans l'index et on utilise le pointeur
pour accder directement le fichier.

MTHODES DE GESTION DE L'ESPACE LIBRE


ET D'ALLOCATION DE L'ESPACE
DISQUE AUX FICHIERS
L'implantation des fichiers est une tche ralise par le
systme d'exploitation. Sur les bandes magntiques,
cette implantation est simple et consiste mettre
plusieurs fichiers sur une bande et utiliser l'accs
squentiel.
L'utilisation du disque dur permet une implantation
souple. Le but est que l'espace disque soit utilis
aux mieux et que l'on peut accder rapidement aux
fichiers.

A. Mouradi

Cours Systmes d Exploitation

page 88

GESTION DE L'ESPACE LIBRE


Dans un systme informatique, les fichiers sont cres
ou effacs assez frquemment. L'espace libr
lorsqu'on efface un fichier est rutilis pour de nouveaux
fichiers. Le systme maintient alors une trace de tous
les blocs libres du disque.
La cration d'un nouveau fichier ncessite la recherche
dans les blocs libres d'un espace suffisant pour
contenir ce fichier.
l'espace libre d'un disque peut tre gr par une table
de bits. Chaque bloc est reprsent par un bit qui est 0
si le bloc est libre, 1 s'il est occup. Une autre manire
de faire est de chaner les blocs libres et en ayant un
pointeur vers le premier bloc libre. Cette manire
n'est pas trs efficace car pour parcourir la liste,
il faut lire chaque bloc (donc beaucoup de temps CPU).

Une alternative est de mmoriser les adresses de


n blocs libres dans le premier bloc libre. Ainsi les
adresses d'un grand nombre de blocs libres peuvent
tre trouves rapidement.
adresse 1er
bloc libre

bloc
libre

A. Mouradi

bloc
libre

Cours Systmes d Exploitation

page 89

ALLOCATION DE L'ESPACE DISQUE AUX FICHIERS


3 mthodes sont largement utilises pour l'allocation
de l'espace disque:
l'allocation contigu,
l'allocation chane,
l'allocation indexe.

L'allocation contigu
La mthode d'allocation contigu ncessite que chaque
fichier occupe un ensemble de blocs dont les adresses
se suivent. D'une manire gnrale, lorsqu'on a lu
un bloc, la lecture du bloc suivant ne ncessite pas de
dplacement de la tte de lecture (ou bien une piste
au maximum lorsqu'on est sur le dernier secteur
d'une piste.)
Dans ce type d'allocation, un fichier est dfini par son
adresse de dpart et sa longueur. cette information
est mmorise dans l'entre du rpertoire du fichier.

L'accs un fichier qui a un espace contigu est


relativement facile. Pour l'accs squentiel, le systme
mmorise l'adresse du dernier bloc lu et pour une
prochaine lecture, il lit le bloc suivant. Pour l'accs
direct un bloc K d'un fichier qui commence au
bloc B, on peut accder facilement au bloc B+K.
Le problme de ce type d'allocation est de trouver de
l'espace libre pour un nouveau fichier. Cela dpend
de la gestion de l'espace libre. IL est similaire celui
de la gestion de la mmoire et on peut appliquer les
algorithmes connus: First fit, Best fit, Worst fit, ...

A. Mouradi

Cours Systmes d Exploitation

page 90

Un autre problme concernant l'allocation contigu


est de dterminer l'espace ncessaire pour un fichier.
L'estimation de l'espace ncessaire lors de la cration
d'un fichier est difficile. Si on alloue une petite taille,
on risque d'avoir des problmes lorsqu'on veut faire
une extension du fichier. Le systme peut alors copier
ce fichier dans un espace plus grand mais cela
ralentit le traitement. Si on alloue une grande taille, il
y a perte de la place mme si cette taille va tre
atteinte au cours de l'volution du fichier.
L'allocation chane
Dans ce cas, chaque fichier est une liste chane de
blocs de disque. Les blocs d'un fichier peuvent tre
disperss sur tout le disque.

Un fichier est repr par son nom et un pointeur sur le


premier bloc du fichier. ( On peut utiliser aussi un
pointeur sur le dernier bloc pour faciliter l'extension ).
La cration, l'criture et la lecture d'un fichier
squentiel est facile raliser. Pour ajouter un
nouveau bloc, il suffit de prendre un bloc de la liste
des blocs libres et le chaner au fichier.
Mais l'accs direct n'est pas efficace car il faut
plusieurs accs disques pour lire le i me bloc.

Un autre problme est la fiabilit. Que se passe-t-il


si un pointeur est endommag. Pour rsoudre ce
problme on peut utiliser des listes doublement
chanes ou bien mmoriser dans chaque bloc
le nom du fichier et son numro relatif.

A. Mouradi

Cours Systmes d Exploitation

page 91

L'allocation Indexe

L'allocation indexe rsout le problme de l'accs direct


en mettant tous les pointeurs dans un bloc appel:
BLOC INDEX. Chaque fichier a son bloc index qui
contient des adresses de blocs. La ime entre du bloc
index pointe vers le ime bloc du fichier.
L'entre du rpertoire du fichier contient l'adresse du
bloc index.
L'allocation indexe supporte l'accs direct et n'a pas
les problmes de fragmentation externe MAIS on est
oblig d'avoir un bloc index mme si la fichier n'a
qu'un ou deux blocs. D'o perte de place.
LES REPERTOIRES

Pour pouvoir trouver facilement un fichier sur disque, il


faut organiser les fichiers de manire faciliter cette
recherche. Plusieurs manires sont possibles.
Un des systmes simples est celui du CP/M de Digital
Research. Dans ce systme, il y a un seul rpertoire
pour tous les fichiers. Une entre dans ce rpertoire a
la structure:
16 entres
1

1 2

Identit du propritaire du fichier (code utilisateur)

nom du fichier
extension (cas des grands fichiers qui ncessitent plus
d'une entre dans le rpertoire
A. Mouradi

Cours Systmes d Exploitation

page 92

nombre d'entres utilises,

les numros des blocs du fichier.


Regardons prsent le systme MS-DOS qui possde
une arborescence de rpertoires.
Une entre dans un rpertoire MS-DOS a la structure
suivante:
8

10

nom du fichier

type du fichier
attributs du fichier
rserv
heure
date

numro du premier bloc


taille du fichier
MS-DOS gre les fichiers d'une manire chane.

le rpertoire racine a une taille fixe

A. Mouradi

Cours Systmes d Exploitation

page 93

UNIX possde aussi une arborescence de rpertoires.


Une entre dans un rpertoire UNIX est de la forme:

Nom du fichier

14

Numro du noeud d'information (indice dans une table


gnrale associe au volume) = i-node
nom du fichier
UNIX associe chaque fichier une table situe sur le
disque appele noeud d'information qui a la structure:
- mode (ordinaire, rpertoire, spcial,...)
- nombre de liens,
- Uid du propritaire,
- Gid du propritaire,
- taille du fichier,

- date de cration,
- date du dernier accs,

- date de la dernire modification


- 10 numros de blocs (suffisant pour les petits fichiers)
- pointeur simple indirection,
- pointeur double indirection,
- pointeur triple indirection.
A. Mouradi

Cours Systmes d Exploitation

page 94

Dans UNIX, le noeud d'information du rpertoire racine


est situ un endroit fixe du disque.
Chaque rpertoire possde les entres et qui
correspondent au rpertoire courant et au rpertoire
pre.
exemple: recherche d'un fichier /user/classe1/prog
rpertoire racine
1
1
4
7
6
.
.

bin
dev
user
.
.

Bloc 100
6
1
15
17
..
..
..

adm
classe1
..
..
..

noeud d'information 17
.
.
taille
date
200

rpertoire de user

A. Mouradi

noeud d'information 6
.
.
taille
date
100

Bloc 200
17
6
25 prog
.
.
.
.

rpertoire de classe1

Cours Systmes d Exploitation

page 95

MS-DOS procde autrement pour la gestion des fichiers.


IL associe chaque disque une table appele FAT
(File Allocation Table). Cette table a une entre pour
chaque bloc du disque.
Nous avons vu que pour chaque fichier, l'entre du
rpertoire contient le numro du premier bloc du
fichier. Ce numro sert d'entre dans la FAT pour
trouver le numro du bloc suivant et ainsi de suite.

rpertoire
A
B

FAT

6
9

0
1
2
3

eof
eof

10

9
10

fichier A

fichier B

A. Mouradi

taille
disque

2
3

10

Cours Systmes d Exploitation

page 96

7 0 1
7 0 1
7 0
7
ddd

A. Mouradi

2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
1 3 3 2 2 2
2 7
2
0 0 0 0 33
0 0
3
2 2 4 4 40
1 1
1
d d d d dd
d d d

Cours Systmes d Exploitation

page 97

Vous aimerez peut-être aussi