Vous êtes sur la page 1sur 100

Chapitre 4

Le systme de
Gestion de Fichiers
1.
2.
3.

Systmes dentre/sortie
Systmes de fichiers
Structure de mmoire de
masse (disques)
1

Systmes dentre/sortie
Concepts importants :
Matriel E/S
Communication entre UCT et contrleurs
priphriques
DMA
Pilotes et contrleurs de prifs
Sous-systme du noyau pour E/S
Tamponnage, cache, spoule

Contrleurs de priphriques

On se rappel: Les priphriques dE/S ont


typiquement une composante mcanique
et une composante lectronique
La partie lectronique est le contrleur

Monitor

Bus

Revue des disques magntiques

Les disques sont organiss en cylindres,


pistes et secteurs
4

Support physique de codage de linformation

Disque dur

(A) Piste
(B) Secteur gomtrique
(C) secteur d'une piste
(D) cluster

Revue des disques magntiques

Toutes les pistes pour


une position donne du
bras forment un cylindre.
Donc le nombre de cylindre
est gale au nombre de
piste par ct de plateau
La location sur un disque
est spcifi par (cylindre,
tte, secteur)

Disques magntiques

Sur les disques plus vieux, le nombre de


secteurs par piste taient constant pour
tout les cylindres
Ceci gaspille de lespace de stockage potentiel
sur les cylindres du disque
Les disques modernes rduisent le nombre de
secteurs par piste vers lintrieur du disque.
Certains par paliers (plusieurs pistes) certains
de faon linaire
Souvent, les contrleurs modernes attachs aux
disques prsentent une gomtrie virtuelle au
systme dexploitation, mais ont un
arrangement physique beaucoup plus
compliqu...
7

Disques magntiques

Organisation virtuelle

Gomtrie Physique

Entrelacement
Entrelacement
simple
Entrelacement
double

Lentrelacement permet au disque de


tourner et de passer n secteurs et de
prendre le prochain secteur virtuellement
contigu pendant que les donnes sont
transfrs du contrleur vers la mmoire
9

Les Priphriques

Priphriques blocs ou caractres


Priphriques blocs: disques, rubans
Commandes: read, write, seek
Accs brut (raw) ou travers systme fichiers
Accs reprsent en mmoire (memory-mapped)
Semblable au concept de mmoire virtuelle ou cache:
une certaine partie du contenu du priphrique est
stock en mmoire principale(cache), donc quand un
programme fait une lecture de disque, ceci pourrait tre
une lecture de mmoire principale

Priphriques par caractre (cran)

Get, put traitent des caractres


Librairies au dessus peuvent permettre dition de
lignes, etc.
10

Pilotes de priphriques

Pilotes de priphriques
Chaque priphrique dE/S attach lordinateur
requiert du code spcifique pour faire linterface
entre le matriel et le SE. Ce code sappel pilote de
priphrique
Ceci est parce quau niveau du matriel, les
priphriques sont radicalement diffrents les
uns des autres
Parfois un pilote va prendre soins dune classe
de priphriques qui sont proche ex.: un
nombre de souris
Les pilotes de priphriques sont normalement
produit par le manufacturier du priphrique pour
les SEs populaires
11

Pilotes de priphriques

Pilotes de priphriques
Typiquement les pilotes sont dans le noyau
pour quils puissent avoir accs au registres de
contrle du priphrique
Ce nest pas un requis. Vous pourriez avoir
un pilote dans lespace utilisateur et faire
des appels de systmes pour communiquer
avec les registres. Par contre la pratique
courante est davoir les pilotes dans le
noyau.
tant donn que cest la mthode habituel
dimplmenter les pilotes, larchitecture
normale est de mettre les pilotes en bas du SE
12

Pilotes de priphriques

Que font les pilotes de priphriques?


Ils acceptent les commandes abstraites de
lecture/criture de la couche suprieure
Fonctions assorties:
Initialise le priphrique
Gre la puissance Arrte un disque de
tourner, ferme un cran, ferme une
camra, etc.

13

Pilotes de priphriques

