Plan du cours - Introduction - Emergence et évolution des systèmes d exploitation - Système de fichiers. introduction. FAT. NTFS - Ordonnancement Systèmes d exploitation 1ère année p. 1
système fichiers utilité - stocker des informations de manière permanente - nommer des informations - partager des informations sous forme de fichiers sur une partition : 1 système de fichiers par partition Systèmes d exploitation 1ère année p. 2
système fichiers quelques systèmes de fichiers? FAT, NTFS, EXT,... Systèmes d exploitation 1ère année p. 3
système fichiers deux vues d un système de fichiers - quel service? (vue utilisateur du service) - comment est-il réalisé? ( mise en oeuvre du service) "comment" : la "vue système" Systèmes d exploitation 1ère année p. 4
fichiers - vue utilisateur le point de vue utilisateur : - noms de fichiers - structure des données - type de fichier - répertoire, fichiers texte/binaires,... - type d accès - séquentiel, aléatoire - attributs - opérations (appels système) - organisation - notion de répertoires/catalogues -... Systèmes d exploitation 1ère année p. 5
fichiers - vue utilisateur nom de fichiers le nom sert à retrouver le fichier règles ou conventions de nommage : caractères permis, nombre de caractères, suffixe... Systèmes d exploitation 1ère année p. 6
fichiers - vue utilisateur structure des données - suite d octets : fichiers ordinaires - suite d enregistrements : répertoires FAT,MFT(NTFS) - arborescence : répertoires NTFS (index) [TNB] Systèmes d exploitation 1ère année p. 7
fichiers - vue utilisateur type de fichier - fichier ordinaire (texte, binaire) (.java,.class) - répertoire - lien -... Systèmes d exploitation 1ère année p. 8
fichiers - vue utilisateur type d accès - séquentiel - aléatoire peut-on modifier la position courante de lecture écriture dans le fichier? en linux cela est fait par l Appel Système lseek man 2 lseek... Systèmes d exploitation 1ère année p. 9
fichiers - vue utilisateur attributs informations complémentaires : métadonnées - mot de passe, droits - créateur, propriétaire - archivage (backups), caché - tailles (logique, physique, maximum) - dates (création, modification, accès) - encrypté, comprimé -... Systèmes d exploitation 1ère année p. 10
fichiers - vue utilisateur l organisation en répertoires/catalogues linux, DOS, Windows ont choisi l organisation hiérarchique Systèmes d exploitation 1ère année p. 11
fichiers - vue utilisateur répertoires hiérarchiques - chemin absolu - depuis la racine (unique) - chemin relatif - depuis le répertoire courant Systèmes d exploitation 1ère année p. 12
fichiers -Questions - Comment voir les métadonnées d un fichier en linux? - Comment voir les métadonnées d un fichier en windows? - Comment modifier certaines de ces métadonnées? - Quelle opération écrit dans un répertoire? Systèmes d exploitation 1ère année p. 13
fichiers - mise en oeuvre réalisation du service organiser la partition : - fichiers - répertoires (organisation, métadonnées) - métadonnées des fichiers - métadonnées du système de fichiers (données hors fichier, fichiers remarquables : taille secteurs, localisation de la racine, taille des blocs,...) Systèmes d exploitation 1ère année p. 14
fichiers - mise en oeuvre rôle d un système de fichiers - allocation de l espace - implantation des fichiers et répertoires - gestion de l espace disque (espace libre,quotas,taille blocs,...) - fiabilité - performance - encryption, compactage -... Systèmes d exploitation 1ère année p. 15
fichiers - mise en oeuvre Un problème fondamental allocation de l espace aux fichiers/répertoires - allocation contiguë - allocation par blocs Systèmes d exploitation 1ère année p. 16
fichiers - allocation contiguë allocation contiguë Les données d un fichier sont consécutives sur la partition la lecture est rapide Systèmes d exploitation 1ère année p. 17
fichiers - allocation contiguë Tout fichier démarre à une frontière de secteur La taille du secteur est une métadonnée du Système de Fichiers Métadonnées du fichier pour sa localisation : - n de secteur de début - longueur en bytes Systèmes d exploitation 1ère année p. 18
fichiers - allocation contiguë Comment traduire "longueur en bytes" en "nombre de secteurs utilisés"? Remarquons l espace perdu dans le dernier bloc : fragmentation interne Systèmes d exploitation 1ère année p. 19
fichiers - allocation contiguë localiser le byte N (N<longueur)? - n de secteur qui contient le byte N? - position du byte N dans le secteur? n secteur = n secteur début + N DIV TailleSecteur position dans le secteur = N MOD TailleSecteur Systèmes d exploitation 1ère année p. 20
fichiers - allocation contiguë Et si on modifie un peu les fichiers? - supprimer D,F - augmenter la taille de B? - ajouter des données au milieu de A? Systèmes d exploitation 1ère année p. 21
fichiers - allocation contiguë avantages - inconvénients (+) rapidité d accès en lecture (-) lenteur inadmissible suite à des modifications (fragmentation externe) -> ne convient pas à tout système de fichiers! Systèmes d exploitation 1ère année p. 22
fichiers - allocation par blocs allocation par blocs Fichiers et espace disque découpés en blocs de taille fixe - bloc = nombre entier de secteurs (cluster windows) - bloc = unité d allocation et d accès logique - l espace alloué aux fichiers est non nécessairement contigu - ajout/suppression de données plus aisé Systèmes d exploitation 1ère année p. 23
fichiers - allocation par blocs - Tout bloc physique est numéroté et commence à la frontière d un secteur - Le premier bloc ne démarre pas toujours au secteur 0 - Le n de bloc physique détermine son adresse (n de secteur) - Le bloc physique n P commence au secteur n "début du bloc 0" + P x "nb secteurs par bloc" - Le byte N d un fichier se trouve dans son bloc n F=(N DIV TailleBloc) Systèmes d exploitation 1ère année p. 24
fichiers - allocation par blocs métadonnées du système de fichiers : - taille du secteur - nombre de secteurs par bloc taille du bloc - début du bloc 0 Systèmes d exploitation 1ère année p. 25
fichiers - allocation par blocs Tout fichier démarre à une frontière de bloc Début et longueur ne suffisent plus à localiser le byte N -> Il faut en plus, localiser chaque bloc du fichier : - blocs chainés - table d index Systèmes d exploitation 1ère année p. 26
fichiers - allocation par blocs implantation des fichiers : blocs chainés le bloc F du fichier est renseigné dans le bloc F-1 du fichier Systèmes d exploitation 1ère année p. 27
fichiers - allocation par blocs métadonnées nécessaires pour localiser? : système de fichiers : - taille du secteur - nombre de secteurs par bloc taille du bloc - début du bloc 0 fichier : - bloc physique associé au premier bloc - longueur Systèmes d exploitation 1ère année p. 28
fichiers - allocation par blocs localiser le byte N? -> traduire : (byte N) en position dans le secteur n x 1. bloc du fichier contenant le byte N : F = N DIV taillebloc 2. blocphysique correspondant à F : P = (*) 3. premier secteur du bloc physique P = P x nbsecteursparbloc (+ début du bloc 0) 4. x = 3 + ((N MOD taillebloc) DIV taillesecteur) 5. position du byte N dans x = N MOD taillesecteur (*) parcourir les F-1 blocs sur la partition pour localiser le bloc F du fichier Systèmes d exploitation 1ère année p. 29
fichiers - allocation par blocs pour localiser le bloc n F du fichier il faut avoir lu le F-1 et donc le F-2,..., et donc le 0 -> on perd l avantage de l accès aléatoire! Systèmes d exploitation 1ère année p. 30
fichiers - allocation par blocs implantation des fichier : table d index un index est également stocké sur la partition il permet de chainer les blocs alloués à un fichier Systèmes d exploitation 1ère année p. 31
fichiers - allocation par blocs table d index <-> une entrée par bloc de la partition l entrée 10 de l index donne le bloc suivant de A (11) la valeur -1 marque la fin du fichier reconstituons le fichier A à partit de son premier bloc physique... Systèmes d exploitation 1ère année p. 32
fichiers - allocation par blocs Les blocs d un même fichier sont éparpillés : pour un accès rapide : la table d index est chargée en RAM au démarrage! Systèmes d exploitation 1ère année p. 33
fichiers - allocation par blocs métadonnées nécessaires pour localiser? : système de fichiers : - taille du secteur - nombre de secteurs par bloc taille du bloc - début du bloc 0 - table d index du système de fichiers fichier : - bloc physique associé au premier bloc - longueur Systèmes d exploitation 1ère année p. 34
fichiers - allocation par blocs localiser le byte N? -> traduire : (byte N) en position dans le secteur n x 1. bloc du fichier contenant le byte N : F = N DIV taillebloc 2. blocphysique correspondant à F : P = (*) 3. premier secteur du bloc = P x nbsecteursparbloc + début du bloc 0 4. x = 3 + ((N MOD taillebloc) DIV taillesecteur) 5. position du byte N dans x = N MOD taillesecteur (*) P est trouvé grâce à l index Systèmes d exploitation 1ère année p. 35
fichiers - exemple si début vaut 22, N vaut 3000 et un bloc mesure 1Kb, dans l exemple on aura : 1. bloc fichier? F = 3000b DIV 1Kb = 2 2. bloc partition? P = bloc 15 3. premier secteur du bloc 15? 15 x 2 (+ n secteur de début du bloc 0) 4. position du secteur sur la partition :3 + (3000b MOD 1Kb) DIV 512 5. décalage en bytes dans le dernier secteur : 3000 MOD 512 le byte N est dans le secteur 4 à la position 5 Systèmes d exploitation 1ère année p. 36
fichiers - taille des blocs fragmentation interne le dernier bloc n est pas toujours entièrement rempli fragmentation interne = espace perdu à l intérieur des derniers blocs des fichiers choisir la taille à donner aux blocs : un choix stratégique - grands blocs -> perte de place - petits blocs -> perte de temps exemple : bloc = 8 secteurs (4k) Systèmes d exploitation 1ère année p. 37
fichiers - taille des blocs taille des blocs - taille d 1 bloc = n secteurs partition (n >= 1) - choix de n fait au formatage y-a-t-il une meilleure valeur pour n? le bon compromis dépend de l utilisation Systèmes d exploitation 1ère année p. 38
fichiers - taille des blocs 2 à 4 Kb = taille moyenne des fichiers sur un système Unix [TNB] [TNB] avec des blocs de 8Kb 1/2 de l espace disque est perdu! avec des blocs de 64Kb 9/10! Systèmes d exploitation 1ère année p. 39
fichiers - taille des blocs "avec des partitions > 1Tb il peut être préférable d augmenter la taille des blocs à 64Kb et d accepter un gaspillage de l espace disque" [TNB] dans ce cas, 1Tb -> +/-100 Gb utiles! Systèmes d exploitation 1ère année p. 40
fichiers - taille des blocs fragmentation des fichiers allocation par blocs -> fichiers fragmentés (blocs éparpillés) -> beaucoup de déplacements des têtes -> LENT -> solutions : - réorganisation systèmatique (adopté par linux) - outils de défragmentation fournis (Xp, vista) Systèmes d exploitation 1ère année p. 41
fichiers - répertoires implantation des fichiers : répertoires répertoire : fichier particulier qui contient quelques métadonnées des fichiers - permet de localiser les fichiers qu il "contient" - permet de traduire chemin -> adresses sur la partition Systèmes d exploitation 1ère année p. 42
fichiers - répertoires exemple de métadonnées d un fichier : - nom - adresse de début (n du premier bloc) - longueur du fichier - attributs divers - n de l entrée de la MFT (NTFS) - n d inode (EXT) -... Systèmes d exploitation 1ère année p. 43
fichiers - répertoires localiser un fichier? -> lire le répertoire parent un répertoire est un type de fichier localiser un répertoire? -> idem localiser le répertoire racine? ->? ext, FAT, NTFS utilisent des conventions - position fixe (EXT : inode 2) - position calculable ou renseignée à un endroit calculable (FAT, NTFS) Systèmes d exploitation 1ère année p. 44
fichiers - répertoires lire le fichier /home/mba/test en linux demande de localiser, et lire 4 fichiers : / / home / home / mba Ce dernier donnera les informations qui permettent de localiser et finalement lire le fichier test Systèmes d exploitation 1ère année p. 45
fichiers - open / close appel système open en linux open localise un fichier avant toute lecture/écriture open mémorise l emplacement dans : la table des descripteurs de fichiers ouverts en RAM et retourne l indice de la description du fichier dans la table Systèmes d exploitation 1ère année p. 46
fichiers - open / close la position courante est également mémorisée dans la table et mise à jour par les autres appels système (read, seek, write,...) l appel système close libère l entrée de la table Systèmes d exploitation 1ère année p. 47
fichiers - Questions - en allocation de l espace par blocs, une plus grande taille de bloc augmente la fragmentation externe[v-f] - localiser un répertoire demande de lire le parent [V-F] - quelle différence y a-t-il entre fragmentation externe - interne - des fichiers? - localisez les bytes n 0, 512, 1702, 2500 d un fichier qui démarre au secteur 204 et qui contient 1900 bytes en allocation continue - soit un fichier de 10360 bytes et une taille de bloc de 4Kb en allocation par blocs. Combien de blocs occupe ce fichier? Quel pourcentage du dernier bloc est utilisé? Systèmes d exploitation 1ère année p. 48
fichiers - Questions étant donné la table d index suivante et des blocs de 1Kb : 8 10-1... localisez le byte 1400 (n secteur-position) dans le fichier qui démarre au bloc 4 Systèmes d exploitation 1ère année p. 49