cours SE

121
 Cours Système d’exploitation Niveau : GL2 & IIA2 Enseignant : Mona LAROUSSI Bureau : 4 A8-28 E-mail: [email protected]

description

cours systemes d'exploitation

Transcript of cours SE

  • Cours Systme dexploitation

    Niveau : GL2 & IIA2Enseignant : Mona LAROUSSIBureau : 4 A8-28E-mail: [email protected]

  • Chapitre 6

    Systmes de fichiers

  • Que cest quun fichier

    Collection nomme dinformations apparentes, enregistre sur un stockage secondaire Nature permanente

    Les donnes qui se trouvent sur un stockage secondaires doivent tre dans un fichier

    Diffrents types: Donnes (binaire, numrique, caractres.) Programmes

  • Structures de fichiers

    Aucune squences doctets Texte: Lignes, pages, docs formats Source: classes, mthodes,

    procdures Etc.

  • Attributs dun fichierAttributs dun fichier

    Constituent les proprits du fichiers et sont stocks dans un fichier spcial appel rpertoire (directory). Exemples dattributs: Nom:

    pour permet aux personnes daccder au fichier Identificateur:

    Un nombre permettant au SE didentifier le fichier Type:

    Ex: binaire, ou texte; lorsque le SE supporte cela Position:

    Indique le disque et ladresse du fichier sur disque Taille:

    En bytes ou en blocs Protection:

    Dtermine qui peut crire, lire, excuter Date:

    pour la dernire modification, ou dernire utilisation Autres

  • Oprations sur les fichiers: de base

    Cration criture

    Pointeur dcriture qui donne la position dcriture

    Lecture Pointeur de lecture

    Positionnement dans un fichier (temps de recherche) Suppression dun fichier

    Libration despace

    Troncature: remise de la taille zro tout en conservant les attributs

  • Autres oprations Ajout dinfos Rnommage Copie

    peut tre faite par rnommage: deux noms pour un seul fichier

    Ouverture dun fichier: le fichier devient associ un processus qui en garde les attributs, position, etc.

    Fermeture Ouverture et fermeture peuvent tre explicites (ops

    open, close) ou implicites

  • Types de fichiers

  • 9Structure logique des fichiersStructure logique des fichiers

    Le type dun fichier spcifie sa structure Le SE peut alors supporter les diffrentes structures

    correspondant aux types de fichiers Cela complexifie le SE mais simplifie les applications

    Gnralement, un fichier est un ensemble denregistrements (records) Chaque enregistrement est constitu dun ensemble de

    champs (fields) Un champ peut tre numrique ou chane de chars.

    Les enregistrements sont de longueur fixe ou variable (tout dpendant du type du fichier)

    Mais pour Unix, MS-DOS et autres, un fichier est simplement une suite doctets byte stream Donc ici, 1 enregistrement = 1 octet Cest lapplication qui interprte le contenu et spcifie

    une structure Plus versatile mais plus de travail pour le programmeur

  • Organisation de rpertoires

    Efficacit: arriver rapidement un enregistrement

    Structure de noms: convenable pour usager deux usagers peuvent avoir le mme noms pour

    fichiers diffrents Le mme fichier peut avoir diffrents noms

    Groupement de fichiers par type: tous les programmes Java tous les programmes objet

  • Listes et groupes daccs - UNIX Modes d accs: R W E Trois classes d usager:

    propritaire groupe public

    demander l administrateur de crer un nouveau groupe avec un certain usager et un certain propritaire

    droit du propritaire de rgler les droits d accs et d ajouter des nouveaux usagers

  • Listes et groupes daccsListes et groupes daccs

    Mode daccs: read, write, execute Trois catgories dusagers:

    RWXa) owner access 7 1 1 1

    RWXb) group access 6 1 1 0

    RWXc) others access 1 0 0 1

    Demander au gestionnaire de crer un groupe, disons G, et ajouter des usagers au groupe

    Pour un fichier particulier, disons jeux, dfinir un accs appropri owner group public

    chmod 761 jeux

    Changer le groupe dun fichierchgrp G jeux

  • Chap 11 13

    Mthodes daccs

    SquentielleIndexe SquentielleIndexeDirecte

  • Chap 11 14

    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

    Pas tous les SE supportent les mthodes daccs Quand le SE ne les supporte pas, cest lapplication de

    les supporter

  • 15

    Mthodes daccs aux fichiersMthodes daccs aux fichiers

    La structure logique dun fichier dtermine sa mthode daccs Les SE sur les mainframe fournissent gnralement plusieurs

    mthodes daccs Car ils supportent plusieurs types de fichiers

    Plusieurs SE modernes (Unix, Linux, MS-DOS) fournissent une seule mthode daccs (squentielle) car les fichiers sont tous du mme type (ex: squence doctets) Mais leur mthode dallocation de fichiers (voir + loin) permet

    habituellement aux applications daccder aux fichiers de diffrentes manires

    Ex: les systmes de gestions de bases de donnes (DBMS) requirent des mthodes daccs plus efficaces que juste squentielle Un DBMS sur un mainframe peut utiliser une structure fournie

    par le SE pour accs efficace aux enregistrements. Un DBMS sur un SE qui ne fournit quun accs squentiel doit donc

    ajouter une structure aux fichiers de bases de donnes pour accs directs plus rapides.

  • 16

    Fichiers accs squentiel (archtype: rubans)

    bloc bloc

    enregistrements

    . . . . . .

    La seule faon de retourner en arrire est de retourner au dbut (rbobiner, rewind)

    En avant seulement, 1 seul enreg. la fois

    espace interbloc

    . . .

  • 17

    Lecture physique et lecture logique dans un fichier squentiel

    Un fichier squentiel consiste en blocs doctets enregistrs sur un support tel que ruban, disque

    La dimension de ces blocs est dicte par les caractristiques du support Ces blocs sont lus (lecture physique) dans un tampon en mmoire Un bloc contient un certain nombre denregistrements (records) qui sont

    des units dinformation logiques pour lapplication (un tudiant, un client, un produit) Souvent de longueur et contenu uniformes Tris par une cl, normalement un code (code dtudiant, numro

    produit) Une lecture dans un programme lit le prochain enregistrement Cette lecture peut tre ralise par

    La simple mise jour dun pointeur si la lecture logique prcdente ne stait pas rendue la fin du tampon

    la lecture du proch. bloc (dans un tampon dE/S en mmoire) si la lecture logique prcdente stait rendue la fin du tampon Dans ce cas le pointeur est remis 0

  • Chap 11 18

    Autres proprits des fichiers squentiels Pour lcriture, la mme ide: une instruction dcriture

    dans un programme cause lajout dun enregistrement un tampon, quand le tampon est plein il y a une criture de bloc

    Un fichier squentiel qui a t ouvert en lecture ne peut pas tre crit et vice-versa (impossible de mlanger lectures et critures)

    Les fichiers squentiels ne peuvent tre lus ou crits quun enregistrement la fois et seulement dans la direction en avant

  • Chap 11 19

    Adressage Index squentiel Adressage Index squentiel (index sequential)(index sequential)

    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

  • Chap 11 20

    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 squentielAccs direct: voir ci-dessous

  • Chap 11 21

    Index et fichier principal Index et fichier principal (Stallings)(Stallings)

    (Relative file)

    Dans cette figure, lindex est tendu plusieurs niveaux, donc il y a un fichier index qui renvoie un autre fichier index, n niveaux

  • Chap 11 22

    Pourquoi plusieurs niveaux dindex Un premier niveau dindex pourrait

    conduire au dbut de la lettre S Un deuxime niveau au dbut des

    Smith, etc. Donc dans le cas de fichiers volumineux

    plusieurs niveaux pourraient tre justifis.

  • Chap 11 23

    Squentiel et index squentiel: comparaisonSquentiel et index squentiel: comparaison

    P.ex. Un fichier contient 1 milliondenregistrements

    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 500 accs pour trouver le repre appropri dans le fichier index

    Puis 500 accs pour trouver squentiellement le bon enregistrement dans le fichier relatif

  • Chap 11 24

    Mais besoin de fichier dbordementMais besoin de fichier dbordement

    Les nouveaux enregistrements seront ajouts un fichier dbordement

    Les enregistrements du fichier principal qui le prcdent dans lordre de tri seront mis jour pour contenir un pointeur au nouveau enregistrement Donc accs additionnels au

    fichiers dbordement Priodiquement, le fichier

    principal sera fusionn avec le fichier dbordement

  • Chap 11 25

    Fichier indexFichier index

    Utilise des index multiples pour diffrentes cls, selon les diffrents besoins de consultation

    Quelques uns pourraient tre exhaustifs, quelques uns partiels, et organiss de faons diffrentes

  • Chap 11 26

    Indexed File (Stallings)Indexed File (Stallings)

  • Chap 11 27

    Accs directe (ou relatif)

    Fichier est vu comme collection denregistrement logiques de grandeurs fixes Bas sur le modle disque (compos de blocs) Spcifie numro de bloc pour accds donnes Numro souvent relatif (du dbut du fichier)

    Ce nest pas tous les SEs qui offres les accs squentiels et directes Facile de simuler laccs squentiel avec laccs directe

    Maintient un pointeur cp indiquant la position courante dans un fichier

    Linverse est trs difficile

  • 28

    Utilisation des 4 mthodesUtilisation des 4 mthodes

    Squentiel (rubans ou disques): lecture ou criture des enregistrements dans un ordre fixe Pour travaux par lots: salaires, comptabilit priodique

    Index squentiel (disques): accs squentiel ou accs direct par lutilisation dindex Pour fichiers qui doivent tre consults parfois de faon squentielle,

    parfois de faon directe (p.ex. par nom dtudiant) Indexe: multiplicit dindex selon les besoins, accs direct par

    lindex Pour fichiers qui doivent tre consults de faon directe selon des

    critres diffrents (p.ex. pouvoir accder aux infos concernant les tudiants par la cte du cours auquel ils sont inscrits)

    Direct ou hache: accs direct travers tableau dhachage Pour fichiers qui doivent tre consults de faon directe par une cl

    uniforme (p.ex. accs aux information des tudiants par No. de matricule)

  • 29

    Rpertoires

  • Chap 11 30

    Structures de rpertoires (directories) Une collection de structures de donnes contenant infos

    sur les fichiers.

    F 1 F 2 F 3F 4

    F n

    Rpertoires

    Fichiers

    Tant les rpertoires, que les fichiers, sont sur disques lexception dun rp. racine en mm. centrale

  • Chap 11 31

    Organisation typique de systme de fichiers

  • Chap 11 32

    Information dans un rpertoire

    Nom du fichier Type Adresse sur disque,... Longueur courante Longueur maximale Date de dernier accs Date de dernire mise jour Propritaire Protection

  • Chap 11 33

    Oprations sur rpertoires

    Recherche de fichier Cration de fichier Suppression de fichier Lister un rpertoire Rnommer un fichier Traverser un systme de fichier

  • Chap 11 34

    Organisation de rpertoires

    Efficacit: arriver rapidement un enregistrement

    Structure de noms: convenable pour usager deux usagers peuvent avoir le mme noms

    pour fichiers diffrents Le mme fichier peut avoir diffrents noms

    Groupement de fichiers par type: tous les programmes Java tous les programmes objet

  • Chap 11 35

    Structure un niveau

    Un seul rp. pour tous les usagers Ambigut de noms Problmes de groupement Primitif, pas pratique

  • Chap 11 36

    Rpertoires deux niveaux

    Rp. spar pour chaque usager `path name`, nom de chemin mme nom de fichier pour usagers diffrents est

    permis recherche efficace Pas de groupements

  • Chap 11 37

    Rpertoires arbres (normal aujourdhui)

  • Chap 11 38

    Caractristiques des rpertoires arbres Recherche efficace Possibilit de grouper Repertoire courant (working directory)

    cd /spell/mail/prog

  • Chap 11 39

    Graphes sans cycles: permettent de partager fichiers

    Unix: un symbolic link donne un chemin un fichier ou sous-rpertoire

  • Chap 11 40

    Rfrences multiples dans graphes acycliques

    Un nud peut avoir deux noms diffrents

    Si dict supprime list donc pointeur vers fichier inexistant (danglingpointer). Solutions: Pointeurs en arrire, effacent

    tous les pointeurs Compteurs de rfrences (sil y

    a encore des refs au fichier, ilne sera pas effac)

    Ni Unix ni Microsoft nimplmentent ces politiques, donc messages derreur

    Solutions impossibles grer dans un systme fortement reparti (ex: www)

  • Chap 11 41

    Graphes avec cycles (structure gnrale)

    Presque invitables quand il est permis de pointer un noeud arbitraire de la structure Pourraient tre dtects avec des contrles appropris au moment de la cration d un nouveau pointeurContrles qui ne sont pas faits dans les SE courants

  • Chap 11 42

    Considrations dans le cas de cycles

    En traversant le graphe, il est ncessaire de savoir si on retombe sur un noeud dj visit

    Un noeud peut avoir compteur de ref != 0 en se trouvant dans une boucle de noeuds qui n est pas accessible!

    Des algorithmes existent pour permettre de traiter ces cas, cependant ils sont compliqus et ont des temps d excution non-ngligeables, ce qui fait qu ils ne sont pas toujours employs Ramasse-miettes = garbage collection

    root Un sous-arbre qui nest pas accessible partir de la racine mais il ne peut pas tre effac en utilisant le critre ref=0 car il fait ref lui-meme!

  • Chap 11 43

    Combiner plusieurs systmes de fichier

    Le systme de fichier

    Rpertoire qui rside dans une partition/appareil spcifique

    Pourquoi combiner?

    Plusieurs partitions de disques rigides, disquettes, CDROM, disques rseau.

    Vision et accs uniforme

    Comment?

    Attacher un systme de fichier un nud particuler dans la hirarchie du rpertoire.

    Windows: systme 2 niveaux attach des lettres dappareils

    Unix: opration dattachement explicit (mount), peut attacher un systme de fichier nimporte o dans le rpertoire.

  • Chap 11 44

    Attachement du systme de fichier

    Un systme de fichier doit tre attach (mounted) avant dtre accd

    Un systme de fichier est attacher un point dattachement (mount point)

  • Chap 11 45

    (a) Existant. (b) Partition non-attache

  • Chap 11 46

    Point dattachement (mount point)

  • Chap 11 47

    Partage de fichiers

    Dsirable sur les rseaux

    Ncessite de protection

  • Chap 11 48

    Protection

    Types d accs permis lecture criture excution append (annexation) effacement listage: lister les noms et les attributs d un

    fichier

    Par qui

  • Chap 11 49

    Listes et groupes daccs - UNIX

    Modes d accs: R W E Trois classes d usager:

    propritaire groupe public

    demander l administrateur de crer un nouveau groupe avec un certain usager et un certain propritaire

    droit du propritaire de rgler les droits d accs et d ajouter des nouveaux

  • Listes et groupes daccsListes et groupes daccs Mode daccs: read, write, execute Trois catgories dusagers:

    RWXa) owner access 7 1 1 1

    RWXb) group access 6 1 1 0

    RWXc) others access 1 0 0 1

    Demander au gestionnaire de crer un groupe, disons G, et ajouter des usagers au groupe

    Pour un fichier particulier, disons jeux, dfinir un accsappropri

    owner group public

    chmod 761 jeux

    Changer le groupe dun fichierchgrp G jeux

  • Mthodes dallocation

  • Structures de systmes de fichiers

    Structure de fichiers: deux faons de voir un fichier: unit dallocation espace collection d informations relies

    Le systme de fichiers rside dans la mmoire secondaire: disques, rubans...

    File control block: structure de donnes contenant de l info sur un fichier

  • Trois mthodes dallocation de fichiers

    Allocation contiguAllocation enchaneAllocation indexe

  • Allocation contigu sur disquerpertoire

  • 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

    Moins pratique pour les autres mthodes

  • Allocation contigu

    Application des problmes et mthodes vus dans le chapitre de lalloc de mmoire contigu

    Les fichiers ne peuvent pas grandir Impossible dajouter au milieu Excution priodique dune compression

    (compaction) pour rcuprer lespace libre

  • Allocation enchane

    Le rpertoire contient l adresse du premier et dernier bloc, possibl. le nombre de blocs

    Chaque bloc contient un pointeur ladresse du prochain bloc:

    pointeurbloc =

  • Allocation enchanerpertoire

  • Tableau dallocation de fichiers

  • Avantages - inconvnients

    Pas de fragmentation externe - allocation de mmoire simple, pas besoin de compression

    L accs l intrieur d un fichier ne peut tre que squentiel Pas faon de trouver directement le 4me

    enregistrement... Nutilise pas la localit car les enregistrements

    seront parpills L intgrit des pointeurs est essentielle Les pointeurs gaspillent un peu d espace

  • Allocation indexe: semblable la pagination

    Tous les pointeurs sont regroups dans un tableau (index block)

    index table

  • Allocation indexe

    -1: pointeur nul

  • Allocation indexe

    la cration d un fichier, tous les pointeurs dans le tableau sont nil (-1)

    Chaque fois quun nouveau bloc doit tre allou, on trouve de l espace disponible et on ajoute un pointeur avec son adresse

  • Allocation indexe

    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

  • UNIX BSD: index niveaux (config. possible)

    12 blocs disque de 4K chaque

    1024 blocs de 4K chaque

    1024x1024 blocs de 4K

    Bloc de 4K contient 1024 pointeurs

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

  • Gestion de lespace libre

  • Gestion despace libre Solution 1: vecteur de bits (solution Macintosh, Windows 2000)

    0 1 2 n-1

    bit[i] =

    0 block[i] libre

    1 block[i] occup

    Exemple dun vecteur de bits o les blocs 3, 4, 5, 9, 10, 15, 16 sont occups: 00011100011000011

    Ladresse du premier bloc libre peut tre trouve par un simple calcul

  • Gestion despace libreSolution 2: Liste lie de mmoire libre (MS-DOS, Windows 9x)

    Tous les blocs de mmoire libre sont lis ensemble par des pointeurs

  • 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.

  • Table d'allocation (2)

    Les FATs sont stockes en mmoire tant que le SE est actif

  • Utilis pour grer les problmes lis aux deux autres mthodes.

    Similaire l'allocation lie mais tous les pointeurs sont stocks ensembles dans un bloc spcial (index block)

    Allocation indexe

  • Exemple

  • 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

  • Inodes (2)

    inode

    infos

    Blocs directs Indirection simple

    Indirection double

  • Rpertoires Structurs dans/par l'arborescence Chaque rpertoire peut contenir des fichiers et

    des rpertoires Un rpertoire est juste un fichier de type

    spcial Fonctions spciales pour accder un

    rpertoire Chaque entre de rpertoire contient le nom du

    fichier et son inode Le noyau recherche l'arborescence pour convertir

    le nom de fichier en un numro d'inode.

  • Directory diagram

    Table des inodes

    i1 Fichier1i2 Fichier2i3 Fichier3i4 fichier4

    Rpertoire

  • La cohrence

    Un systme de fichiers est cohrent sil est capable de restituer lutilisateur ses fichiers et ses rpertoires dans ltat o il les a laisss.

    Parmi les utilitaires dun systme dexploitation, on trouve un utilitaire de vrification et de correction des erreurs au niveau du systme de fichiers tel que scandisk pour Windows.

    Du point de vue pratique, ces utilitaires examinent les SDD du systme dexploitation et corrigent les erreurs quil peuvent y trouver.

    La vrification concerne les blocs appartenant aux fichiers ou libres, et ltat des rpertoires.

    Les tableaux qui suivent illustrent un cas dincohrence obtenu avec un utilitaire dUnix qui compte le nombre de fois o un bloc est trouv libre ou occup :

  • Numros des blocs0123456789101112131415Tableau des blocs libres1101021110011100Tableau des blocs utiliss0000200001100011Quand le SGF est cohrent, chaque bloc apparat une fois au maximum soit dans le premier tableau soit dans le second.

    Le second utilitaire vrifie les I-Nodes. Son rle consiste parcourir tous les rpertoires en partant de la racine et construire un tableau o le contenu dune case est le nombre de fois o un I-Node est rfrenc.

    Lorsquun fichier est partag par un lien physique son numro dI-Node apparat dans un autre rpertoire.

    Pour vrifier la cohrence, on compare la valeur obtenue avec le compteur de liens dans chaque I-Node.

  • 79

    Enregistrements logiques et physiquesUn enregistrement logique est un ensemble de donnes ayant unsens pour lutilisateur. Un fichier est une suite denregistrementslogiques.Un enregistrement physique, aussi appel bloc, est lunit destockage manipule par le systme. Avec les disques, cette unit destockage est un secteur ou un multiple de cette taille. On lappelleunit dallocation, parfois Cluster.Les blocs peuvent tre plus grands ou plus petits que les enre-gistrements logiques dcids par le programmeur. Le systme peutenregistrer plusieurs enregistrements logiques de petite taille dans unseul bloc, ou peut avoir besoin de plusieurs blocs pour enregistrer degrands enregistrements logiques.

    Gestion de fichiers

  • 80

    Les blocs physiques sont numrots par le systme et formentla base de toute structure de fichier.Le caractre (octet, byte) est la plus petite quantit dinformationmanipule par le systme. Un fichier, vu par le systme, est doncun ensemble de blocs de taille fixe, chacun tant constitu dunesuite de caractres.

    Gestion de fichiers

  • 81

    Le systme doit connatre lemplacement sur disque (numro decylindre, piste et secteur) de chaque bloc.La premire ide qui vient lesprit est de placer le fichier dansdes blocs conscutifs. Cette approche nest pas raliste comptetenu de laccroissement et des modifications des fichiers.On peut gagner en flexibilit en adoptant une structure de blocsdans laquelle chaque bloc contient un pointeur indiquant lempla-cement du bloc suivant. Cette approche facilite les modificationset laccroissement, mais alourdit la recherche dun enregistre-ment, qui devient squentielle.

    Gestion des ressources disques

  • 82

    Une possibilit est dutiliser une table de pointeurs contenantles indications ncessaires pour dterminer lemplacement dunbloc cherch.Il y a deux stratgies possibles : une table par unit de disque,ou une table par fichier. Dans le premier cas, il faut charger enmmoire la table contenant les pointeurs de tous les fichiers dudisque. Dans le second, on ne garde en mmoire que la tabledes fichiers ouverts.Un autre problme est celui de lallocation de lespace disque.Le systme tient jour des tables facilitant la recherche desecteurs disponibles. Deux possibilits sont courammentutilises : une table dallocation, ou un bitmap.

    Gestion des ressources disques

  • 83

    Table dallocation

    Piste Secteur Nombre de secteursallouables conscutivement

    0 0 50 10 31 3 52 0 32 7 6 ...

    Gestion des ressources disques

  • 84

    Bitmap

    Gestion des ressources disques

    0 1 2 3 4 5 6 7 8 9 10 11 120 0 0 0 0 0 1 1 1 1 1 0 0 01 1 1 1 0 0 0 0 0 1 1 1 1 12 0 0 0 1 1 1 1 0 0 0 0 0 03 0 0 0 0 1 1 1 1 0 0 1 1 14 1 1 0 0 1 1 0 0 0 0 1 0 05 1 1 1 1 0 0 0 0 0 0 0 1 1

    PistesSecteurs

    0 = libre, 1 = occup

  • 85

    Le lien entre le nom dun fichier et sa localisation sur disque estralis laide dune table de correspondance appele rpertoire(directory).On peut concevoir des rpertoires un seul niveau, i.e.contenant le nom de tous les fichiers du disque, ou plusieursniveaux, permettant chaque utilisateur dorganiser ses fichiersde faon hirarchique au moyen de sous-rpertoires.

    Rpertoires

  • 86

    Structure d un disque souple

    Piste0

    Secteur 123456789

    10 11 12 13 14 15 16 17 18

    BOOTFAT1 FAT1 FAT1 FAT1 FAT1 FAT1 FAT1 FAT1 FAT1 FAT2 FAT2 FAT2 FAT2 FAT2 FAT2 FAT2 FAT2

    1FAT2DIR DIR DIR DIR DIR DIR DIR DIR DIR DIR DIR DIR DIR DIR

    u.a. 2 u.a. 3 u.a. 4

    2u.a. 5

    678....

    Dbu t des donnes del'utilisateur

  • 87

    ExtensionAttribut

    RservNom(en ASCII)Statut

    Rserv Heure DateNo. dela1eu.a.

    Tailledu fichier

    0 7 9 15

    16 21 23 25 27 31

    Attributs:1 = Lecture seulement2 = Fichier cach4 = Fichier syst me8 = Nom du volume16 = Sous-r pertoire32 = Archive

  • 88

    Table dallocation de fichiers (FAT)

    FF FF

    Type dedisque

    No.de l'u.a.suivante dufichier ou:000=libreFF8-FFF=dernire u.a. d'un fichierFF7=non lisible

    0 1 2 3 4 5 6 7 8 9U.a. No.

    Dans la FAT originale de DOS, on navait que 12 bits par entre. Ceci limitait la taille du disque 4095 u.a.Par exemple, 4096 u.a. de 512 octets = 2 Mo.

  • 89

    On peut grossir la taille des units dallocation, mais la pertedespace par fichier augmente en consquence. En moyenne,cette perte est de 1/2 u.a. par fichier.

    Depuis ce temps, on a eu la FAT16, avec 16 bits par entre, etsur les disques durs on utilise aujourdhui la FAT32 avec 32 bitspar entre.Windows NT et Windows 2000 utilisent un nouveau systme defichiers beaucoup plus performant appel NTFS.

  • 90

    Unix a t dvelopp par Bell Laboratories partir de 1970 parKen Thompson et Dennis Ritchie. Ce systme a t missuccessivement sur PDP-7, 9 et 11, puis sur VAX, et enfin surdes machines base de microprocesseur MC68000. Aujourdhui,il fonctionne sur les stations de travail avec des micro-processeurs RISC.

    En l979, on en est rendu la version 7, la mieux connue. En1982 apparat le SYSTEM III, puis en 1983 le SYSTEM V suivantla politique de distribution commerciale de AT&T.

    Exemple : UNIX

  • 91

    Depuis 1991, le phnomne Linux a fait son apparition. Il s'agitd'un UNIX de domaine public pour micro-ordinateur initialementcrit par un tudiant en informatique finlandais, Linus Torvalds.

    Il a t port sur plusieurs plates-formes, notamment : Intel80x86, PowerPC, Alpha, Amiga, etc. Sa conception est moderneet c'est elle que nous examinerons ici.

    Exemple : UNIX

  • 92

    Sous Unix, un fichier est une squence linaire de mots de 8bits, de 1 octet 1000 Mo. L'usager visualise le fichier commeune squence linaire et peut atteindre n'importe quel octet dufichier soit de faon absolue, soit en spcifiant une positionrelative par rapport la position courante, ou encore par rapport la fin du fichier.

    partir d'une position quelconque, on peut lire un nombrequelconque d'octets.

    Exemple : UNIX

  • 93

    Exemple : UNIXUnit d'allocation : bloc de 512 octets 1024 octets pour le SYSTEM V et le systme 4.1 de Berkeley. 4096 octets pour la version 4.2,

    1 Ko 4 Ko pour Linux.

  • 94

    chaque fichier (y compris les rpertoires qui sont galementdes fichiers et les priphriques, que Unix considre comme desfichiers spciaux) on associe un inode (i-node ou index-node)dans lequel on peut trouver les informations suivantes :- le propritaire (user ID, group ID)- les protections (code de 16 bits)- les dates (cration, derniremodification)- les liens vers d'autres nuds-i(nombre de rpertoires qui contiennent ce fichier)- le type de fichier (donnes,rpertoire, priphrique)- les adresses disques des blocs dedonnes (13)- la longueur du fichier en octets.

    Exemple : UNIX

  • 95

    Exemple : UNIX

    0 Type et permissions Utilisateur (UID) Taille du fi chier8 Heure et da te d 'accs Heure et da te de cration

    16 Heure et da te de modification Heure et da te d 'effacement24 Groupe (GID) Compteur de liens Nb. de blocs32 Attributs du fichier Rserv40 1e bloc 2e bloc48 3e bloc 4e bloc56 5e bloc 6e bloc64 7e bloc 8e bloc72 9e bloc 10e bloc80 11e bloc 12e bloc88 Bloc de 1e indirection Bloc de 2e indirection96 Bloc de 3e indirection Version du fichier

    104 ACL du fichier ACL du rpertoire112 Adresse de fragment Rserv120 Rserv

    AC L = Ac cess Control List, pas enco re implment

  • 96

    Exemple : UNIX

    Dans Linux, la taille dun inode est de 128 octets.

    Dans le systme de fichiers Ext2 adopt par la plupart dessystmes Linux, le disque est divis en groupes de blocs.Chaque groupe de blocs contient un superbloc, des descripteursde groupe, un bitmap de blocs, un bitmap d'inodes, une tabled'inodes et des blocs de donnes. Les bitmaps occupent chacun1 bloc ou u.a. Ceci limite donc la taille des groupes 8 192blocs pour des blocs de 1 Ko. ou 32 768 blocs pour des blocs de4 Ko. Les inodes sont rpartis galement parmi les groupes deblocs. Le nombre d'inodes par groupe ne peut non plus dpasserles nombres ci-dessus.

  • 97

    Exemple : UNIX

    Bloc 0

    Blocdamorce

    Groupe de blocs 0 Groupe de blocs 1 Groupe de blocs n

    Chaque groupe de blocs contient une copie du superbloc, des inodes et des blocs de donnes :

    Super-bloc

    Descripteursde groupe

    Bitmapde blocs

    Bitmapd'inodes

    Tabled'inodes

    Blocs de donnes

  • 98

    Exemple : UNIX

    Le superbloc contient le nombre d'inodes et le nombre de blocsdans le systme de fichiers. Il contient aussi de l'information surle nombre d'inodes et de blocs par groupe de blocs.

    Le descripteur de groupe est une structure de 32 octets donnantle nombre de blocs dans le bitmap d'inodes, dans le bitmap deblocs et dans la table d'inodes, le nombre d'inodes libres, lenombre de blocs libres et le nombre de rpertoires. Cettedernire information est utile au systme qui tente rpartir lesrpertoires parmi les diffrents groupes de blocs. Il allouera doncun nouveau rpertoire dans le groupe qui en a le moins.

    Cette organisation permet aux inodes d'tre voisines des blocsauxquels elles font rfrence, et aux inodes d'tre voisines deleur inode de rpertoire, ce qui permet un accs plus rapide.

  • 99

    Exemple : UNIX

    Dans chaque inode, on trouve 15 adresses disque en termes deno de blocs. Les 12 premires adresses d'une inode permettentd'atteindre un espace donnes de :

    12 1024 octets = 12 288 octets.

    La 13e adresse disque pointe vers un autre bloc de 1024 octetsqui contient 256 adresses disque (4 octets par adresse), soit :

    256 1024 octets = 262144 octets.

    La 14e adresse disque pointe vers 256 blocs indirects(indirection d'ordre 2) qui pointent leur tour chacun vers 256adresses disques :

    256 256 1024 octets = 67108 864 octets.

  • 100

    Exemple : UNIX

    La 15e adresse disque est une indirection d'ordre 3, ce quipermet aux fichiers Linux d'atteindre des tailles avoisinant

    256 256 256 1024 octets = 17 179 869 184 octets.

    La taille maximale d'un tel fichier sera donc :

    17 179 869 184 + 67 108 864 + 262 144 + 12 288 Go.

    Cette implantation privilgie, du point de vue accs, les fichiersde petite taille (12 Ko). l'ouverture, le premier descripteur dufichier (inode) est copi en mmoire. Lorsqu'on franchit le cap de12 288 octets, le systme d'exploitation copie le premier blocindirect, et ainsi de suite.

  • 101

    Exemple : UNIXPour savoir o se trouve l'octet n d'un fichier,: si n < 12 288, il se trouve dans le bloc direct n / 1024 l'offset

    n mod 1024. si n >12 288 et n 262 144, il se trouve dans le bloc donn par

    la table de premire indirection (n - 12 288) / 1024 l'offset : (n - 12 288) mod 1024,

    etc.

  • 102

    Exemple : UNIX

    Ext2 tente de minimiser la fragmentation des fichiers lors del'allocation des blocs. Il cherche des blocs libres autour d'un bloccible. Si ce dernier est libre, il est allou. Sinon, on cherche unbloc libre dans les 32 entourant le bloc cible. Si on en trouve un,il est allou. Sinon, on cherche un bloc libre qui soit au moinsdans le mme groupe de blocs que le bloc cible. Il y a plusieursheuristiques pour la dfinition du bloc cible. L'un d'entre eux estde prendre le premier bloc libre dans le groupe de blocs o setrouve l'inode du fichier.

    Lorsqu'un bloc libre est trouv, on rserve les 8 blocs suivants,s'ils sont libres. Quand le fichier sera ferm, les blocs rservsrestants seront librs.

  • 103

    Exemple : UNIXRpertoires

    Les entres d'un rpertoire Linux sont de longueur variable parce queles noms de fichier peuvent aller de 1 caractre 255 caractres. Ils'agit en fait d'une liste chane, puisque le champ longueur de l'entre(rec_len), toujours arrondi vers le haut un multiple de 4, donne en faitla position de l'entre suivante.

    Octets 4 2 2 1 255rec_len name_len Nom du fichier

    No. d'inode longueur longueurde l'entre du nom

  • 104

    Exemple : UNIX

    inode rec_len name_len Entre

    3 12 1 . Pointeur vers lui-mme2 12 2 .. Pointeur vers son parent11 20 9 Fichier 1

    2017 12 4 Toto

    123 1 . 2120

    12 2 ..24

    2011 9 Fichier 144

    122017 4 Toto56

  • 105

    Exemple : UNIXRpertoires

    Chaque rpertoire ne peut avoir qu'un parent. Le rpertoireracine n'a pas de parent et son pointeur parent contient lui-mme, c.--d. le #2.

    Lorsqu'un fichier est effac, le numro d'inode de l'entre derpertoire est mis 0 et l'entre est limine de la liste chaneen augmentant le champ rec_len de l'entre prcdente pourqu'elle pointe l'entre suivante.

  • 2) le SGF dUNIX (1/3)

    * Structure hirarchique

    * 4 types de fichiers:ordinaires: suite octetscatalogues: nuds de larbre de cette structureliens: pointent vers fichierspciaux: accs aux priphriques

  • 2) le SGF dUNIX (2/3)

    Fichier et structure inode:

    1) Type (parmi les 4)2) Taille3) Date4) Permission5) Propritaire6) Localisation des donnes

  • Micro$oft en 1988

    * Mieux que la FAT du Dos/Windows

    * Mieux que HPFS de OS/2

    New Technology File System (NTFS)

    le SGF de Windows NT

    * Logical Cluster Numbers (LCN)* Virtual Cluster Number (VCN)

  • Master File Table...

    le SGF de Windows NT

  • File Record ...

    le SGF de Windows NT

    * Resident* Non Resident

    * Attribute header* Attribute value

  • File Record Sample...

    3) le SGF de Windows NT (4/5)

  • MFT in action !

    Mais elle ressemble quoi cette

    MST ? MFT ?

  • La comparaison...

  • Feature XFS UFS VxFS NTFS

    Max FS Size 18 million TB 1 TB 1 TB 2 TB

    Max File Size 9 million TB 1 TB 1 TB 2 TB

    File SpaceAllocation

    Extents Blocks Extents Extents

    Max. Extent Size 4 GB NA 64 MB Undocd

    Free SpaceMgmt

    Free extentsorganized by

    B+ trees

    Bitmap percylinder grp

    Bitmap perallocation unit

    Single bitmap

    Variable BlockSize?

    512 bytes to 64KB

    4KB or 8KB 512 bytes to64KB (4KB w/compression)

    Sparse FileSupport?

    Yes Yes No NT 5.0

    DirectoryOrganization

    B+ Tree Linear Hashed B+ tree

    Inode allocation Dynamic Static Dynamic Dynamic

    Crash Recovery Asynch.Journal

    Fsck* Synch. Journal Synch. Journal

    MaximumPerformance

    7GB/sec

    4GB/sec (singlefile)

    Not Available 1GB/sec Not Available

  • chapitre dernier (rsum)

    Structure de mmoire de masse (disques)

  • Disques magntiques

    Plats rigides couverts de matriaux d enregistrement magntique surface du disque divise en pistes (tracks)

    qui sont divises en secteurs le contrleur disque dtermine l`interaction

    logique entre l unit et l ordinateur

  • 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?

  • 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

    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

  • File dattente disque

    Dans un systme multiprogramm avec mmoire virtuelle, il y aura normalement une file dattente pour l unit disque

    Dans quel ordre choisir les requtes d oprations disques de faon minimiser les temps de recherche totaux

    Nous tudierons diffrents mthodes par rapport une file d attente 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 cote 1 unit

    de temps

  • Premier entr, premier sorti: FIFO

    Mouvement total: 640 cylindres = (98-53) + (183-98)+...En moyenne: 640/8 = 80

    axe de rotation45

    85

    14685

    108

    11059

    2

  • SSTF: Shortest Seek Time FirstPlus court dabord

    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! (v.

    manuel) Peut causer famine

  • SSTF: Plus court servi

    Mouvement total: 236 cylindres (680 pour le prcdent)En moyenne: 236/8 = 29.5 (80 pour le prcdent)

  • SCAN: lalgorithme de lascenseur La tte balaye le disque dans une

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

  • SCAN: l ascenseur

    Mouvement total: 208 cylindresEn moyenne: 208/8 = 26 (29.5 pour SSTF)

    direction

  • Problmes du SCAN

    Peu de travail faire aprs le renversement de direction

    Les requtes seront plus denses lautre extrmit

    Arrive inutilement jusqu 0

  • C-SCAN

    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 cercle!

    CC--LOOKLOOK La mme ide, mais au lieu de retourner au

    cylindre 0, retourner au premier cylindre qui a une requte

  • C-LOOK

    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

    retour: 169 (??)

    direction

  • C-LOOK avec direction initiale oppose

    direction

    Rsultats trs semblables:157 sans considrer le retour, 326 avec le retour

    Retour 169