Quest-ce que un pilote fait sur une


lecture/criture?
Vrifie les paramtres dentre & retourne les
erreurs
Converti les commandes abstraites (lit le
secteur) en commandes physiques (tte,
traque, secteur, et cylindre)
Met les demandes dans une queue si le
priphrique est occup
Amne le priphrique en tat de
fonctionnement si requis
Monter la vitesse du moteur, temprature, etc.

Contrle le priphrique en envoyant des


commandes par les registres de contrle
14

Contrleurs de priphriques

Sur un PC, le contrleur de priphrique est


habituellement sur un circuit imprim
Il peut tre intgr sur la carte mre

Le job du contrleur est de convertir un flot


de srie de bits en octets ou en blocs
doctets et de faire les conversions et
corrections
En fin de compte touts les priphriques traitent
des bits. Cest le contrleur qui groupe ou
dgroupe ces bits

15

Registres de contrle

Chaque contrleur possde quelques


registres qui servent la communication
avec le processeur
Le systme dexploitation peut commander les
priphriques de fournir ou accepter des donnes,
de steindre, etc.
Le SE peut aussi lire certains registres pour
dterminer ltat du priphrique

Les contrleurs ont typiquement des


tampons de donnes que le SE peut lire et
crire
Important pour ne pas perdre de donnes
Parfois utilis comme partie du priphrique,
ie: RAM vido dans laquelle les programmes ou le
SE peuvent crire
16

Communication entre UCT et


contrleurs priphriques

Deux techniques de base:


UCT et contrleurs communiquent directement
par des registres
UCT et contrleurs communiquent par des zones
de mmoire centrale
Combinaisons de ces deux techniques

Contr.

UCT

Prifer.

RAM
17

Accs direct en mmoire (DMA)

Dans les systmes sans DMA, lUCT est implique dans le


transfert de chaque octet
DMA est utile pour exclure limplication de lUCT surtout
pour des E/S volumineuses
Demande un contrleur spcial a accs direct la mmoire
centrale MMU (Memory Management Unit)
X

6 - Lorsque C=0 DMA


envoie une interruption pour
signaler la fin du transfert
5 - Le contrleur DMA
transfert les octets au buffer x
en augmentant ladresse x
et dcrmentant le compteur c

1- CPU
demande
au pilote du
priphrique
(HD)

2 - Le pilote du disque
demande au contrleur
du disque de transfrer C
octets du disque vers le
buffer ladresse x

3 - Le contrleur du disque
initie le transfert DMA
4 - Le contrleur du disque
envoie chaque octet au 18
contrleur du DMA

Vol de cycles

Le DMA ralentit encore le traitement


dUCT car quand le DMA utilise le bus
mmoire, lUCT ne peut pas sen servir

UCT
Contr

DMA

Mm

Mais beaucoup moins que sans DMA,


quand lUCT doit soccuper de grer le
transfert
Mmoire <-> Priphrique
Contr

UCT

Mm
19

Sous-systme E/S du noyau

Fonctionnalits:
Mise en tampon
Mise en cache
Mise en attente et rservation de priphrique
spoule
Gestion des erreurs
Ordonnancement E/S
Optimiser lordre dans lequel les E/S sont
excutes

20

Mise en tampon

Double tamponnage:
P.ex. en sortie: un processus crit le
prochain enregistrement sur un tampon en
mmoire tant que lenregistrement
prcdent est en train dtre crit
Permet superposition traitement E/S

21

Principes de gestion de priphriques


Tamponnage des donnes

Principes.
Simultanit des
oprations dentres et
de sorties avec les
oprations de calcul.
Le contrleur de
priphrique inclue
plusieurs registres de
donnes.
Pendant que lUCT
accde un registre, le
contleur peut accder
un autre registre.

Processus
Process

Processus
Process

Contrleur

Processus
Process

Contrleur

Donnes

Priphrique

Contrleur

Priphrique

Sans tampon

Priphrique

Lecture du tampon A

taille = nb octets

Lecture du tampon B

Contrleur Disque
Registres
disque
DMA
Tampon

U.C.

