Les disques |
L'information rangée sur disque est rangée sur une surface de 1 ou plusieurs plateaux. L'arrangement est tel que l'information est rangée dans des pistes successives sur la surface du disque. Chaque piste est souvent divisé en un nombre de secteurs. Un secteur est la plus petite portion adressable du disque.
Quand une lecture est lancée pour un octet particulier se trouvant sur un fichier disque, l'OS trouve la surface concernée, la piste puis le secteur. Ensuite il lit tout le secteur dans une zone spéciale dans la RAM appelée buffer, puis détermine exactement l'octet désiré.
Si l'unité de disque utilise plusieurs plateaux, on l'appelle disk pack. Les pistes qui sont directement dessous et dessus forme un cylindre (colonne). Toutes les informations sur un même cylindre peuvent être accéder sans bouger le bras qui tient les têtes de lectures/écriture. Le mouvement de ce bras est appelé recherche ( Seeking ). Ce mouvement de bras constitue la partie la plus lente de la lecture d'une information à partir du disque.
Estimation de la capacité des disques
Il existe des disques de 3 à 14 pouces. la capacité de stockage dépend de la densité. Une densité faible, pas chère, consiste à ranger 4 K-octets par piste et 35 pistes par surface. Une densité forte, donc chère peut avoir 50K-octets par surface et 1000 pistes par surface.
Capacité d'une piste = nombre de secteurs/piste X nombres d'octets/secteur.
Capacité du cylindre = nombre de piste par cylindre X capacité d'une piste.
Capacité du disque = nombre de cylindre X capacité du cylindre.
Si on connaît le nombre d'octets du fichier, on peut utiliser ces relations pour calculer l'espace disque nécessaire.
Exemple : soit un fichier de 20 000 articles de longueur fixe à ranger sur un disque avec les caractéristiques suivantes :
nombre d'octets/secteur : 512
nombre de secteurs/piste : 40
nombre de piste par cylindre : 11
Combien nous faut-il de cylindre si chaque article possède 256 octets. ==> réponse (20000/2) / (40 X 11) = 22,7 cylindres. Les cylindres ne seront pas forcément contigus.
Il existe 2 façons d'organiser les données sur disque : par secteur et par bloc défini par l'utilisateur.
par secteur
Placement physique des secteurs
Si les secteurs dun fichier sont adjacents, sur une piste, le lecture séquentielle est inéficace du fait que lon perd le début du secteur suivant pendant le transfert de linformation. Une bonne solution consiste à laisser un intervalle entre deux secteurs logiques.
Comme exemple, pour lire les 32 secteurs dune piste, il faut 32 révolutions dans le cas où les secteurs sont adjacents. Par contre si on prend un intervalle égale à 5 ( principe des secteurs inter-leaving) alors 5 révolutions suffisent pour lire tous les secteurs.
Clusters
C'est un nombre fixe de secteurs contigus. Tous les secteurs d'un cluster sont lus sans bouger la tête de lecture/écriture. Le système de gestion de fichier utilise une table pour gérer ces clusters. Chaque entrée dans cette table est le couple ( n° du cluster, adresse du cluster).
Pour un système donné, le nombre de secteurs par cluster est généralement fixé. L'idéal, bien sur, c'est davoir des grands clusters. Ceci permettrait alors de lire des fichiers sans trop bouger le bras, ce qui donne de très bonne performance quand le fichier est traité séquentiellement.
Etendue
Quand il y a assez d'espace sur le disque, il est préférable de créer des fichiers entièrement avec des clusters contigus : c'est ce nous appelons une étendue. S'il n'y a pas assez d'espace, le fichier est alors distribué en plusieurs étendues. Il est certain que quand le nombre d'étendues augmente, les performances se dégradent.
fragmentation
Si la taille d'un secteur n'est pas un multiple de la taille d'un article, deux éventualités peuvent se produire :
- l'article n'est rangé dans le secteur que si la place est disponible.
- l'article peut être à cheval sur deux secteurs.
Dans le premier cas, il y a création de la fragmentation interne ( apparition de "trous" ). Dans le second cas, deux accès sont exigés pour récupérer certains articles.
La fragmentation interne peut aussi résulter de l'utilisation des clusters : si le nombre d'octets dans un fichier n'est pas un multiple de la taille du cluster, il peut exister une fragmentation interne dans la dernière étendue du fichier.
Par bloc
Utilisé dans ce contexte, le terme bloc référence un groupe d'articles qui sont rangés ensemble sur le disque et traités comme une unité d'Entrée/Sortie. Quand les blocs sont utilisés, lutilisateur est mieux placé pour faire l'organisation physique des données correspondant à son organisation logique, et donc quelquefois améliore les performances. Les unités organisés en blocs peuvent aussi permettre au contrôleur de rechercher parmi les blocs sur une piste un article avec une clé donnée sans transmettre le bloc non trouvé en RAM.
Facteurs affectant le temps dun accès disque
Le coût d'un accès disque peut être mesuré en terme de temps. C'est le temps occupé par le mouvement du bras ("Seeking" ), le délai rotationnel et le transfert. Si on utilise le principe des "secteur interleaving", il est possible daccéder à des secteurs logiquement adjacents en les séparant physiquement par 1 ou plusieurs secteurs. Bien qu'ils prennent plus de temps pour l'accès à un simple article directement que séquentiellement, le temps du positionnement du bras exigé pour l'accès direct le rend beaucoup plus lent que l'accès séquentiel quand une série d'articles est à accéder.