Introduction aux systèmes d’exploitation et aux structures de fichiers Email: [email protected] URL: http: http: //www.montefiore.ulg.ac.be/~pw/ //www.montefiore.ulg.ac.be/ ~pw/cours/fichiers.html Pierre Wolper Introduction aux systèmes d’exploitation Structure d’une machine • L’unité centrale et la mémoire • Les périphériques – Exemple d’une imprimante – Exemple d’un disque – Le DMA (direct memory acces) • L’interruption Gestion des entrées/sorties : écriture d’un caractère en utilisant le “busy waiting” WHILE (write interface status = busy) DO; write interface register := character; write interface status := busy; Lecture d’un caractère en utilisant le “busy waiting” WHILE (read interface status = empty) DO; character:=read interface register; read interface status := empty; Transfert par DMA en utilisant le “busy waiting” WHILE (interface reg status = busy) DO; interface reg memaddr:=memaddr; interface reg blocaddr:=baddr; interface reg operation:=op; interface reg status:= busy; Le rôle d’un système d’exploitation Tâches à réaliser : • L’exécution des programmes. • La gestion des entrées/sorties et des interruptions. • L’utilisation des périphériques de stockage. • La détection des erreurs et la protection. Problèmes utilisateurs multiples : • Le partage de la mémoire. • Le partage de l’unité centrale. • Le partage des périphériques. • La protection. L’utilisation d’un système • Les appels au système – Contrôle des programmes – Opérations d’entrée/sortie – Opérations de manipulation de fichiers • L’interpréteur de commandes – faire tourner des programmes, les interrompre, les redémarrer – manipuler des fichiers – obtenir de l’information sur l’état du système • Les programmes utilitaires Organisation d’un système d’exploitation • Parallélisme P1 P2 P3 Temps • Notion de processus • Communication entre processus - Exemple : le problème de l’exclusion mutuelle P1 P2 partie n’utilisant pas les données partagées l1 : l2 : début de l’utilisation des données partagées partie n’utilisant pas les données partagées m1 : début de l’utilisation des données partagées ... ... fin de l’utilisation des données partagées fin de l’utilisation des données partagées suite du programme m2 : suite du programme Premier essai n := false; P1 P2 partie n’utilisant pas les données partagées partie n’utilisant pas les données partagées WHILE n DO; n :=true; l1 : début de l’utilisation des données partagées WHILE n DO; n :=true; m1 : ... ... fin de l’utilisation des données partagées fin de l’utilisation des données partagées n :=false; l2 : début de l’utilisation des données partagées suite du programme n :=false; m2 : suite du programme L’instruction test and set function test and set (var target:boolean): boolean begin test and set := target; target := true; end; Les opérations de la fonction test and set sont indivisibles! Une solution utilisant test and set n := false; P1 l1 : P2 partie n’utilisant pas les données partagées partie n’utilisant pas les données partagées WHILE test and set(n) DO; WHILE test and set(n) DO; début de l’utilisation des données partagées m1 : ... ... fin de l’utilisation des données partagées fin de l’utilisation des données partagées n :=false; l2 : début de l’utilisation des données partagées suite du programme n :=false; m2 : suite du programme Caractéristiques des périphériques de stockage Les bandes magnétiques • Support exploité pour l’archivage • technologies linéaire ou hélicoı̈dale Balayage linéaire Balayage linéaire défilement Balayage hélicoı̈dal Balayage hélicoı̈dal défilement • Information organisée en “blocs” • Utilisation de codes de correction d’erreurs • Utilisation de la compression. Caractéristiques : • Capacité de quelques Gbytes par bande à quelques dizaines de Gbytes par bande. • Vitesse de transfert de quelques Mbytes par seconde. • Chargeurs multibandes automatiques Les disques magnétiques • Nombre de surfaces: de 1 à 30 • Nombre de pistes par surface : de 1000 à 5000 • Capacité de stockage d’une piste : 50 à 300 secteurs de 512 bytes (variable selon les pistes) Exemple • Nombre de surfaces : 24 • Nombre de pistes/surface : 5000 • 200 secteurs de 512 bytes • ⇒ Capacité totale : 24 × 5000 × 200 × 512 = 12 Gbytes Blocs (unité de transfert): 1 ou plusieurs secteurs Performances • Temps moyen de déplacement des têtes: 5 à 10 ms • Vitesse de rotation: 6000 à 10000 tours/min • Temps de lecture/écriture d’un bloc: 0,02 à 0.1 ms • Taux de transferts : 2 à 30 MBytes/s Exemple • Temps maximum de déplacement des têtes : 12 ms • temps de lecture : 0,02 ms • Vitesse de rotation : 6000 tours/min • ⇒ Temps de latence maximale : 10ms • ⇒ Temps maximum de lecture/écriture d’un bloc : 22,02 ms