Adresse mmoire

Mmoire
BUS

Nombre doctets

22

Mise en cache

Quelques lments couramment utiliss


dune mmoire secondaire sont gards
en mmoire centrale

Donc quand un processus excute une


E/S, celle-ci pourrait ne pas tre une E/S
relle:
Elle pourrait tre un transfert en mmoire, une
simple mise jour dun pointeur, etc.

23

Mise en attente et rservation de priphrique: spool

Spool ou Spooling est un mcanisme par lequel des


travaux faire sont stocks dans un fichier, pour tre
ordonnancs plus tard

Pour optimiser lutilisation des priphriques lents, le


SE pourrait diriger un stockage temporaire les
donnes destins au priphrique (ou provenant delle)
P.ex. chaque fois quun programmeur fait une
impression, les donnes pourraient au lieu tre
envoyes un disque, pour tre imprimes dans
leur ordre de priorit
Aussi les donnes en provenance dun lecteur
optique pourraient tre stockes pour traitement
plus tard

24

Gestion des erreurs

Exemples derreurs tre traits par le


SE:
Erreurs de lecture/criture, protection, priph
non-disponible

Les erreurs retournent un code raison

Traitement diffrent dans les diffrents


cas

25

Gestion de requtes E/S

P. ex. lecture dun fichier de disque


Dterminer o se trouve le fichier
Traduire le nom du fichier en nom de
priphrique et location dans priphrique
Lire physiquement le fichier dans le tampon
Rendre les donnes disponibles au processus
Retourner au processus

26

Systmes de fichiers
Concepts importants :

Systmes fichiers
Mthodes daccs
Structures Rpertoires
Structures de systmes fichiers
Mthodes dallocation
Gestion de lespace libre
Implmentation de rpertoires

27

Le concept de fichier

Un fichier est un ensemble nomm


dinformations relies qui est stock sur tout
type de systme de stockage
Programmes, donnes, etc.

Le systme gre la correspondance entre


fichiers et priphriques de stockage
matriel (disques, bandes magntiques,
disquettes, CDs, DVDs, etc.)

Systmes d'exploitation

28

Attributs dun fichier

Nom : sous forme lisible.


Identifiant : gnralement un entier.
Type : excutable, image, etc.
Emplacement : pointeur vers le priphrique et la
position sur celui-ci.
Taille : relle et ventuellement maximum possible.
Protections : lecture, criture et excution.
Heure, date et utilisateur : pour la cration, la
dernire modification et dernire utilisation.
Ces informations sont stockes dans la structure en
rpertoires du disque.

Systmes d'exploitation

29

Oprations sur les fichiers

Cration
Trouver lespace dans le systme de fichier
Ajouter les entres dans les rpertoires

criture : la position courante


Lecture : la position courante
Repositionnement dans le fichier : modifier
la position courante
Suppression : supprimer lentre et librer
lespace disque
Vider : mettre la taille 0 (libration de
lespace) dans modifier les autres attributs

Systmes d'exploitation

30

Implmentation

Les fichiers doivent tre ouvert avant d'effectuer


lectures et critures et ferms ensuite.
Une seule recherche du fichier dans le rpertoire

Open(filename) recherche le fichier dans le


rpertoire et copie l'entre en mmoire dans une
table des fichiers ouverts. Retourne un pointeur vers
cette entre.
Unix: write(fd, data, bytes), read(fd, data, bytes)
fd index dans la table des fichiers ouverts

Close (F) dplace le contenu de l'entre F dans la


structure du rpertoire et supprime F de la table des
fichiers ouverts

Systmes d'exploitation

31

Implmentation

Dans un systme multi-utilisateurs, plusieurs


processus peuvent ouvrir simultanment le mme
fichier.

Deux tables pour les fichiers ouverts :


