3 4 Organisation s périphériques Il existe ux catégories périphérique : les périphériques en mo caractère (carte réseau, imprimante, terminaux, ban, etc.). l unité élementaire d échange est l octet (un caractère) Gestion s périphériques les sont souvent séquentielles : - lecture un octet puis le périphérique - écriture un octet sur le périphérique les périphériques en mo bloc (, tte, CD-ROM, ban), l unité élementaire d échange est un ensemble d octets taille fixe (un bloc) les sont souvent en accès direct : - lire une bloc à l adresse a sur le périphérique p - écrire une bloc à l adresse a sur le périphérique p 1 2 Entrée/Sortie par test d état Trois instructions CPU permettent lancer et tester les entrées/sorties : Fini Pret Err TEST CPU OUT Périphérique IN Gestion s entrées/sorties par attente active : Entrée/Sortie par interruption (ADM) Le contrôleur réalise les écritures et les lectures directement en mémoire (tampon ou buffer). La CPU est donc libérer du travail gestion. CPU IN Interruption Controleur Tampon Périphérique sortir(valeur c, périphérique p) = test p, R1 si (R1.pr^et = 0) alors erreur fin-si out c, p répéter test p, R1 jusqu à (R1.fini ou R1.erreur) Mémoire Si le contrôleur ne dispose pas d un tampon, on parle d entrées/sorties par vol cycles mémoire.
7 Entrée/Sortie gérée par un canal Un canal d (ou circuit d ) déroule les opérations d en exécutant un programme canal : CO RE Canal Mémoire Programme Canal Préparation d une et lancement d un programme canal par le système d exploitation : sortir(a, b :, p : périphérique) = choisir un canal c libre préparer le programme canal à l adresse α mem[α + 0] = écrire a sur p mem[α + 1] = émettre une interruption fin mem[α + 2] = écrire b sur p mem[α + 3] = émettre une interruption fin mem[α + 4] = stopper le programme fin préparation canal_execute c, α Les entrées/sorties se déroulent manière asynchrone. A tout moment le système est capable d interroger le canal (instruction canal test) ou d interrompre l exécution (canal stop). 5 6 Accès aux périphériques Accès aux périphériques via les canaux et les contrôleurs : Périph. Canal 0 Contr. CPU Périph. Canal 1 Contr. Périph. numéro--canal, numéro--controleur, numéro--périphérique
3 4 Notion fichier Définition : Un fichier est un ensemble d informations regroupées en vue leur utilisation et leur conservation. Définition : L organisation logique d un fichier décrit son contenu vu par les processus utilisateur. Le système gestion fichiers Définition : L organisation physique d un fichier décrit son implantation sur le support physique. Vu s programmes d application, les informations du fichier sont repérées par s adresses logiques. Vu du système d exploitation, ces informations ont une adresse physique sur le support. 1 2 Les fonctions du S.G.F. Fourniture s fonctions d accès au niveau logique qui réalisent : Utilisateur Co l application librairie standard le passage du niveau logique au niveau physique, le partage et la protection s informations. Interprétation s noms logiques Gestion la mémoire secondaire qui est une ressource partagée entre tous les fichiers. Système d Exploitation Réalisation s fonctions d accès logique Réalisations s opérations d Gestion la mémoire cache Pilotes périphériques Gestionnaire d interruptions S.G.F Moniteur d Matériel d Canal d / ADM Contrôleur 1 Contrôleur 2 Périph. 1 Périph. 2 Périph. 3 Périph. 4
Structure physique d un support Faces, pistes et secteurs Cylindres et autres... Lecture / écriture d un bloc Optimisation s requêtes Organisation s s Gestion du support Gestion et implantation du cache 1 2 Faces, pistes et secteurs Cylindres et autres... Un est composé ux faces. Les faces sont découpées en pistes ( 20 à 1500) elles-mêmes divisées en secteurs ( 8 à 32). La taille s secteurs varie 512 octets à 4 kilos-octet. Un support est composé plusieurs s. Axe rotation Support s têtes Un cylindre regroupe les pistes même numéro toutes les faces. secteur piste Un bloc est formé s secteurs même numéro dans un cylindre. Le bloc est l unité élémentaire d entrée/sortie. Chaque bloc i a une adresse physique composée } i div {{ N}, } i mod {{ N} cylindre secteur avec N = nombre secteurs par face L adresse d un secteur est un triplet : face f, piste p, secteur s. 3 Les blocs B i et B j sont proches ssi les numéros i et j sont proches. 4
7 8 Lecture / écriture d un bloc Pour une opération d il faut : - positionner les têtes sur le bon cylindre - attendre que le secteur soit sous la tête - lire ou écrire le bloc (les secteurs chaque face) temps d = temps latence + temps lecture d un secteur Pour diminuer le temps latence on applique un ordonnancement s requêtes s. FCFS (First Come First Served) on respecte l ordre d arrivée, Optimisation s requêtes FCFS SSTF SCAN LOOK 0 20 40 60 80 100 120 140 160 180 200 SSTF (Shortest Seek Time First) le plus proche en premier, SCAN (balayage ou Algorithme l ascenseur ) parcours entier du dans les ux sens (variante LOOK), C-SCAN (Circular SCAN) balayage dans un seul sens (variante C- LOOK). C SCAN C LOOK 5 6 Gestion du support Gestion du cache La gestion du support c est l allocation et la libération blocs ou zones (ensemble blocs contiguës). Un support est caractérisé par - l ensemble s blocs libres - l ensemble s blocs occupés - l ensemble s blocs défectueux Requêtes du S.G.F. Buffer Disque Ces ensembles sont représentés par un chaînage s blocs (couteux en ) un chaînage blocs d inx (l allocation zones est difficile) une table bits B telle que B k = 1 ssi le bloc k fait partie l ensemble. Exemple : Pour un 512 Go et un bloc 4 Ko, la table mesure ( 29 2 10 2 10 1 2 2 ) 2 10 2 3 = 229 2 15 = 214 ko = 2 4 mo = 16 mo En stockant les rniers blocs utilisés, le cache permet diminuer le nombre d entrée/sortie, réaliser s écritures asynchrones. La présence d un cache pose le problème la cohérence s informations. Ce problème est réglé par la mise à jour périodique du.
11 12 Implantation du cache Pour gérer ce cache le système utilise une version adaptée l algorithme L.R.U. Structure logique s s Partitionnement d un, Partitions physiques, Entrée Liste blocs LRU Sortie Partitions logiques, 6005 5004 2006 1202 0706 Répertoires simples, Répertoires arborescents, Table hachage s blocs en mémoire Une priorité associée à chaque bloc permet d affiner l algorithme L.R.U. 9 10 Partitionnement d un Un est divisé en partitions (ou partitions physiques). Chaque partition contient un système fichiers autonome. 1 2 3 Pseudo Partition Un pseudo partition (ou partition logique) regroupe plusieurs partitions physiques. Un système fichiers peut être implanté sur une pseudo partition. part. 1 part 2 part. 1 part 1 part 3 part 4 part 2 Pseudo Partition 1 Pseudo Partition 2 Dans chaque système fichiers, un répertoire (ou catalogue) contient la liste s fichiers se trouvant dans la partition. Sécurité accrue Diminution la fragmentation interne Possibilité placer plusieurs systèmes Part 1 P2 Partition 1 Partition 1 Partition 2 Disque 1 Disque 2 Disque 3 La pseudo partition est une ressource virtuelle.
Pseudo Partition (augmentation) RAID linear La pseudo partition est un assemblage partitions logiques. Pseudo Partition (répartition) ou RAID 0 Les blocs sont répartis sur tous les s dans un souci d efficacité. Pseudo Partition Pseudo Partition Partition Partition Partition Disque 1 Disque 2 Disque 3 Partition Partition Partition Disque 1 Disque 2 Disque 3 La partition virtuelle est égale à la somme s partitions physiques. Cette architecture est aussi appelée RAID linear (Redundant Array of Inpennt Disks). Pseudo Partition (mirroir) RAID 1 Dans un souçi sécurité, les blocs sont dupliqués sur plusieurs s. 13 Contrainte : toutes les partitions physiques ont la même taille (il est souhaitable que les s soient même qualité). On parle aussi RAID 0 ou stripping. Pseudo Partition (combinaison) Une pseudo partition peut aussi être un assemblage pseudo partitions. 14 Pseudo Partition mirroir Pseudo Partition Pseudo Partition répartition Pseudo Partition répartition Partition Partition Partition Disque 1 Disque 2 Disque 3 Partition Partition Partition Partition Partition Contrainte : toutes les partitions physiques ont la même taille (il est souhaitable que les s soient même qualité). Disque 1 Disque 2 Disque 3 Disque 4 Disque 5 On parle aussi RAID 1 ou mirroring. 15 16
19 20 Pseudo Partition (aspects dynamiques) Organisation en RAID 4 La configuration peut peut être modifiée dynamiquement : B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 Pseudo Partition répartition Pseudo Partition répartition Bloc 1 Bloc 2 Bloc 3 Parité 1,2,3 Bloc 4 Bloc 5 Bloc 6 Parité 4,5,6 Bloc 7 Bloc 8 Bloc 9 Parité 7,8,9 Bloc 10 Bloc 11 Bloc 12 Parité 10-12 Disque 1 Disque 2 Disque 3 Disque 4 Pseudo Partition répartition Pseudo Partition répartition Caractéristiques : - Taille du RAID = (n 1) taille d un - Toutes les partitions physiques ont la même taille - Au moins trois s 17 18 Organisation en RAID 5 Organisation en RAID 10 ou 1+0 B1 B2 B3 B4 Combinaison d un RAID 1 sur plusieurs RAID 0 : B5 B6 B7 B8 B9 B10 B11 B12 RAID 1 (mirroring) RAID 0 (stripping) RAID 0 (stripping) RAID 0 (stripping) Bloc 1 Bloc 2 Bloc 3 Parité 1,2,3 Bloc 4 Bloc 5 Parité 4,5,6 Bloc 6 Bloc 7 Parité 7,8,9 Bloc 8 Bloc 9 Parité 10-12 Bloc 10 Bloc 11 Bloc 12 Disque 1 Disque 2 Disque 3 Disque 4 Mêmes caractéristiques que le RAID 4. RAID 6 : - n s parité (souvent ux) - Accepte la défaillance plusieurs s (en fonction n) Autres combinaisons : RAID 01 ou 0+1 RAID 50 ou 5+0 : RAID 5 sur la répartition : efficacité RAID 51 ou 5+1 : RAID 5 sur du mirroir : sécurité
Répertoires simples Répertoires arborescents Les répertoires uniques constituent le premier moyen pour représenter un ensemble fichier. Les répertoires à ux niveaux font intervenir l utilisateur comme clé d accès. racine F3 racine F3 user1 user2 user3 F1 F2 Les fichiers ont un chemin d accès et le système d exploitation définit un répertoire par défaut. F1 F2 Master File Definition (MFD) User File Definition, (UFD) codage s répertoires : liste linéaire s couples (nom, référence), représentation par hash-coding, utilisation d une mémoire cache. 21 22
Organisation logique s fichiers Il existe ux cas figure : - La structure logique s fichiers est connue (Macintosh, IBM,...), + les possibilités sont plus importantes le système est plus complexe Le système gestion fichiers - Les fichiers vus comme s flots d octets (Windows, Unix,...). + le système est plus simple + portabilité du système + portabilité s applications pas d assurance sur la nature s fichiers Un fichier est constitué d enregistrements. Chaque enregistrement est formé d attributs. 1 2 Organisation logique : l exemple MacOS L accès séquentiel "Data Fork" ID 123 ID 320 ID 1100 ID 500 ID 354 ID 400 ressource "ICON" Le fichier se présente comme un ensemble ordonné d enregistrements. On dispose d un pointeur ptr vers l un s enregistrements. ID 50 ressource "WIND" E1 E2 E3..... ID 0 ID 1 ressource "CODE" "Ressource Fork" ptr Un fichier MacOS Les fonctions d accès sont : Les fonctions d accès : lire ressource(type, id, var r : ressource) écrire ressource(type, id, r : ressource) détruire ressource(type, id) lire(f : fichier, var e : enregistrement) écrire(var F : fichier, e : enregistrement) ajouter(var F : fichier, e : enregistrement) tronquer(var F : fichier) avancer(var F : fichier, déplacement : entier) 3 4
7 8 L accès direct par rang Un fichier à accès direct par rang est un tableau d enregistrements repérés par leur position. Caractéristiques : On dispose d un pointeur ptr vers l un s enregistrements L adresse logique est représentée par le rang Le niveau logique est contiguë Les fonctions d accès sont : lire(f : fichier, var e : enregistrement) écrire(f : fichier, e : enregistrement) insérer(f : fichier, e : enregistrement) se déplacer(var F : fichier, position : entier) tronquer(var F : fichier) L accès direct par clé Un fichier à accès direct par clé est un ensemble couples clé, enregistrement Caractéristiques : La clé intifie l enregistrement. Une clé unique intifie au plus un enregistrement. Une clé unique peut servir d adresse logique. Les fonctions d accès sont : lire(f : fichier, clé : donnée, var e : enregistrement) ajouter(var F : fichier, clé : donnée, e : enregistrement) supprimer(var F : fichier, clé : donnée) remplacer(var F : fichier, clé : donnée, e : enregistrement) 5 6 Accès direct par adressage dispersé (hash-coding) Soit f une fonction dispersion définie sur l ensemble s clés C : c C, nous avons f(c) N et 1 f(c) taille maximum d un fichier On appel collision, ux clés c 1 et c 2 différentes telles que f(c 1 ) = f(c 2 ). Accès direct par inxation Mise en place d un inx qui contient l ensemble s clés : inx donées article 2 c1 fichier = { (c1,article1), (c2,article2), (c3,article3),...} article 2 c1 c2 article 1 c2 f article 1 c3 article 3 c3 article 3 La recherche d un enregistrement nécessite en moyenne Inconvénients : - il est difficile choisir la fonction dispersion, - perte place ou fichier à trous, - réorganisation périodique du fichier (diminution s collisions) - n/2 lectures si l inx n est pas trié, - log 2 n lectures si l inx est trié. L inx peut être partiellement chargé en mémoire.
Le type s fichiers Le système peut associer un type à chaque fichier. Ce type précise le contenu et la structure logique du fichier. Avantages : - définition d opérations partielles, - optimiser le codage et le traitement, - meilleur sécurité. Inconvénients : - Quel type pour quel fichier? - manque portabilité s applications, - lourur du système d exploitation Le type s fichiers (2) Il existe au moins trois types fichier : Les répertoires : chercher(nom : chaîne ) : fichier ajouter(nom : chaîne, e : fichier) supprimer(nom : chaîne) alias(nom1 : chaîne, nom2 : chaîne) Les exécutables : exécuter(e : exécutable) chercher(e : exécutable, fonction : chaîne) Les fichiers 9 10 Organisation physique s fichiers Descripteur fichier Implantation physique d un fichier Les fichiers séquentiels inxés Protection s fichiers Types système fichiers Structure d un scripteur fichier Un scripteur fichier est une structure donnée du système d exploitation stockée sur (dans la table s scripteurs). un fichier = numéro--périphérique, numéro--scripteur Le scripteur contient s informations sur : le type du fichier (fichier, exécutable, répertoire,...), l organisation logique (taille et structure s enregistrements), les statistiques d utilisation (date rnière modification, nombre d utilisations, intervalle temps entre ux utilisations), les permissions d utilisation (ACL pour Access Control List). l implantation physique du fichier. 11 Le nom d un fichier n est généralement pas stocké dans le scripteur mais dans les répartoires. 12
15 16 Implantation contiguë Implantation par blocs chaînés Niveau logique Niveau physique Niveau logique Niveau physique B0 B0 B1 B2 B3 B4 B4 B0 B1 B2 B3 B1 B2 B2 B0 B1 Avantages : - Le scripteur contient l adresse du premier bloc, - le passage logique physique est simple, - l accès séquentiel ou direct est rapi. Inconvénients : - perte place par fragmentation externe, - obligation connaître la taille du fichier. Tables d allocation scripteur 13 Caractéristiques : le scripteur contient l adresse physique du premier et du rnier bloc logique, les accès séquentiels sont efficaces (au déplacement la tête lecture près), les accès directs sont (presque) impossibles. Tables à plusieurs niveaux scripteur 14 n Table secondaire n Table d allocation Table principale suivante Table principale Table secondaire Caractéristiques : Table d allocation suivante - Une table est stockée dans un bloc - Les accès séquentiels sont efficaces - Les accès directs sont améliorés - La taille s fichiers est limitée Caractéristiques : - Chaque table est un bloc - il y a au maximum 2 ou 3 niveaux - les accès directs sont rapis - on peut insérer s enregistrements - on peut avoir s fichiers à trous - Codage couteux pour les petits fichiers
19 20 Comparaisons Un exemple : la FAT Microsoft Avec un bloc 1 Ko et 250 références par blocs, on obtient les résultats suivants (en nombre d ) : FAT Disque MS DOS numéro blocs table à table à 2 niveaux bloc chainés un niveau 2 niveaux avec cache 1 2 2 3 3 10 11 2 3 1 100 101 2 3 1 1000 1001 3 3 2 10000 10001 39 3 2 100 250 500 Dans la gestion du cache les blocs d inx seront prioritaires. Répertoire "Hello" 100 Hello = {100, 500, 250} 17 18 Un exemple : UNIX Les fichiers séquentiels inxés 15 scripteur B154 C211 inx primaire A128 B010 débor. B200 C100 zone déborment Table d allocation niveau 3 débor. inx secondaire zone déborment Les blocs d inx et sont rangés sur le même cylindre. Une réorganisation périodique est possible (voir souhaitable) si les zones déborment sont trop importantes.
Protection s fichiers A chaque man, les droits, limites et protections sont vérifiés. Pour sécuriser l organisation physique s fichiers, le SGF ajoute s informations redondantes : - triple chaînage s blocs (père et frères) - duplication la table s scripteurs - duplication la FAT Système fichiers journalisé Un système fichier est une structure persistante et continuellement modifiée par nombreux processus. Objectif : pouvoir reconstruire ou réparer un système fichiers incohérent (chkdsk ou fsck). Ces sécurités ne dispensent pas la sauvegar périodique s fichiers : - sauvegar incrémentale, - sauvegar totale, - sauvegar FIFO sur N jours. 21 22 Cohérence du SGF Le SGF sur n est cohérent qu à l arret s opérations d entrée/sortie. Mise en cohérence Mise en cohérence En cas d arret intempestif dans la zone rouge : Entrée/sortie via un journal Mise en place d un journal : espace contiguë stockage sur (fichier et/ou partition). Les opérations d écritures se réalisent dans le journal : Mise à jour atomique - perte d exploitation, - redémarrage du serveur, - réparation s s (plusieurs heures), - récupération s perdus (à partir la sauvegar), - mise en exploitation. Journal 23 Le journal est périodiquement vidé manière atomatique afin garantir la cohérence du SGF. 24
Mise à jour atomique Structure du S.G.F La mise à jour atomique est réalisée par la construction d une nouvelle version : 1 1 1 2 3 4 2 2 3 4 4 5 6 7 8 5 5 6 7 8 8 C est la base d un SGF : - avec clichés (snapshots), - qui maintient plusieurs versions d un fichier 25 26 FILE* fa FILE* fb Décomposition d une opération Buffer Buffer Processus A Infos Processus B Infos Buffer système pointeur Table s fichiers du processus A Buffer Système pointeur Table s fichiers du processus B Nb Utilis Taille Implant Table s scripteurs en mémoire 27 28
Utilisateur Système Matériel SVC read( ) Décomposition lirebloc(disk, 100) lirebloc(disk, 150) Cache lancer(disk, 150) P( sem[disk] ) Cache ATTENTE D DEROULEMENT DE L ENTREE SORTIE Interruption V( sem[disk] ) lirebloc(disk, 250) RTI Cache 29