Disons que j'ai besoin de créer et d'enregistrer les données d'un fichier sur le disque dur. Le disque dur n'est rien d'autre qu'une pile de plusieurs disques en rotation. Si j'ai bien compris, les données des fichiers sont divisées en un certain nombre de blocs de mémoire qui peuvent être enregistrés sur n'importe quel disque (parmi la pile de disques du disque dur) du disque dur.
Le système d'exploitation ne voit pas Il considère l'ensemble du disque dur comme une seule unité de stockage linéaire, qui n'est accessible qu'à l'aide d'"adresses de blocs logiques" (LBA).
En général, les LBA les plus bas (à partir de 0) se trouvent sur le bord extérieur, tandis que les LBA les plus élevés se trouvent au centre - mais le système d'exploitation ne dispose pas d'informations sur l'emplacement physique (par exemple, sur le plateau du disque) des données. Seul le microprogramme du disque dur le sait. (I penser il s'agit généralement d'une sorte de cartographie à la ronde (round-robin mapping ?)
(Il en va de même pour les disques SSD à mémoire flash ou les clés USB - le système d'exploitation voit une seule unité de stockage, et le disque SSD lui-même décide comment placer chaque LBA sur la puce flash correspondante).
Ainsi, lorsque le système d'exploitation doit enregistrer un fichier,
-
d'abord le système d'exploitation système de fichiers divise le fichier en blocs et décide des LBA dans lesquels stocker le fichier (en général, les blocs d'un même fichier sont conservés à proximité les uns des autres, mais des fichiers différents sont dispersés) ;
-
puis le disque dur décide quel plateau/piste/secteur utiliser pour chaque LBA.
Une autre question connexe est de savoir si deux requêtes d'écriture ou deux requêtes de lecture sont exécutées exactement en même temps. Seront-elles exécutées de manière séquentielle, c'est-à-dire qu'une fois qu'une tâche est exécutée, seule la tâche suivante sera exécutée, ou bien chaque requête sera exécutée de manière aléatoire pendant un certain intervalle de temps ?
Cela dépend du système d'exploitation Planificateur d'E/S . Voir par exemple ce PDF .
L'ordonnanceur peut également modifier sa logique en fonction du type de périphérique (par exemple, les disques rotatifs ont des délais de recherche, mais pas la mémoire flash), de la prise en charge ou non par le périphérique de la fonction de recherche. Demandes en file d'attente (par exemple, l'AHCI SATA permet d'envoyer plusieurs requêtes à la fois, ce qui n'est pratiquement pas le cas de l'IDE), ainsi que d'autres facteurs.