Introduction aux syst`emes d`exploitation et aux structures de fichiers

publicité
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
Téléchargement