Système d'exploitation - Partie 5
Mémoire virtuelle
L'utilisation de l'adressage de la mémoire virtuelle (comme la pagination ou la segmentation) permet au noyau de choisir la mémoire utilisable par chaque programme à un instant T, permettant ainsi au système d'exploitation d'utiliser les mêmes emplacements mémoire pour plusieurs tâches.
Si un programme tente d'accéder à une mémoire inaccessible, mais qui lui a néanmoins été allouée, le noyau est interrompu (voir § Gestion de la mémoire). Ce type d'interruption est généralement un défaut de page.
Lorsque le noyau détecte un défaut de page, il ajuste généralement la plage de mémoire virtuelle du programme qui l'a déclenché, lui accordant ainsi l'accès à la mémoire demandée. Cela confère au noyau un pouvoir discrétionnaire sur l'emplacement de stockage de la mémoire d'une application, voire sur son allocation.
Dans les systèmes d'exploitation modernes, la mémoire moins fréquemment utilisée peut être temporairement stockée sur un disque ou un autre support afin de la rendre disponible pour d'autres programmes. C'est ce qu'on appelle l'échange (swap), car une zone de mémoire peut être utilisée par plusieurs programmes, et son contenu peut être échangé à la demande.
La mémoire virtuelle donne au programmeur ou à l'utilisateur l'impression que la quantité de RAM de l'ordinateur est bien plus importante qu'elle ne l'est réellement.
Concurrence
La concurrence désigne la capacité du système d'exploitation à exécuter plusieurs tâches simultanément. Pratiquement tous les systèmes d'exploitation modernes prennent en charge la concurrence.
Les threads permettent de scinder le travail d'un processus en plusieurs parties pouvant s'exécuter simultanément. Le nombre de threads n'est pas limité par le nombre de processeurs disponibles. S'il y a plus de threads que de processeurs, le noyau du système d'exploitation planifie, suspend et relance les threads, contrôlant le moment de leur exécution et le temps CPU qu'ils reçoivent. Lors d'un changement de contexte, un thread en cours d'exécution est suspendu, son état est enregistré dans le bloc de contrôle et la pile des threads, et l'état du nouveau thread est chargé. Historiquement, sur de nombreux systèmes, un thread pouvait s'exécuter jusqu'à ce qu'il cède le contrôle (multitâche coopératif). Ce modèle permettant à un seul thread de monopoliser le processeur, la plupart des systèmes d'exploitation peuvent désormais interrompre un thread (multitâche préemptif).
Les threads possèdent leur propre identifiant, leur propre compteur de programme (PC), un ensemble de registres et une pile, mais partagent le code, les données du tas et d'autres ressources avec les autres threads du même processus. Ainsi, la création d'un thread est moins coûteuse que la création d'un nouveau processus. Sur les systèmes monoprocesseur, la concurrence se traduit par la commutation entre les processus. De nombreux ordinateurs possèdent plusieurs processeurs. Le parallélisme, avec plusieurs threads exécutés sur différents processeurs, peut accélérer un programme, selon la quantité de données pouvant être exécutées simultanément.
Système de fichiers
Les périphériques de stockage permanents utilisés dans les ordinateurs du XXIe siècle, contrairement à la mémoire vive dynamique (DRAM) volatile, restent accessibles après un plantage ou une panne de courant. Le stockage permanent (non volatile) est beaucoup moins cher par octet, mais nécessite plusieurs fois plus de temps d'accès, de lecture et d'écriture. Les deux principales technologies sont le disque dur, composé de disques magnétiques, et la mémoire flash (un disque SSD qui stocke les données dans des circuits électriques). Cette dernière est plus coûteuse, mais plus rapide et plus durable.
Les systèmes de fichiers sont une abstraction utilisée par le système d'exploitation pour simplifier l'accès au stockage permanent. Ils fournissent des noms de fichiers et autres métadonnées lisibles par l'utilisateur, améliorent les performances grâce à l'amortissement des accès, empêchent plusieurs threads d'accéder à la même section de mémoire et incluent des sommes de contrôle pour identifier les corruptions. Les systèmes de fichiers sont composés de fichiers (ensembles de données nommés, de taille arbitraire) et de répertoires (également appelés dossiers) qui répertorient des noms de fichiers et autres répertoires lisibles par l'utilisateur. Un chemin d'accès absolu commence à la racine et répertorie les sous-répertoires séparés par des signes de ponctuation, tandis qu'un chemin relatif définit l'emplacement d'un fichier dans un répertoire.
Les appels système (parfois encapsulés par des bibliothèques) permettent aux applications de créer, supprimer, ouvrir et fermer des fichiers, ainsi que de les lier, de les lire et d'y écrire. Toutes ces opérations sont effectuées par le système d'exploitation pour le compte de l'application. Pour réduire la latence, le système d'exploitation stocke les blocs de mémoire récemment demandés dans un cache et précharge les données que l'application n'a pas demandées, mais dont elle pourrait avoir besoin ultérieurement. Les pilotes de périphériques sont des logiciels spécifiques à chaque périphérique d'entrée/sortie (E/S) qui permettent au système d'exploitation de fonctionner sans modification sur différents matériels.
Link 1
Link 2
Link 3
Link 4
Link 5
Link 6
Link 7
Link 8
Link 9
Link 10
Link 11
Link 12
Link 13
Link 14
Link 15
Link 16
Link 17
Link 18
Ajouter un commentaire