Système d'exploitation - Mémoire virtuelle

Un ordinateur peut adresser plus de mémoire que la quantité physiquement installée sur le système. Cette mémoire supplémentaire est en fait appeléevirtual memory et c'est une section d'un disque dur qui est configurée pour émuler la RAM de l'ordinateur.

Le principal avantage visible de ce schéma est que les programmes peuvent être plus volumineux que la mémoire physique. La mémoire virtuelle a deux objectifs. Premièrement, cela nous permet d'étendre l'utilisation de la mémoire physique en utilisant le disque. Deuxièmement, cela nous permet d'avoir une protection de la mémoire, car chaque adresse virtuelle est traduite en une adresse physique.

Voici les situations où il n'est pas nécessaire de charger complètement le programme dans la mémoire principale.

  • Les routines de gestion des erreurs écrites par l'utilisateur ne sont utilisées que lorsqu'une erreur s'est produite dans les données ou le calcul.

  • Certaines options et fonctionnalités d'un programme peuvent être rarement utilisées.

  • De nombreuses tables se voient attribuer une quantité fixe d'espace d'adressage même si seule une petite partie de la table est réellement utilisée.

  • La possibilité d'exécuter un programme qui n'est que partiellement en mémoire contrarierait de nombreux avantages.

  • Moins de nombre d'E / S seraient nécessaires pour charger ou échanger chaque programme utilisateur en mémoire.

  • Un programme ne serait plus contraint par la quantité de mémoire physique disponible.

  • Chaque programme utilisateur pourrait prendre moins de mémoire physique, plus de programmes pourraient être exécutés en même temps, avec une augmentation correspondante de l'utilisation du processeur et du débit.

Des microprocesseurs modernes destinés à un usage général, une unité de gestion de mémoire, ou MMU, sont intégrés au matériel. Le travail de la MMU est de traduire les adresses virtuelles en adresses physiques. Un exemple de base est donné ci-dessous -

La mémoire virtuelle est généralement implémentée par pagination à la demande. Il peut également être implémenté dans un système de segmentation. La segmentation de la demande peut également être utilisée pour fournir de la mémoire virtuelle.

Demande de pagination

Un système de pagination à la demande est assez similaire à un système de pagination avec permutation où les processus résident dans la mémoire secondaire et les pages sont chargées uniquement à la demande, pas à l'avance. Lorsqu'un changement de contexte se produit, le système d'exploitation ne copie aucune des pages de l'ancien programme sur le disque ou l'une des pages du nouveau programme dans la mémoire principale Au lieu de cela, il commence simplement à exécuter le nouveau programme après le chargement de la première page et récupère cela les pages du programme telles qu'elles sont référencées.

Lors de l'exécution d'un programme, si le programme référence une page qui n'est pas disponible dans la mémoire principale parce qu'elle a été permutée il y a peu, le processeur traite cette référence mémoire invalide comme une page fault et transfère le contrôle du programme vers le système d'exploitation pour demander à nouveau la page dans la mémoire.

Avantages

Voici les avantages de la pagination à la demande -

  • Grande mémoire virtuelle.
  • Utilisation plus efficace de la mémoire.
  • Il n'y a pas de limite au degré de multiprogrammation.

Désavantages

  • Le nombre de tables et la quantité de surcharge du processeur pour la gestion des interruptions de page sont plus importants que dans le cas des techniques de gestion paginées simples.

Algorithme de remplacement de page

Les algorithmes de remplacement de page sont les techniques par lesquelles un système d'exploitation décide quelles pages de mémoire doivent être permutées, écrites sur le disque lorsqu'une page de mémoire doit être allouée. La pagination se produit chaque fois qu'une erreur de page se produit et qu'une page gratuite ne peut pas être utilisée à des fins de comptabilité d'allocation pour expliquer que les pages ne sont pas disponibles ou que le nombre de pages gratuites est inférieur au nombre de pages requises.

Lorsque la page qui a été sélectionnée pour le remplacement et qui a été paginée, est à nouveau référencée, elle doit être lue à partir du disque, ce qui nécessite l'achèvement des E / S. Ce processus détermine la qualité de l'algorithme de remplacement de page: plus le temps d'attente pour les entrées de page est court, meilleur est l'algorithme.

Un algorithme de remplacement de page examine les informations limitées sur l'accès aux pages fournies par le matériel et essaie de sélectionner les pages à remplacer pour minimiser le nombre total de pages manquées, tout en l'équilibrant avec les coûts de stockage principal et le temps processeur de l'algorithme. lui-même. Il existe de nombreux algorithmes de remplacement de page. Nous évaluons un algorithme en l'exécutant sur une chaîne particulière de référence mémoire et en calculant le nombre de défauts de page,

Chaîne de référence

La chaîne de références mémoire est appelée chaîne de référence. Les chaînes de référence sont générées artificiellement ou en traçant un système donné et en enregistrant l'adresse de chaque référence mémoire. Ce dernier choix produit un grand nombre de données, où l'on note deux choses.

  • Pour une taille de page donnée, nous devons considérer uniquement le numéro de page, pas l'adresse entière.

  • Si nous avons une référence à une page p, puis toute référence à la page immédiatement suivante pne causera jamais de défaut de page. La page p sera en mémoire après la première référence; les références immédiatement suivantes ne seront pas défectueuses.

  • Par exemple, considérez la séquence d'adresses suivante - 123,215,600,1234,76,96

  • Si la taille de la page est 100, la chaîne de référence est 1,2,6,12,0,0

Algorithme du premier entré, premier sorti (FIFO)

  • La plus ancienne page de la mémoire principale est celle qui sera sélectionnée pour le remplacement.

  • Facile à mettre en œuvre, gardez une liste, remplacez les pages de la queue et ajoutez de nouvelles pages en tête.

Algorithme de page optimal

  • Un algorithme de remplacement de page optimal a le taux d'erreur de page le plus bas de tous les algorithmes. Un algorithme de remplacement de page optimal existe et a été appelé OPT ou MIN.

  • Remplacez la page qui ne sera pas utilisée pendant la période la plus longue. Utilisez l'heure à laquelle une page doit être utilisée.

Algorithme le moins récemment utilisé (LRU)

  • La page qui n'a pas été utilisée depuis le plus longtemps dans la mémoire principale est celle qui sera sélectionnée pour le remplacement.

  • Facile à mettre en œuvre, gardez une liste, remplacez les pages en remontant le temps.

Algorithme de mise en mémoire tampon de page

  • Pour démarrer rapidement un processus, conservez un pool d'images libres.
  • En cas d'erreur de page, sélectionnez une page à remplacer.
  • Écrivez la nouvelle page dans le cadre du pool libre, marquez le tableau des pages et redémarrez le processus.
  • Maintenant, écrivez la page sale sur le disque et placez le cadre contenant la page remplacée dans le pool libre.

Algorithme le moins fréquemment utilisé (LFU)

  • La page avec le plus petit nombre est celle qui sera sélectionnée pour le remplacement.

  • Cet algorithme souffre de la situation dans laquelle une page est fortement utilisée pendant la phase initiale d'un processus, mais n'est plus jamais utilisée.

Algorithme le plus fréquemment utilisé (MFU)

  • Cet algorithme est basé sur l'argument selon lequel la page avec le plus petit nombre vient probablement d'être introduite et n'a pas encore été utilisée.