Table globale : informations sur les fichiers (nom,
emplacement, dates d'accs, taille, etc.)
Compteur du nombre d'ouverture pour chaque fichier :
chaque fermeture dcrmente ce compteur et l'entre
est supprime quand il atteint 0.

Table locale au processus


Chaque entre contient la position dans le fichier, les
droits d'accs et un pointeur vers une entre dans la
table globale.

Systmes d'exploitation

32

Structure en rpertoires

Les disques peuvent tre partags en


partitions.

Une partition peut s'tendre sur plusieurs


disques

Chaque partition un systme de fichiers


propre :
Rpertoires
Fichiers

Systmes d'exploitation

33

Organisation typique

Systmes d'exploitation

34

Agir sur les rpertoires

Chercher un fichier
Crer un fichier
Supprimer un fichier
Lister un rpertoire
Renommer un rpertoire.
Traverser le systme de fichiers (visiter
l'ensemble de la structure)

Systmes d'exploitation

35

Rpertoires un niveau

Un seul rpertoire pour tous les utilisateurs.


Tous les fichiers doivent avoir un nom unique (dur
grer s'il y a beaucoup d'utilisateurs ou de fichiers)

Systmes d'exploitation

36

Rpertoires deux niveaux

Un rpertoire par utilisateur


Noms de fichiers identiques pour des utilisateurs
diffrents
Recherche efficace

Chaque fichier est identifi par nom de l'utilisateur +


nom du fichier

Systmes d'exploitation

37

Rpertoires arborescents

Systmes d'exploitation

38

Rpertoires arborescents

Possibilit de crer des sous-repertoires


Un rpertoire contient des fichiers et des
sous-repertoires

Chaque fichier un unique chemin (path


name)
Rfrences absolues ou relatives :
partir de la racine
Relatives au rpertoire courant

Systmes d'exploitation

39

Structure en graphe sans cycle

Permet le partage de fichiers et de rpertoires


Un seul fichier existe rellement en cas de partage
=> les modifications faites par un utilisateur sont
visibles par d'autres

Systmes d'exploitation

40

Montage du systme de fichiers

Un systme de fichiers doit tre mont


avant d'tre accessible.
Un systme non mont est mont dans la
structure un point de montage.
UNIX: la commande mount permet
d'attacher le systme de fichiers d'un
priphrique dans l'arborescence.
Windows: les priphriques et partitions ont
une lettre pour les identifier.

Systmes d'exploitation

41

(a) Partition existante.


(b) Partition non monte.

Systmes d'exploitation

42

Partage distance

Dans un systme distribu, les fichiers


peuvent tre partag via un rseau :
Transfert manuel (FTP)
Systme de fichiers distribu (DFS)
World Wide Web (WWW)

Le modle client-serveur
Le serveur contient les fichiers
Le client veut y accder
Ils communiquent en utilisant un protocole
d'change

Systmes d'exploitation

43

Protection

Protection des fichiers contre les accs non


dsirs
Le possesseur doit pouvoir contrler :
Ce qui peut tre fait
Par qui

Types d'accs pouvant tre contrls

Lecture
criture
Excution
Concatnation (Append)
Suppression
List (voir les attributs)

Systmes d'exploitation

44

Liste de contrles d'accs

La plupart des approches font dpendre les


accs de l'identit de l'utilisateur

Plus gnralement, chaque


fichier/rpertoire contient une liste de
contrle d'accs :
contenue dans l'entre du rpertoire
Spcifie le nom de l'utilisateur et les droits

Systmes d'exploitation

45

Protection sous UNIX

Trois classifications par fichier :

Possesseur (Owner) : l'utilisateur qui a


cr le fichier
Peut tre modifi avec chown (par root)

Groupe (Group) : un ensemble


d'utilisateurs avec les mme droits d'accs
Cr par root
Peut tre modifi par root avec chgrp

Autres (Universe) : tous les autres

Systmes d'exploitation

46

Protection sous UNIX (2)

On peut spcifier les droits en lecture,


criture et excution pour le possesseur, le
groupe et les autres :
RWX
possesseur
110=6
groupe
110=6
autres
000=0

La commande chmod permet de changer


les droits
Ex : chmod 660 cours.ppt

Systmes d'exploitation

47

Protection sous UNIX (3)

Un exemple de rpertoire :

$ ls -l
total 10547
drwxr-xr-x
drwxr-xr-x
-rw-r--r--rw-r--r--

1
1
1
1

ujgo7402
ujgo7402
ujgo7402
ujgo7402

mkgroup-l-d
0 Feb
mkgroup-l-d
0 Feb
mkgroup-l-d 5117801 Feb
mkgroup-l-d 5681444 Feb

7
6
7
7

14:47
19:27
15:05
15:04

P2P_IPTPS
PAPER
PAPER[1].tar.gz
iptps.tar.gz

Rpertoires :
R = lecture : lire le contenu du rpertoire
W = criture : crer ou supprimer des fichiers
dans le rpertoire
X = excution : possibilit de se dplacer dans le
rpertoire

Systmes d'exploitation

48

Implmentation
des systmes
de fichiers
Systmes d'exploitation

49

Introduction

L'implmentation a pour but d'tudier :

Comment
Comment
Comment
Comment
efficace.

Systmes d'exploitation

les fichiers sont stocks.


les rpertoires sont stocks.
l'espace disque est gr.
rendre le systme de fichiers

50

Gnralits

Les systmes de fichiers sont stocks sur disque.

Les partitions contiennent des systmes de fichiers


indpendants.

Plusieurs structures sont utilises pour


l'implmentation effective d'un systme de fichiers.
Ceci peut varier d'un systme l'autre.

Le point crucial est de savoir en permanence quel


fichier est associ quel bloc sur le disque.

Systmes d'exploitation

51

Blocs de contrle
Sur le disque on trouve :
Un bloc de contrle de dmarrage (boot control
block)
contient les informations ncessaire pour dmarrer le
SE depuis cette partition.
Typiquement le premier bloc de la partition.
Sous UNIX (UFS) : boot block.
Avec NTFS : partition boot block.

Un bloc de contrle de la partition


Contient des informations sur la partition (nombre de
blocs, taille des blocs, nombre de blocs libres, pointeurs
sur les blocs libres).
UFS : superblock.
NTFS : Master file table.

Systmes d'exploitation

52

Bloc de contrle d'un fichier

Le bloc de contrle d'un fichier (FCB)


contient les informations sur le fichier
(permissions, taille, etc.)

UFS : inode.
NTFS : stock dans la Master File Table.

Systmes d'exploitation

53

Mthodes daccs
Squentielle
Indexe
Directe

54

Mthodes daccs: 4 de base

Squentiel (rubans ou disques): lecture ou


criture des enregistrements dans un ordre fixe

Index squentiel (disques): accs squentiel ou


accs direct (alatoire) par lutilisation dindex

Indexe: multiplicit dindex selon les besoins,


accs direct par lindex

Direct ou hache: accs direct travers tableau


dhachage

55

Fichiers accs squentiel (rubans)

La seule faon de retourner en


arrire est de retourner au dbut
(rbobiner, rewind)

bloc

En avant seulement, 1 seul enreg.


la fois

bloc

...

...
...
enregistrements

espace interbloc

56

Accs direct ou hach ou alatoire:


accs direct travers tableau dhachage

Une fonction dhachage est une fonction qui


traduit une cl dans adresse,
P.ex. Matricule tudiant adresse disque

Rapide mais:
Si les adresses gnres sont trop
parpilles, gaspillage despace
Si les adresses ne sont pas assez parpilles,
risque que deux cls soient renvoyes la
mme adresse
Dans ce cas, il faut de quelques faon renvoyer
une des cls une autre adresse
57

Problme avec les fonctions dhachage


adr. disque

cls

Fonction dhachage disperse


qui nutilise pas bien lespace
disponible

cls

adr. disque

Fonction dhachage concentre qui utilise


mieux lespace mais introduit des doubles
affectations
58

Hachage: Traitement des doubles affectations

On doit dtecter les doubles affectations, et


sil y en a, un des deux enregistrements
doit tre mis ailleurs
ce qui complique lalgorithme

cls

adr. disque

adr. alternative disque

59

Adressage Index squentiel

Un index permet darriver directement


lenregistrement dsir, ou en sa proximit
Chaque enregistrement contient un champ cl
Un fichier index contient des repres (pointeurs)
certain points importants dans le fichier principal (p.ex.

dbut de la lettre S, dbut des Lalande, dbut des matricules qui


commencent par 8)

Le fichier index pourra tre organis en niveaux


(p.ex. dans lindex de S on trouve lindex de tous
ceux qui commencent par S)
Le fichier index permet darriver au point de repre
dans le fichier principal, puis la recherche est
squentielle

60

Exemples dindex et fichiers relatifs

Pointe au dbut des Smiths (il y en aura plusieurs)

Le fichier index est accs direct, le fichier relatif est accs squentiel
61

Comparaison : Squentiel et index squentiel

P.ex. Un fichier contient 1 million


denregistrements
En moyenne, 500.000 accs sont ncessaires
pour trouver un enregistrement si laccs est
squentiel!
Mais dans un squentiel index, sil y a un seul
niveau dindices avec 1000 entres (et chaque entre
pointe donc 1000 autres),

En moyenne, a prend 1 accs pour trouver le


repre appropri dans le fichier index
Puis 500 accs pour trouver squentiellement
le bon enregistrement dans le fichier relatif
62

Mthodes dallocation

63

Structures de systmes de fichiers

Le systme de fichiers rside dans la


mmoire secondaire: disques, rubans...

File control block: structure de donnes


contenant de linfo sur un fichier (RAM)

64

Structure physique des fichiers

La mmoire secondaire est subdivise en blocs et chaque


opration dE/S seffectue en units de blocs
Les blocs ruban sont de longueur variable, mais les blocs
disque sont de longueur fixe
Sur disque, un bloc est constitu dun multiple de secteurs
contigus (ex: 1, 2, ou 4)

la taille dun secteur est habituellement 512 octets

Il faut donc insrer les enregistrements dans les blocs et les


extraire par la suite
Simple lorsque chaque octet est un enregistrement par luimme
Plus complexe lorsque les enregistrements possdent une
structure
Les fichiers sont allous en unit de blocs. Le dernier bloc
est donc rarement rempli de donnes
Fragmentation interne
65

Mthodes dallocation
Comment les blocs sur le disque sont allous
pour les fichiers. Il existe plusieurs
mthodes, dont :

Allocation contigu
Allocation lie
Allocation indexe

Systmes d'exploitation

66

Allocation contigu

Chaque fichier occupe des blocs contigus sur le


disque.

Avantages
Simplicit : il suffit de connatre la position (numro
du bloc) et la longueur du fichier (nombre de blocs).
Accs alatoire linformation.

Inconvnients
Perte despace disque (problmes de fragmentation).
Les fichiers ne peuvent pas grandir.

Systmes d'exploitation

67

Allocation contigu (2)

Systmes d'exploitation

68

Allocation contigu

Chaque fichier occupe un ensemble de blocs


contigu sur disque
Simple: nous navons besoin que dadresses de
dbut et longueur
Supporte tant laccs squentiel, que laccs direct
Application des problmes et mthodes vus dans le
chapitre de lallocation de mmoire contigu
Les fichiers ne peuvent pas grandir
Impossible dajouter au milieu
Excution priodique dune compression
(compaction) pour rcuprer lespace libre

69

Allocation enchane

Le rpertoire contient ladresse du premier


et dernier bloc, possible le nombre de blocs
Chaque bloc contient un pointeur ladresse
du prochain bloc:
bloc

pointeur

70

Allocation enchane
rpertoire

71

Avantages - dsavantages

Pas de fragmentation externe - allocation de


mmoire simple, pas besoin de compression

Laccs lintrieur dun fichier ne peut tre


que squentiel
Pas de faon de trouver directement le 4me
enregistrement...

Lintgrit des pointeurs est essentielle

Les pointeurs gaspillent un peu despace


72

Table d'allocation des fichiers


Une variation de l'allocation lie est
d'utiliser une table d'allocation des fichiers
(FAT).
- Utilis par MS-DOS et OS/2.
- Une partie du disque est rserve pour stocker la table
qui contient les pointeurs vers tous les fichiers de la
partition.
- Chaque entre dans la FAT correspond un bloc sur le
disque. Chaque entre contient le pointeur vers le bloc
suivant du fichier.
- Une valeur spciale indique la fin du fichier.
- Une entre nulle signifie un bloc inutilis.

Systmes d'exploitation

73

Table d'allocation

Les FATs sont stockes en mmoire tant


que le SE est actif

Systmes d'exploitation

74

Allocation indexe: semblable la pagination

Tous les pointeurs sont regroups dans un


tableau (index block)

index table

75

Allocation indexe

-1: pointeur nul


76

Allocation indexe

la cration dun fichier, tous les pointeurs dans le


tableau sont nil (-1)
Chaque fois quun nouveau bloc doit tre allou, on
trouve de lespace disponible et on ajoute un
pointeur avec son adresse
Pas de fragmentation externe, mais les index
prennent de lespace
Permet accs direct (alatoire)
Taille de fichiers limite par la taille de lindex block
Mais nous pouvons avoir plusieurs niveaux
dindex: Unix
Index block peut utiliser beaucoup de mmoire

77

UNIX BSD: index niveaux (config. possible)


Ce rpertoire est en mmoire, tous les
autres sont sur disque

12 blocs disque de 4K chaque


1024 blocs de 4K
chaque
1024x102
4 blocs
de 4K

Bloc de 4K contient 1024 pointeurs

78

Concepts communs

Les fichiers sont reprsents par des inodes


Les rpertoires sont des fichiers
Les priphriques sont accds par des
entres sorties sur des fichiers spciaux
(/dev/hda0)
Les liens sont autoriss

Systmes d'exploitation

79

Inodes

Une structure qui contient la description du


fichier :

Type
Droits d'accs
Possesseurs
Dates de modifications
Taille
Pointeurs vers les blocs de donnes

Les inodes sont stocks en mmoire tant


que le fichier est ouvert

Systmes d'exploitation

80

Inodes (2)
inode

Blocs directs
infos

Indirection
simple

Indirection
double

Systmes d'exploitation

81

Systmes d'exploitation

82

UNIX BSD

Les premiers blocs dun fichier sont accessibles directement


Si le fichier contient des blocs additionnels, les premiers sont
accessibles travers un niveau dindices
Les suivants sont accessibles travers 2 niveaux dindices, etc.
Donc le plus loin du dbut un enregistrement se trouve, le plus
indirect est son accs
Permet accs rapide petits fichiers, et au dbut de tous les
fichiers.
Permet laccs des grands fichier avec un petit rpertoire en
83
mmoire

Gestion despace libre

Vecteur de bits (n blocs)


0 1

n-1

bit[i] =

1 block[i] occup

Exemple dun vecteur de bits o les blocs 3, 4, 5, 9, 10, 15,


16 sont occups:

0 block[i] libre

00011100011000011

Ladresse du premier bloc libre peut tre trouve par un


simple calcul
84

Gestion despace libre


Solution 2: Liste lie de mmoire libre (MSDOS, Windows 9x)
Tous les blocs de mmoire libre sont lis
ensemble par des pointeurs

85

Comparaison

Bitmap:
si la bitmap de toute la mmoire secondaire est
garde en mmoire principale, la mthode est
rapide mais demande de lespace de mmoire
principale
si les bitmaps sont gardes en mmoire
secondaire, temps de lecture de mmoire
secondaire...
Elles pourraient tre pagines, p.ex.

Liste lie
Pour trouver plusieurs blocs de mmoire libre,
plus daccs disques pourraient tre demands
Pour augmenter lefficacit, nous pouvons
garder en mmoire centrale ladresse du 1er
86
bloc libre

Structure de mmoire de masse (disques)


Concepts importants :
Fonctionnement et structure des
units disque
Calcul du temps dexcution dune
squence doprations
Diffrents algorithmes
dordonnancement
Fonctionnement,

rendement

Gestion de lespace de permutation


Unix
87

Ordonnancement disques

Problme: utilisation optimale du


matriel
Rduction du temps total de lecture
disque
tant donn une file de requtes de lecture
disque, dans quel ordre les excuter?

88

Paramtres prendre en considration

Temps de positionnement (seek


time):
le temps pris par l`unit disque
pour se positionner sur le cylindre
dsir
Temps de latence de rotation (latency
time)
le temps pris par l unit de disque
qui est sur le bon cylindre pour se
positionner sur le secteur dsire
Temps de lecture
temps ncessaire pour lire la piste
Le temps de positionnement est
normalement le plus important, donc
il est celui que nous chercherons
minimiser
89

File dattente disque

Dans un systme multiprogramm avec mmoire


virtuelle, il y aura normalement une file dattente
pour lunit disque
Dans quel ordre choisir les requtes doprations
disques de faon minimiser les temps de recherche
totaux
Nous tudierons diffrents mthodes par rapport
une file dattente arbitraire:

98, 183, 37, 122, 14, 124, 65, 67

Chaque chiffre est un numro squentiel de cylindre


Il faut aussi prendre en considration le cylindre de
dpart: 53
Dans quel ordre excuter les requtes de lecture de
faon minimiser les temps totaux de
positionnement cylindre
Hypothse simpliste: un dplacement d`1 cylindre
90
cote 1 unit de temps

Premier entr, premier sorti: FIFO

45
85
146
85
108
110
59
2
Mouvement total: 640 cylindres = (98-53) + (183-98)+...
En moyenne: 640/8 = 80

91

SSTF:

Shortest Seek Time First

Plus Court Temps de Recherche


(positionnement) dabord (PCTR)
chaque moment, choisir la requte avec
le temps de recherche le plus court partir
du cylindre courant
Clairement meilleur que le prcdent
Mais pas ncessairement optimal!
Peut causer famine

92

SSTF: Plus court servi (PCTR)

Mouvement total: 236 cylindres (680 pour le prcdent)


En moyenne: 236/8 = 29.5 (80 pour le prcdent)
93

LOOK: lalgorithme de lascenseur


SCAN: lalgorithme du bus

Scan : La tte balaye le disque dans une


direction, puis dans la direction oppose,
jusquau bout. etc., en desservant les
requtes quand il passe sur le cylindre
dsir
Pas de famine

Look : La tte balaye le disque dans une


direction jusquil ny aie plus de requte
dans cette direction, puis dans la direction
oppose de mme, etc., en desservant les
requtes quandil passe sur le cylindre dsir

94

SCAN: lascenseur
direction

Mouvement total: 208 cylindres


En moyenne: 208/8 = 26 (29.5 pour SSTF)
95

Problmes du SCAN

Peu de travail faire aprs le


renversement de direction
Les requtes seront plus denses
lautre extrmit
Arrive inutilement jusqu 0

96

C-SCAN
C-Look

Retour rapide au dbut (cylindre 0) du


disque au lieu de renverser la direction
Hypothse: le mcanisme de retour est
beaucoup plus rapide que le temps de
visiter les cylindres
Comme si les disques taient en forme de
beignes!

C-LOOK
La mme ide, mais au lieu de retourner au
cylindre 0, retourner au premier cylindre qui
a une requte
97

C-LOOK
direction

retour: 169 (??)

153 sans considrer le retour (19.1 en moyenne) (26 pour SCAN)


MAIS 322 avec retour (40.25 en moyenne)
Normalement le retour sera rapide donc le cot rel sera entre les deux

98

C-LOOK avec direction initiale oppose


direction

Retour 169

Rsultats trs semblables:


157 sans considrer le retour, 326 avec le retour
99

Comparaison

Si la file souvent ne contient que trs peu


dlments, lalgorithme du premier servi
devrait tre prfr (simplicit)
Sinon, SSTF ou SCAN ou C-SCAN?
En pratique, il faut prendre en
considration:
Les temps rels de dplacement et retour au
dbut
L`organisation des fichiers et des rpertoires
Les rpertoires sont sur disque aussi

La longueur moyenne de la file


Le dbit d arrive des requtes
100