FR2831290A1 - Procedes de gestion de memoire virtuelle, notamment pour des index de tres grande taille - Google Patents

Procedes de gestion de memoire virtuelle, notamment pour des index de tres grande taille Download PDF

Info

Publication number
FR2831290A1
FR2831290A1 FR0113524A FR0113524A FR2831290A1 FR 2831290 A1 FR2831290 A1 FR 2831290A1 FR 0113524 A FR0113524 A FR 0113524A FR 0113524 A FR0113524 A FR 0113524A FR 2831290 A1 FR2831290 A1 FR 2831290A1
Authority
FR
France
Prior art keywords
pages
page
memory
central memory
algorithm
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
FR0113524A
Other languages
English (en)
Inventor
Chabane Djeraba
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Universite de Nantes
Original Assignee
Universite de Nantes
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Universite de Nantes filed Critical Universite de Nantes
Priority to FR0113524A priority Critical patent/FR2831290A1/fr
Publication of FR2831290A1 publication Critical patent/FR2831290A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Un procédé selon l'invention inclut un algorithme de remplacement de page qui optimise le remplacement des pages dans la mémoire centrale. Selon un mode de réalisation préféré, les K dernières dates de référence des pages, avec K > 1, sont conservées, pour les pages résidentes en mémoire centrale, mais aussi pour des pages non résidentes. L'algorithme sélectionne de préférence les pages victimes parmi celles qui sont référencées le plus loin dans le temps. Les pages épargnées sont de préférence celles qui sont référencées rapidement et fréquemment. L'algorithme sélectionne la victime par rapport a un point précis de la chaîne de références (la Kième référence) et en utilisant l'ensemble des K dernières références à une page. Le procédé de l'invention a été prouvé optimal par rapport aux autres solutions connues basées sur un nombre pluriel de dates de référence pour chaque page.

Description

<Desc/Clms Page number 1>
PROCEDES DE GESTION DE MEMOIRE VIRTUELLE, NOTAMMENT POUR
DES INDEX DE TRES GRANDE TAILLE
L'invention concerne de manière générale la gestion des mémoires virtuelles de très grande taille. Plus particulièrement, l'invention concerne la gestion d'une mémoire virtuelle adaptée pour un index de très grande taille, notamment dans des bases de données d'images.
La présente demande est déposée conjointement à la demande de brevet français intitulée"Procédés de regroupement automatique d'images, notamment pour l'indexation"du même inventeur. Ces deux demandes de brevet sont le fruit d'un travail de recherche effectué
<Desc/Clms Page number 2>
en vue de perfectionner les techniques d'indexation applicables aux bases de données d'images de très grande taille, de l'ordre de millions d'images. Ces recherches ont identifié deux axes de perfectionnement possibles, à savoir, la gestion d'une mémoire virtuelle utilisable pour un index de très grande taille et le regroupement automatique des images en vue d'une indexation plus efficace. Bien que les procédés divulgués dans la présente demande et dans la demande conjointe susmentionnée soient décrits prioritairement dans le contexte de l'indexation, il convient de noter de prime abord que ces procédés trouveront des applications dans des domaines autres que celui de l'indexation. Nous incitons vivement le lecteur a consulter la demande conjointe sus-mentionnée afin de mieux cerner les domaines technologiques dans lesquels s'inscrit la présente demande.
Nous assistons actuellement à une explosion de la taille des bases de données d'images et ce en raison de l'essor du Web, de la multiplication et de la démocratisation des outils informatiques (ordinateurs, scanners, imprimantes, etc. ). Pour gérer cette masse gigantesque d'images, il est nécessaire de mettre en place des techniques d'indexation efficaces. Alors que l'indexation manuelle est envisageable dans une petite base de données en fournissant, par exemple, un résumé avec quelques mots-clé pour chaque image, cette technique se révèle impossible lorsque le nombre des
<Desc/Clms Page number 3>
images dans une base devient très élevé. La solution consiste alors, non pas à ajouter des informations, mais à extraire des images des caractéristiques remarquables et significatives, appelées signatures d'images. Ces caractéristiques remarquables sont extraites directement du contenu des images et sont stockées, généralement sous forme de vecteur, afin de pouvoir ensuite les utiliser pour répondre à des requêtes d'utilisateurs.
Le problème essentiel est de pouvoir retrouver l'information à partir de requêtes. Le temps de réponse du moteur de recherche, la qualité et la pertinence des documents retournés feront qu'un système d'indexation et de recherche s'imposera plutôt qu'un autre.
Généralement, les index sont stockés dans les mémoires centrales de gros ordinateurs, ce qui explique que les temps de réponse sont très faibles (de l'ordre d'une ou deux secondes par requête, pour les moteurs de recherche courants). La rapidité est une caractéristique essentielle, mais celle-ci est obtenue généralement au détriment de l'espace de stockage. En effet, le volume des index est limité par la taille des mémoires centrales, ce qui ne permet d'indexer qu'une partie des documents.
La gestion d'un index de très grande taille revient à gérer une mémoire virtuelle avec optimisation de l'algorithme de remplacement de page. Une mémoire virtuelle est composée par l'ensemble des informations potentiellement accessibles, c'est-à-dire, l'ensemble
<Desc/Clms Page number 4>
des emplacements adressables par un processeur. Le processeur agit comme s'il disposait d'une quantité de mémoire très largement supérieure à celle effectivement disponible. Un système d'allocation de mémoire se charge de concrétiser cette mémoire virtuelle par des supports physiques d'information tels que la mémoire centrale (RAM), la mémoire secondaire (Disque Dur), etc.
Cependant une information requise par le processeur doit se trouver en mémoire centrale, car c'est le seul endroit directement adressable par celui-ci. Si cette information n'est pas disponible en mémoire centrale, elle est récupérée en mémoire secondaire.
Le système d'allocation de mémoire doit faire en sorte que l'information requise à un instant donné par le processeur soit présente en mémoire centrale, afin que celui-ci puisse y accéder rapidement. Une stratégie d'allocation de mémoire se charge de réaliser la correspondance entre les adresses virtuelles et les adresses physiques, de gérer la mémoire physique (allocation des emplacements, transfert d'information) et de partager l'information. Une gestion bien répartie et adaptée de la mémoire centrale est apportée par les systèmes d'allocation de mémoire faisant appel à une implantation dynamique. Dans ces systèmes d'allocation, la correspondance adresses virtuelles/adresses physiques est variable dans le temps. L'allocation de mémoire physique se fait généralement soit par zones ou segments de tailles variables, soit par pages de taille
<Desc/Clms Page number 5>
fixe. Quoi qu'il en soit, une information demandée par une requête doit être disponible en mémoire centrale. Si ce n'est pas le cas, il se produit un défaut de segment ou de page. Le système d'allocation de mémoire avec implantation dynamique doit apporter des réponses aux problèmes suivants : - Quand faut-il charger une information en mémoire centrale (à la demande ou par préchargement) ? - Où charger cette information ? - Lorsque la place libre en mémoire centrale est suffisante : quel emplacement faut-il utiliser ? - Lorsque la place libre est insuffisante : quelle (s) information (s) doit être renvoyée en mémoire secondaire pour faire de la place et charger l'information requise ?
Des algorithmes de remplacement doivent être utilisés pour déterminer les informations à renvoyer en mémoire secondaire et libérer ainsi des emplacements en mémoire centrale.
Connaître le comportement d'un programme de recherche en mémoire virtuelle permet d'améliorer les algorithmes de gestion dynamique de la mémoire. Des études ont été menées en considérant le cas d'une mémoire virtuelle linéaire. Une telle mémoire est découpée pages contiguës de taille fixe qui contiennent un nombre d'emplacements déterminé. L'accès à un emplacement d'une page est appelé référence. Les pages sont numérotées par des entiers consécutifs, ce qui
<Desc/Clms Page number 6>
permet d'étiqueter les références. Ainsi, lors de l'exécution d'un programme de recherche on obtient une chaîne de références. Les propriétés intéressantes suivantes ont été mises en évidence : - Non uniformité : Souvent 75% des références intéressent moins de 20% des pages. La répartition des références à une page donnée n'est pas uniforme.
- Localité temporelle : Sur une période de temps assez courte, la répartition des références aux pages est relativement uniforme. Les pages référencées dans un passé récent ont une forte probabilité d'être reréférencées dans un futur proche.
- Localité spatiale : Si un élément est référencé, les éléments dont les adresses sont voisines auront tendance à être référencés bientôt.
Les algorithmes de remplacement de page devront essayer de tenir compte de ces propriétés afin d'améliorer les performances.
De plus, La taille de la mémoire conditionne de façon importante le nombre de défauts de page. Il existe une certaine quantité de mémoire critique en dessous de laquelle le nombre de défauts de page augmente de manière brutale.
Dans la suite de cette demande, nous considérons principalement une mémoire virtuelle divisée en blocs de taille fixe appelés pages, ainsi qu'un système multiprogrammé et donc multi-requêtes. La page est l'unité élémentaire d'allocation. La mémoire centrale
<Desc/Clms Page number 7>
est divisée en blocs de même taille appelés cases. Les pages se trouvent donc en mémoire secondaire (dont l'accès est de l'ordre de la milliseconde) et les cases en mémoire centrale (dont l'accès est de l'ordre de la nanoseconde). Le nombre de pages est supérieur à celui des cases. Dans une mémoire virtuelle linéaire, les pages sont contiguës, ce qui n'est pas le cas dans une mémoire virtuelle segmentée. Une fonction de pagination est prévue et a pour rôle d'établir une correspondance entre adresses de pages (adresses virtuelles) et adresses de cases (adresses réelles). Si la page est présente en mémoire centrale, c'est un succès. Dans le cas contraire, il se produit un défaut de page, et il faut suivre un procédure dite de déroutement comprenant les trois étapes suivantes : - Trouver la page manquante en mémoire secondaire.
- Trouver une case libre en mémoire centrale (s'il n'y en a pas, en libérer une).
- Charger la page manquante dans la case libre.
Lorsqu'une page est chargée dans une case occupée, la page qui était présente dans cette case est appelée la victime.
Dans l'état de la technique, il existe différents algorithmes de remplacement de page qui permettent de choisir une victime selon des critères déterminés. Les algorithmes de remplacement de page à partition fixe les plus connus sont brièvement commentés ci-dessous.
<Desc/Clms Page number 8>
Algorithme optimal (MIN) : Cet algorithme suppose une connaissance complète du comportement en exécution d'un programme de recherche (la chaîne de références est connue par avance). La victime sera la page qui ne sera plus référencée ou référencée le plus tardivement.
Algorithme à tirage aléatoire : Cet algorithme ne se préoccupe pas du comportement du programme de recherche. Il se contente de choisir de manière aléatoire la victime et ne possède donc pas de bonnes propriétés.
Algorithme FIFO (First In First Out) : La victime est la page qui a été le plus anciennement référencée.
Il fait appel à la gestion d'une file d'attente de type FIFO. Que se passe-t-il si l'on augmente le nombre de cases de la mémoire centrale ? Le nombre de défauts de page augmente et le nombre de succès diminue. Il s'agit de l'anomalie de Belady. Cet algorithme présente des avantages par sa simplicité de mise en oeuvre, mais il n'est pas optimal.
Algorithme LRU (Least Recently Used) : Cet algorithme essaye de tirer partie des propriétés de localité mentionnées plus haut. Il choisit comme victime la page la moins récemment utilisée, sachant que celles référencées dans un passé proche ont une forte probabilité d'être réutilisées. Le problème est de déterminer la moins récemment utilisée. Il faut conserver un historique des accès et un problème d'estampillage se pose alors. Qu'utilise-t-on comme
<Desc/Clms Page number 9>
estampillage ? Une date, une heure, etc. ? Quelle doit être la précision de cet estampillage ? Un estampillage n'est pas vraiment facile à mettre en oeuvre dans un environnement distribué.
Algorithme LFU (Least Frequently Used) : La victime est la page la moins fréquemment utilisée. Un compteur est associé à chaque page et est incrémenté à chaque référence. Un problème important est à signaler : il s'agit du passage à zéro du compteur. Il vient nécessairement à zéro en raison d'une limitation du nombre de bits de représentation des entiers de la machine. La page la plus fréquemment utilisée peut alors être détectée comme étant la moins fréquemment utilisée et elle a toutes les chances d'être la prochaine victime. Cet algorithme, dans son principe, est avantageux si la différence de fréquence d'utilisation des pages est assez élevée, mais il est relativement arbitraire lorsque celle-ci est faible.
Algorithme FINUFO (First In Not Used First Out) : Il s'agit d'une approximation grossière de LRU mais avec un compteur de 1 bit. A chaque case est associé un bit d'utilisation U. Si la page fait l'objet d'une référence, le bit U passe à 1. Un processus cyclique examine successivement les cases. Si U=l, alors U est commuté à 0, et si U=0 la victime est trouvée.
L'algorithme de remplacement de page MIN est celui qui a les meilleures performances, mais son utilisation
<Desc/Clms Page number 10>
est très limitée car il n'est adapté qu'à un comportement spécifique parfaitement connu par avance.
L'algorithme de remplacement de page LRU est le plus utilisé des algorithmes de la technique antérieure. Cet algorithme a souvent permis par le passé d'obtenir des bons résultats. Toutefois, il présente un inconvénient qui est la dégradation des performances pour des schémas d'accès réguliers à un nombre de pages supérieur à la taille de la mémoire centrale. En effet, l'algorithme LRU choisit ses victimes en fonction de la date de la dernière référence qui doit être la plus ancienne, ce qui dans le cas des accès réguliers revient à exclure de la mémoire les pages qui vont être à nouveaux référencées. Ce problème est relativement gênant car les schémas d'accès réguliers sont souvent rencontrés lors de l'exécution des programmes. La solution optimale dans le cas des accès réguliers consisterait à exclure certaines pages aussitôt après leur référencement afin de permettre à certaines autres, référencées cycliquement, de rester en mémoire centrale.
L'algorithme de remplacement de page LFU est mieux adapté aux schémas d'accès réguliers puisqu'il fonde son choix de la victime sur une fréquence de référencement des pages. Cependant, l'algorithme LFU est incapable de distinguer les pages référencées récemment de celles qui l'on été dans un passé plus lointain. L'information que l'algorithme LFU conserve sur les pages en mémoire centrale est une fréquence pure. Aucune information
<Desc/Clms Page number 11>
d'historique d'accès n'est conservée et l'évolution du comportement dans le temps n'est pas prise en compte.
Des perfectionnements ont été proposés pour l'application de l'algorithme LFU aux techniques de "buffering"et font appel à des paramètres externes pour guider le processus d'historique. Ces paramètres externes limitent la capacité d'adaptation de l'algorithme de remplacement de page aux schémas évolutifs.
Un premier objectif de la présente invention est de fournir un procédé de gestion de mémoire virtuelle qui soit capable de détecter un changement de comportement dans les schémas d'accès aux pages, afin de modifier consécutivement un mode de fonctionnement de l'algorithme de remplacement de page et de rendre ainsi plus performante la gestion de la mémoire virtuelle.
Un procédé de gestion de mémoire virtuelle selon l'invention, utilisant un algorithme de remplacement de page pour sélectionner dans une mémoire centrale des cases occupées contenant des pages résidentes qui doivent être exclues de ladite mémoire centrale afin de charger dans les cases ainsi libérées des pages requises dans ladite mémoire centrale, est caractérisé en ce qu'il comprend une mesure de performances pour commander des commutations entre des modes de fonctionnement différents dudit algorithme de remplacement de page.
De préférence, ladite mesure de performances comprend un comptage d'un nombre de défauts de page
<Desc/Clms Page number 12>
et/ou un comptage d'un nombre de pages récemment référencées exclues de ladite mémoire centrale.
Selon un mode de réalisation préféré, le procédé de gestion de mémoire virtuelle selon l'invention est caractérisé en ce que ledit algorithme de remplacement de page comprend un premier mode de fonctionnement par défaut dans lequel une stratégie de remplacement de page de type LRU est appliquée sur la totalité d'une file dédiée aux pages résidentes en mémoire centrale, et un deuxième mode de fonctionnement dans lequel la stratégie de remplacement de page de type LRU est appliquée sur une première région de ladite file dédiée aux pages résidentes en mémoire centrale et une stratégie de remplacement de page faisant appel à une prédiction mathématique est appliquée sur des deuxième et troisième régions de ladite file dédiée aux pages résidentes en mémoire centrale, avec ladite première région correspondant à des pages dans ladite mémoire centrale les plus récemment référencées, ladite deuxième région correspondant à des pages dans ladite mémoire centrale moins récemment référencées, et ladite troisième région correspondant à des pages dans ladite mémoire centrale encore moins récemment référencées.
De préférence, dans le mode de réalisation cidessus, ledit algorithme de remplacement de page comprend également une gestion d'une file dédiée à des pages récemment référencées exclues de la mémoire centrale.
<Desc/Clms Page number 13>
Dans le procédé de l'invention, la mesure de performances permet de détecter un changement de comportement dans les schémas d'accès aux pages, un tel changement de comportement se traduisant par une dégradation des performances. Il est possible également de distinguer certaines caractéristiques particulières de comportement, telles qu'un nombre excessif de pages récemment référencées exclues de la mémoire centrale. En outre, le procédé de l'invention n'est pas affecté par un comportement dont les fréquences sont élevées, en d'autres termes, par des boucles qui accèdent à une quantité de pages nettement inférieure à la quantité de mémoire. Le choix des victimes est effectué en respectant à la fois la quantité de mémoire et le comportement des références mémoire d'un programme de recherche.
Un autre objectif de la présente invention est de fournir un procédé de gestion de mémoire virtuelle qui soit capable de fonder ses choix de victimes non seulement à partir d'une information d'historique mais également à partir d'une information de fréquence, et cela à partir d'un historique d'accès aux pages conservant pour chaque page les dernières dates de référence.
Le procédé de gestion de mémoire virtuelle selon l'invention est alors également caractérisé en ce ledit algorithme de remplacement de page comprend une gestion d'un tableau représentant ladite mémoire centrale et
<Desc/Clms Page number 14>
contenant les K dernières dates de référence, au maximum, pour chaque page résidente en mémoire centrale, K étant un entier prédéterminé supérieur à 1, et une gestion d'un fichier historique conservant pendant une durée prédéterminée les dernières dates de référence de pages non résidentes en mémoire centrale, et en ce que ledit algorithme de remplacement de page sélectionne lesdites cases occupées à libérer dans ladite mémoire centrale en fonction desdites dernières dates de référence contenues dans ledit tableau représentant la mémoire centrale et dans ledit fichier historique.
Selon une forme de réalisation avantageuse, le nombre K est égal à 2.
Selon une caractéristique préférée, les cases occupées à libérer de ladite mémoire centrale sont sélectionnées à l'aide d'un calcul de distance d'utilisation bt (K, p) opérant sur une chaîne de références ro, r,..., r,..., r connue jusqu'à une référence rt et indiquant une succession temporelle des références aux pages, ledit calcul de distance d'utilisation étant défini de la manière suivante : bt (K, p) =x si rt-x=p et qu'il a eu exactement K-1 autres références ri=p telles que t-x < i < t, bt (K, p) =oo si p n'apparaît pas au moins K fois dans la chaîne de références ro, r,..., r, p étant la page considérée pour laquelle une distance d'utilisation est calculée,
<Desc/Clms Page number 15>
K étant ledit nombre maximum de dates de référence contenues dans ledit tableau représentant ladite mémoire centrale, x étant la distance d'utilisation calculée, et i étant un indice entier croissant de 0 à t et indiquant une position de la référence dans la chaîne de références.
Selon une autre caractéristique préférée, les cases occupées à libérer de ladite mémoire centrale sont sélectionnées à l'aide d'un calcul de somme Somme bt (K, p) opérant sur une chaîne de références ru, riz ..., ri,..., rt connue jusqu'à une référence rt et indiquant une succession temporelle des références aux pages, ledit calcul de somme étant défini de la manière suivante :
Somme (K, p) = E i pour les K dernières ri telles que ri=p p étant la page considérée pour laquelle une somme est calculée,
K étant ledit nombre maximum de dates de référence contenues dans ledit tableau représentant ladite mémoire centrale, et i étant un indice entier croissant de 0 à t et indiquant une position de la référence dans la chaîne de références.
De préférence, une page résidente dans ladite mémoire centrale ne peut pas être exclue de celle-ci
<Desc/Clms Page number 16>
avant la fin d'une durée prédéterminée après un premier référencement.
Avec l'enregistrement des K dernières dates de référence, même pour des pages qui ne sont plus résidentes en mémoire centrale, il est conservé une trace plus importante et précise des historiques d'accès aux pages. Une information de fréquence est également conservée par l'enregistrement de plusieurs dates de référence consécutives. Il est ainsi possible de distinguer les pages fréquemment référencées de celles qui le sont rarement.
Le procédé s'est révélé être bien adapté à la discrimination des ensembles de pages ayant différents niveaux de fréquence de référencement. Des simulations ont souligné le gain en termes de coût et performance apporté par le procédé selon l'invention, par rapport aux solutions classiques telles que LRU et LFU.
L'adaptation obtenue aux schémas d'accès aux pages évolutifs est meilleure que celle obtenue avec LFU et ses variantes.
Le procédé selon l'invention a été prouvé optimal par rapport aux autres solutions connues basées sur un nombre pluriel de dates de référence pour chaque page.
Dans la présente l'invention, l'algorithme de remplacement de page tente de respecter la contrainte suivante : les pages victimes sont celles qui sont référencées le plus loin dans le temps, et les pages épargnées sont celles qui sont référencées rapidement et
<Desc/Clms Page number 17>
fréquemment. L'algorithme se base sur les K dernières références à une page. Par contre, il établit son choix des victimes par rapport à un point précis de la chaîne de références (la Kième référence) et en utilisant l'ensemble des K dernières références à une page. En effet, plus l'ensemble des références à une page est élevé, et plus la probabilité pour que la page soit référencée à nouveau augmente.
Selon encore une autre caractéristique de la présente invention, lesdites pages requises peuvent être chargées par bloc dans ladite mémoire centrale, un bloc de pages comprenant un certain nombre de pages consécutives qui sont chargées dans des cases consécutives de ladite mémoire centrale. Plus précisément, les pages peuvent être des pages d'index d'une base de données d'images et les blocs de pages sont alors des parties d'index. En effet, les bases de données d'images, et tout particulièrement leurs index, nécessitent des chargements en mémoire centrale de parties d'index de taille variable.
D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description suivante de plusieurs modes de réalisation préférés des procédés de gestion de mémoire virtuelle selon l'invention. Cette description est faite en référence aux dessins qu'elle comporte, dans lesquels : les Figs. lA et 1B montrent un premier mode de réalisation d'un algorithme de remplacement de page
<Desc/Clms Page number 18>
inclus dans le procédé de gestion de mémoire virtuelle selon l'invention ; les Figs. 2A et 2B montrent les structures de deux files de pages nécessaires au fonctionnement de l'algorithme de remplacement de page des Figs. lA et 1B ; la Fig. 3 montre un second mode de réalisation d'un algorithme de remplacement de page inclus dans le procédé de gestion de mémoire virtuelle selon l'invention ; les Figs. 4A et 4B montrent les structures d'un tableau de mémoire centrale et d'un fichier historique nécessaires au fonctionnement de l'algorithme de remplacement de page de la Fig. 3 ; la Fig. 5 est un graphique utilisé pour l'explication d'un calcul de distance d'utilisation effectué par l'algorithme de remplacement de page de la Fig. 3 ; la Fig. 6 montre un troisième mode de réalisation d'un algorithme de remplacement de page inclus dans le procédé de gestion de mémoire virtuelle selon l'invention ; la Fig. 7 est un graphique utilisé pour l'explication d'un calcul de somme de dates de référence effectué par l'algorithme de remplacement de page de la Fig. 6 ; les Figs. 8 et 9 montrent un algorithme général, capable de traiter plusieurs chaînes de références, de
<Desc/Clms Page number 19>
plusieurs modes de réalisation préférés du procédé de gestion de mémoire virtuelle selon l'invention ; et la Fig. 10 montre un algorithme détaillé d'une fonction de chargement de page en mémoire centrale, fonction utilisée dans l'algorithme général des Figs. 8 et 9 et faisant appel aux algorithmes de remplacement de page selon l'invention pour trouver d'éventuelles pages victimes.
En référence aux Figs. lA et 1B, 2A et 2B, il est maintenant décrit un premier mode de réalisation préféré d'un algorithme de remplacement de page inclus dans un procédé de gestion de mémoire virtuelle selon l'invention. Pour des raisons de commodité, ce premier mode de réalisation préféré est désigné par la suite "LRU-Avancé".
L'algorithme LRU-Avancé opère selon deux modes de fonctionnement : un mode normal par défaut et un mode avancé.
Les principales caractéristiques du mode normal par défaut sont résumées de manière synthétique dans le cadre SA10 de la Fig. lA.
Le mode normal par défaut fonctionne de manière analogue à un algorithme classique de type LRU. Il est prévu une file FLRU-A de type LRU pour les pages résidentes en mémoire centrale dans laquelle est appliquée la stratégie de remplacement LRU. Conformément à l'invention, il est également prévu une file PRRE-A pour les pages récemment référencées exclues de la
<Desc/Clms Page number 20>
mémoire centrale, et une fonction de mesure des performances.
La file PRRE-A est représentée à la Fig. 2A. Chaque emplacement de la file PRRE-A peut contenir notamment un numéro Numéropage de la page exclue ainsi que sa dernière date de référence Dateréf.
La fonction de mesure des performances comprend un comptage du nombre de défauts de page Nbdéfautspage et un comptage du nombre des pages récemment référencées exclues de la mémoire centrale Nbpagexclrécréf.
Les principales caractéristiques du mode avancé sont résumées de manière synthétique dans le cadre SA19 de la Fig. lB.
Le mode avancé gère de manière différente la file FLRU-A de type LRU pour les pages résidentes en mémoire centrale. La file PRRE-A pour les pages récemment référencées exclues est également gérée en mode avancé.
La file FLRU-A en mode avancé est représentée à la Fig. 2B. La file FLRU-A est divisée en 3 régions : une région LRU, une région EARLY et une région LATE. La région LRU contient les pages les plus récemment référencées. La région EARLY contient les pages moins récemment référencées. La région LATE contient les pages encore moins récemment référencées.
Chaque emplacement de la file FLRU-A peut contenir notamment le numéro Numéropage de la page, sa dernière date de référence Dateréf et le numéro Numérocase de la
<Desc/Clms Page number 21>
case de la mémoire centrale dans laquelle se trouve cette page.
De manière générale, l'algorithme LRU-Avancé est conçu afin de fonctionner en mode normal par défaut de manière analogue à l'algorithme LRU, tant que celui-ci fournit des performances satisfaisantes. Lorsque les performances du mode normal par défaut se dégradent, l'algorithme LRU-Avancé commute en mode avancé. L'algorithme LRU-Avancé revient en mode normal dans le cas où les performances du mode avancé ne sont pas satisfaisantes.
Comme montré à la Fig. lA par les étapes SA11 et SA15, en mode normal par défaut, le nombre de défauts de page Nbdéfautspage et le nombre de pages récemment référencées exclues Nbpagexclrécréf sont comparés à des valeurs limites Nbdéfautspagemaxl et Nbpagexclrécréfmax, respectivement. Tant que les nombres Nbdéfautspage et Nbpagexclrécréf restent inférieurs à Nbdéfautspagemaxl et Nbpagexclrécréfmax, respectivement, le mode normal est maintenu, étapes SA12 et SA16. Lorsque le nombre Nbdéfautspage atteint ou dépasse Nbdéfautspagemaxl, étape SA13, l'algorithme LRU-Avancé commute en mode avancé en effectuant un saut à SA19 à la Fig. lB. Lorsque le nombre Nbpagexclrécréf atteint ou dépasse Nbpagexclrécréfmax, étape SA17, l'algorithme LRU-Avancé commute en mode avancé, saut à S19, et applique une procédure de secours, désignée"fall back", selon
<Desc/Clms Page number 22>
laquelle les prochaines victimes seront choisies dans les régions EARLY et LATE.
Comme montré à la Fig. lB par les étapes SA120, SA121 et SA122, en mode avancé, la stratégie de remplacement diffère en fonction de la région de la file FLRU-A dans laquelle se situe la page. Si la page victime désignée par l'algorithme LRU classique est dans la zone LRU de la file FLRU-A, alors la page victime effectivement choisie est celle désignée par l'algorithme LRU. Dans le cas contraire, la page victime désignée par LRU se trouve dans la région EARLY ou dans la région LATE, et la page victime effective est alors choisie dans la région EARLY ou LATE au moyen d'une prédiction mathématique faisant appel notamment à une détection des comportements et des référencements cycliques. Cette prédiction mathématique utilise les informations contenues dans les files FLRU-A et PRRE-A.
Différentes méthodes de prédiction mathématique sont connues et ne seront pas décrites ici. L'homme du métier choisira la méthode prédictive la plus adaptée à l'application envisagée.
Les étapes SA124, SA125 et SA126 montre la surveillance des performances obtenues qui est effectuée en mode avancé. Tant que le nombre Nbdéfautspage reste inférieur à une valeur limite Nbdéfautspagemax2, le mode avancé est maintenu. Lorsque le nombre Nbdéfautspage atteint ou dépasse Nbdéfautspagemax2, l'algorithme LRUAvancé revient au mode normal par défaut en effectuant
<Desc/Clms Page number 23>
un saut à SA10. Selon une variante, une procédure de secours visant à restaurer plus rapidement les performances peut être appelée aussi lors d'un retour vers le mode normal.
En référence aux Figs. 3,4A et 4B, et 5, il est maintenant décrit un second mode de réalisation préféré d'un algorithme de remplacement de page inclus dans un procédé de gestion de mémoire virtuelle selon l'invention. Pour des raisons de commodité, ce second mode de réalisation préféré est désigné par la suite "LRU-Etendu 111.
Les principales caractéristiques de l'algorithme LRU-Etendu 1 sont résumées de manière synthétique dans le cadre SA20 à la Fig. 3. Comme indiqué dans le cadre SA20, une mesure des performances est effectuée par l'algorithme LRU-Etendu 1, afin de commuter éventuellement vers un autre mode de fonctionnement en cas de dégradation des performances, de manière analogue à celle décrite plus haut pour l'algorithme LRU-Avancé.
La description d'une telle commutation ne sera pas répétée ici.
L'algorithme LRU-Etendu 1 gère un tableau MEMCENTRALE représentant la mémoire centrale, ainsi qu'un fichier historique HISTORIQUE des pages non résidentes en mémoire centrale. Des exemples de structures du tableau MEMCENTRALE et du fichier HISTORIQUE sont montrés aux Figs. 4A et 4B.
<Desc/Clms Page number 24>
En référence à la Fig. 4A, les lignes du tableau MEMCENTRALE correspondent respectivement aux cases de la mémoire centrale. A une ligne du tableau MEMCENTRALE correspond un numéro de case ncase de la mémoire centrale. La ligne ncase du tableau MENCENTRALE contient notamment le numéro de page Numéropage de la page contenue dans la case ncase de la mémoire centrale, les dernières dates de référence Dateréf de cette page, et le nombre de dates effectivement présentes Nbdates. La ligne ncase peut contenir au maximum K dates de référence désignées Dateréf,..., Dateréfk,....
DateréfK, K étant un entier supérieur à 1.
En référence à la Fig. 4B, le fichier HISTORIQUE comprend un certain nombre de lignes adressées par les numéros de page Numéropage. Chaque ligne contient les dernières dates de référence Dateréf de cette page, et le nombre de dates effectivement présentes Nbdates. Une ligne du fichier HISTORIQUE n'est conservée que pendant une certaine durée de rétention PERIODERETENTION après la dernière date de référence dateréf de la page correspondante.
En référence à nouveau à la Fig. 3, cadre SA20, dans cet algorithme LRU-Etendu 1, une page ne peut être choisie comme victime et exclue de la mémoire centrale qu'après la fin d'une certaine durée désignée PERIODECORRELATION et correspondant à une période de référence corrélée (correlated reference period). Cette caractéristique fonctionnelle apporte une solution au
<Desc/Clms Page number 25>
problème des références corrélées connu des hommes du métier. Cette durée PERIODECORRELATION peut être déterminée de manière statistique afin que les intervalles de temps entre deux références corrélées soit en majorité inférieurs à la durée PERIODECORRELATION.
Comme indiqué également dans le cadre SA20 de la Fig. 3, l'algorithme LRU-Etendu 1 choisit la page victime à l'aide d'une fonction K-distance calculant des distances d'utilisation pour les différentes pages résidentes en mémoire. Cette fonction K-distance est maintenant décrite en référence à la Fig. 5.
A la Fig. 5, il est représenté une chaîne de références ro, r,..., rt connue jusqu'à la référence rt et comprenant t+1 références, ri étant une référence quelconque de la chaîne. Soit une page p quelconque, la distance d'utilisation K-distance de la page p est donnée par la fonction bt (K, p) définie de la manière
Figure img00250001

1 suivante : bt (K, p) =x si rt-x=p et qu'il a eu exactement K-1 autres références ri=p telles que t-x < i < t, bt (K, p) =oo si p n'apparaît pas au moins K fois dans la chaîne de références rOI rI,..., rt.
La page victime à exclure de la mémoire centrale est celle dont la K-distance est la plus élevée. Le seul choix qui pose un problème est illustré en SA21, SA22 et SA23 à la Fig. 3, et concerne le cas où plusieurs pages ont leurs K-distances égales à l'infini. La page victime
<Desc/Clms Page number 26>
est alors choisie à l'aide d'une stratégie de remplacement auxiliaire, par exemple LRU.
Après un premier référencement d'une page quelconque p, Le calcul de la K-distante pour cette page ne peut pas intervenir avant la fin de la durée PERIODECORRELATION.
On notera que le cas K=l correspond à la fonction de distance d'utilisation utilisée par l'algorithme LRU classique pour le choix de la victime.
Les simulations réalisées ont montré que le cas K=2 constitue un compromis efficace, bien adapté aux structures de données qui évoluent (walking indexed data structures). En effet, plus la valeur de K est élevée, et plus la quantité d'information à stocker est importante, et l'algorithme devient alors relativement coûteux à l'exécution.
L'intérêt du fichier HISTORIQUE dans l'algorithme LRU-Etendu 1 selon la présente invention est mis en évidence ci-après à l'aide d'un exemple avec K=2. A chaque fois qu'une page quelconque p est référencée, elle est amenée en mémoire centrale (si elle n'y est pas déjà présente), et donc, un historique d'accès d'au moins une référence est disponible. Si l'accès antérieur à la page p est très éloigné de telle façon qu'aucun enregistrement n'en a été conservé, le calcul de la distance d'utilisation, après la durée PERIODECORRELATION, donne bt (2, p) =00 et p sera choisie vraisemblablement comme victime au prochain défaut de
<Desc/Clms Page number 27>
page. Il est alors possible d'avoir un comportement tel que la page p est référencée et exclue ensuite car sa référence antérieure n'est pas disponible, puis elle est à nouveau référencée et exclue pour la même raison, et ainsi de suite. La page p est, dans ce comportement, référencée fréquemment, mais l'information de référence la concernant est minimale. Le fichier HISTORIQUE permet d'éviter ce type de situation en fournissant un historique des accès pour les pages non résidentes en mémoire centrale. Selon l'invention, la distance d'utilisation d'une page p résidente en mémoire centrale est calculée à partir des dates de référence disponibles dans le tableau MEMCENTRALE et dans celles disponibles dans le fichier HISTORIQUE. Une valeur raisonnable peut être fixée à la durée de rétention PERIODERETENTION en considérant la K-distance maximale qui permet d'assurer aux pages d'être résidentes en mémoire centrale. La Kdistance maximale constituera la borne supérieure pour la durée PERIODERETENTION, car il n'est pas souhaitable qu'une page satisfasse le critère de rétention au-delà de cette K-distance maximale.
En référence aux Figs. 6 et 7, il est maintenant décrit un troisième mode de réalisation préféré d'un algorithme de remplacement de page inclus dans un procédé de gestion de mémoire virtuelle selon l'invention. Pour des raisons de commodité, ce troisième mode de réalisation préféré est désigné par la suite "LRU-Etendu 2".
<Desc/Clms Page number 28>
Les principales caractéristiques de l'algorithme LRU-Etendu 2 sont résumées de manière synthétique dans le cadre SA30 à la Fig. 6. Comme indiqué dans le cadre SA30, une mesure des performances est effectuée par l'algorithme LRU-Etendu 2, afin de commuter éventuellement vers un autre mode de fonctionnement en cas de dégradation des performances, de manière analogue à celle décrite plus haut pour l'algorithme LRU-Avancé.
La description d'une telle commutation ne sera pas répétée ici.
L'algorithme LRU-Etendu 2 ne diffère sensiblement de l'algorithme LRU-Etendu 1 décrit précédemment que par la fonction utilisée pour le choix de la page victime.
Dans l'algorithme LRU-Etendu 2, il est fait appel à une fonction Somme (K, p) calculant la somme des K dernières dates de référence, définie ci-dessous en référence à la Fig. 7.
A la Fig. 7, il est représenté une chaîne de références rg, r,..., r connue jusqu'à la référence rt et comprenant t+1 références, ri étant une référence quelconque de la chaîne. Soit une page p quelconque, la fonction Somme (K, p) est définie de la manière suivante :
Somme (K, p) i pour les K dernières ri telles que ri=p.
Contrairement à la fonction b (K, p) qui donne la distance d'utilisation vers un point précis, la Kième référence, et qui n'intègre pas le caractère récent des références intervenues après la Kième (K-lième, K-2ième,
<Desc/Clms Page number 29>
... etc. ), la fonction Somme (K, p) intègre par la somme des indices i une"pondération"qui donne plus d'importance aux références récentes. Plus la fonction Somme (K, p) prend une valeur élevée et plus la page aura une probabilité forte d'être référencée à nouveau. La page victime à exclure de la mémoire centrale est donc ici celle dont la Somme (K, p) est la plus faible.
Le seul choix qui pose un problème est illustré en SA31, SA32 et SA33 à la Fig. 6, et concerne le cas où plusieurs pages ont des Sommes (K, p) égales. La page victime est alors choisie à l'aide d'une stratégie de remplacement auxiliaire, par exemple LRU.
De même que pour l'algorithme LRU-Etendu 1, après un premier référencement d'une page quelconque p, Le calcul de la Somme (K, p) pour cette page ne peut pas intervenir avant la fin de la durée PERIODECORRELATION.
Selon l'invention, la Somme (K, p) d'une page p résidente en mémoire centrale est calculée à partir des dates de référence disponibles dans le tableau MEMCENTRALE et dans celles disponibles dans le fichier HISTORIQUE.
Conformément à l'esprit de l'invention, les algorithmes LRU-Etendu 1 et 2 peuvent bien entendu être combinés entre eux, et/ou, indépendamment ou conjointement, être combinés également avec d'autres algorithmes connus, sur la base de commutations commandées par la mesure des performantes. Une combinaison de ce type entre mode normal LRU et mode
<Desc/Clms Page number 30>
avancé a été présentée ci-dessus en détail pour l'algorithme LRU-Avancé. Compte-tenu des enseignements apportées par la présente demande, de telles combinaisons sont dans le domaine de compétence des hommes du métier et ne sont donc pas détaillées ici.
En référence aux Figs. 8, 9 et 10, il est maintenant décrit un algorithme général de plusieurs modes de réalisation préférés d'un procédé de gestion de mémoire virtuelle selon l'invention, particulièrement adapté pour un index de très grande taille. Les pages considérées dans la suite sont des pages d'index. Cet algorithme de gestion de mémoire virtuelle selon l'invention intègre dans sa fonction Stratégie~Allocation un algorithme de remplacement de page selon l'invention tel que ceux décrits ci-dessus en référence aux Figs. 1 à 7.
Dans cet algorithme, un tableau Memcentrale représente la mémoire centrale et contient TAILLEMEMOIRECENTRALE Cases. Une Case est une classe générique qui possède les caractéristiques suivantes : - un entier Numéropage : numéro de la page stockée dans la case, - une donnée Donnéepage : type de donnée stockée dans la case, - un tableau d'entiers Tabdateréf pouvant contenir Kréf dates de référence, - un entier Nbdates qui indique le nombre de dates stockées dans le tableau Tabdateréf.
<Desc/Clms Page number 31>
Cette classe générique a été implémentée afin de pouvoir employer différents types de données. Pour des raisons de simplification de la description, des Cases d'entier sont seulement considérées ici.
L'algorithme dispose d'un certain nombre de fonctions qui sont les suivantes : - Consultertermesuivantchaîneréf (entier Unterme, fichier Unechaîneréf) : fonction qui renvoie la terme suivant de la chaîne de références (un numéro de page) contenue dans le fichier Unechaîneréf, - Numéropageprésent (entier Numéropage, tableau Memcentrale) : fonction qui indique si la page Numéropage est présente dans le tableau Memcentrale. Elle renvoie l'indice de la case si la page a été trouvée et-1 dans le cas contraire.
- Consultermemsecondaire (entier Numéropage, fichier Memsecondaire) : fonction qui renvoie la donnée de la page Numéropage dans le fichier Memsecondaire (fichier simulant la mémoire secondaire).
Chargementpagememcentrale (entier Numéropage, type donnée Donnéepage, entier Temps, Tableau Memcentrale) : fonction qui charge une page de numéro Numéropage et de donnée Donnéepage dans le tableau Memcentrale. Cette fonction comporte la pré-condition suivante : la page à charger n'est pas présente dans le tableau Memcentrale. Le paramètre Temps concerne le temps de simulation et est incrémenté selon le déroulement du chargement de la page dans le tableau. Ce
<Desc/Clms Page number 32>
chargement s'effectue de la manière suivante : la page à charger est affectée à la première case libre dans le tableau Memcentrale et si aucune case n'est disponible, une stratégie d'allocation est utilisée afin de déterminer une case victime. Cette fonction retourne également le numéro de la case qui a été employée pour charger la page.
Comme montré à la Fig. 8, l'algorithme de gestion de mémoire virtuelle d'index selon l'invention est conçu pour le traitement de plusieurs chaînes de références.
L'algorithme comprend une boucle i, Bl, qui traite successivement chacune des chaînes de références. Les chaînes de références sont au nombre de NBCHAINESREF.
L'étape SI ouvre le fichier de la chaîne de références courante, désignée Chaîneréfcourante. Les étapes suivantes S2 à S5 sont des étapes d'initialisation de l'algorithme. L'étape S2 initialise une horloge Temps fournissant un temps de simulation.
L'étape S3 initialise un paramètre Termecourant de telle façon à démarrer avec la consultation du premier terme de la chaîne de références courante Chaîneréfcourante.
Un compteur de défauts de page Nbdéfautspage est initialisé à l'étape S4. Une initialisation des cases de la mémoire centrale est effectuée à l'étape S5.
Le traitement des termes de la chaîne de références courante est réalisé par l'étape S6. Une étape S7 est prévue à la fin de l'algorithme pour
<Desc/Clms Page number 33>
stocker les résultats de simulation pour chacune des chaînes de références.
L'étape S6 pour le traitement de la chaîne de références courante est montrée en détail à la Fig. 9.
L'étape S6 comprend une boucle j, B61, qui traite successivement chacun des termes de la chaîne courante Chaîneréfcourante. Le nombre de termes d'une chaîne de références est donné par NBTERMESCHAINEREF.
Dans la boucle j, l'étape S61 incrémente de +1 Termecourant. Lors du premier passage dans la boucle j, après l'incrémentation, Termecourant a la valeur 0 et le premier terme, indicé 0, de la chaîne de références est donc traité. A l'étape S62, le numéro de page désigné par Termecourant est lu dans Chaîneréfcourante et est affecté à Numéropage. L'étape S63 fait appel à la fonction Numéropageprésent pour vérifier qu'une case de la mémoire centrale ne contient pas déjà la page voulue.
La condition S64 détecte si la valeur-1 a été affectée ou pas à Numérocase par la fonction Numéropageprésent. Lorsque la valeur-1 est détectée, S65, la page Numéropage n'est pas présente en mémoire centrale et il se produit un défaut de page. Les étapes S66 à S68 sont alors réalisées. En S66, Nbdéfautspage est incrémenté de +1 pour comptabiliser le défaut de page détecté. En S67, le type de donnée de la page Numéropage est lu en mémoire secondaire et est affecté à Donnéepage. L'étape S68 fait appel à la fonction Chargementpagememcentrale pour charger Numéropage dans
<Desc/Clms Page number 34>
le tableau Memcentrale simulant la mémoire centrale, avec les valeurs de Donnéepage et de Temps. La fonction Chargementpagememcentrale est détaillée dans la suite en référence à la Fig. 10. Brièvement, la fonction Chargementpagememcentrale effectue son chargement dans une case Ncase qu'elle a détectée libre ou qui a été désignée par la stratégie d'allocation, et elle renvoie le numéro de la case utilisée qui est affecté à Numérocase. Numérocase contient donc en S68 le numéro de la case dans la mémoire centrale où doit effectivement être chargée la page Numéropage.
Lorsque la valeur-1 n'est pas détectée par la condition S64, la page Numéropage est présente dans le tableau Memcentrale et l'étape S69 est effectuée pour incrémenter l'horloge Temps avant une mise à jour des dates de référence Dateréf qui est réalisée par l'étape S671.
L'étape S671 termine le traitement du terme Termecourant de la chaîne de références en cours et est exécutée à la suite de l'étape S68 ou de l'étape S69. L'étape S671 réalise dans la case Numérocase du tableau Memcentrale une mise à jour, Maj~Dateréf, des dates de référence pour la page traitée qui est indiquée par Termecourant.
La fonction Chargementpagememcentrale, S68, est décrite de manière détaillée à la Fig. 10.
<Desc/Clms Page number 35>
Les étapes S680, S681 et S682 intialisent le numéro de case Ncase=-l, la valeur booléenne Trouvecaselibre=Faux, et le compteur de boucle m=0.
Une boucle B683 est employée afin de détecter une case libre dans le tableau Memcentrale. Les cases sont scrutées successivement de la première case Ncase=0 à la dernière case Ncase=TAILLEMEMOIRECENTRALE-1.
La scrutation s'arrête lorsqu'une case libre est trouvée en S684, caselibre (Memcentrale [m]. Dans ce cas, étapes S687 et S688, l'état du booléen Trouvecaselibre est commuté à Vrai et le numéro Ncase de la case libre est égal à m. La fonction est ensuite complétée par une incrémentation de +1 de Temps, étape S6896, une affectation de nouvelles valeurs (numéro de page et donnée) dans la case Ncase, étape S6898, et le renvoi de la valeur de Ncase, étape S6899.
Tant qu'aucune case libre n'est trouvée dans la boucle B683, la scrutation est poursuivie en incrémentant le compteur m, étape S689. Dans le cas où aucune case libre n'a été trouvée après scrutation complète de Memcentrale, m=TAILLEMENCENTRALE-1, les étapes S6893, S6894 et S6895 sont réalisées.
L'étape S6893 incrémente de +1 la valeur de Temps.
L'étape S6894 fait appel à la stratégie d'allocation pour qu'elle fournisse un numéro Ncase d'une case victime dans laquelle sera chargée la page traitée.
L'étape S6895 supprime dans la case Ncase les dates de référence de la page victime écrasée par le chargement
<Desc/Clms Page number 36>
de la page traitée. La fonction est ensuite complétée par l'affectation de nouvelles valeurs (numéro de page et donnée) dans la case Ncase, étape S6898, et le renvoi de la valeur de Ncase, étape S6899.
Il a été décrit dans ce qui précède des modes de réalisation de l'invention dans lesquels les objets manipulés étaient limités à une page. En référence à la Fig. ll, il est maintenant fourni quelques compléments d'information sur les adaptations à apporter aux algorithmes selon l'invention lorsque des blocs de mémoire de tailles différentes doivent être manipulés.
Ces adaptations permettent un fonctionnement avec des applications gérant des objets volumineux de taille supérieure à une page, notamment des bases de données d'images dans lesquelles les images sont regroupées par indexation en classes et sous-classes. Le bloc de mémoire à charger peut par exemple être constitué par une partie d'index relative à une classe ou une sousclasse d'images.
Comme montré à la Fig. 11, dans laquelle la mémoire de chargement est représentée par un tampon 1 d'un système de gestion de base de données (SGBD), l'approche de l'invention consiste à conserver la page comme unité élémentaire et à répartir un bloc de mémoire volumineux à charger sur plusieurs pages élémentaires consécutives de même taille.
Le tampon 1 est divisé en emplacements 10 dont la taille est égale à celle de la page élémentaire. Un bloc
<Desc/Clms Page number 37>
à charger 2, situé en mémoire secondaire, est divisé en pages élémentaires consécutives p. Selon l'invention, l'algorithme commence par rechercher dans le tampon 1 un nombre d'emplacements libres consécutifs suffisants pour contenir le bloc à charger 2. Si la recherche est un succès, le bloc 2 est chargé dans les emplacements libres localisés. Dans le cas contraire, l'algorithme de remplacement de page est sollicité une ou plusieurs fois afin d'identifier une ou plusieurs pages victimes consécutives dans le tampon 1, de façon à atteindre le nombre voulu d'emplacements libres consécutifs pour le chargement du bloc 2. Dans le tampon 1, les emplacements 10 sont réorganisés périodiquement afin de maximiser leur occupation et de minimiser la fragmentation. Les pages à remplacer sont choisies de manière à ce que leur nombre soit le plus faible possible, afin de minimiser les entrées/sorties. Les pages remplacées sont de préférence les plus anciennes possibles.
Les principes de l'invention étant ici divulgués, différentes modifications et variantes apparaîtront aux hommes du métier. Ces modifications et variantes devront être considérées comme incluses dans le champ d'application de l'invention, lequel n'est nullement limité aux modes de réalisation actuellement préférés tels qu'ils ont été décrits ci-dessus.

Claims (12)

  1. REVENDICATIONS 1. Procédé de gestion de mémoire virtuelle utilisant un algorithme de remplacement de page pour sélectionner dans une mémoire centrale des cases occupées contenant des pages résidentes qui doivent être exclues de ladite mémoire centrale afin de charger dans les cases ainsi libérées des pages requises dans ladite mémoire centrale, caractérisé en ce qu'il comprend une mesure de performances (Nbdéfautspage) pour commander des commutations entre des modes de fonctionnement différents (mode normal, mode avancé) dudit algorithme de remplacement de page.
  2. 2. Procédé de gestion de mémoire virtuelle selon la revendication 1, caractérisé en ce que ladite mesure de performances comprend un comptage d'un nombre de défauts de page (Nbdéfautspage) et/ou un comptage d'un nombre de pages récemment référencées exclues (Nbpagexclrécréf) de ladite mémoire centrale.
  3. 3. Procédé de gestion de mémoire virtuelle selon la revendication 1 ou 2, caractérisé en ce que ledit algorithme de remplacement de page (LRU-Avancé) comprend un premier mode de fonctionnement par défaut (mode normal) dans lequel une stratégie de remplacement de page de type LRU est appliquée sur la totalité d'une file (FLRU-A) dédiée aux pages résidentes en mémoire
    <Desc/Clms Page number 39>
    centrale, et un deuxième mode de fonctionnement (mode avancé) dans lequel la stratégie de remplacement de page de type LRU est appliquée sur une première région (Région LRU) de ladite file (FLRU-A) dédiée aux pages résidentes en mémoire centrale et une stratégie de remplacement de page faisant appel à une prédiction mathématique est appliquée sur des deuxième et troisième régions (Régions EARLY et LATE) de ladite file (FLRU-A) dédiée aux pages résidentes en mémoire centrale, avec ladite première région (LRU) correspondant à des pages dans ladite mémoire centrale les plus récemment référencées, ladite deuxième région (EARLY) correspondant à des pages dans ladite mémoire centrale moins récemment référencées, et ladite troisième région (LATE) correspondant à des pages dans ladite mémoire centrale encore moins récemment référencées.
  4. 4. Procédé de gestion de mémoire virtuelle selon l'une quelconque des revendications 1 à 3, caractérisé en ce que ledit algorithme de remplacement de page comprend également une gestion d'une file (PRRE-A) dédiée à des pages récemment référencées exclues de ladite mémoire centrale.
  5. 5. Procédé de gestion de mémoire virtuelle selon la revendication 1, caractérisé en ce ledit algorithme de remplacement de page comprend une gestion d'un tableau (MEMCENTRALE) représentant ladite mémoire centrale et
    <Desc/Clms Page number 40>
    contenant les K dernières dates de référence (Dateréf), au maximum, pour chaque page résidente en mémoire centrale, K étant un entier prédéterminé supérieur à 1, et une gestion d'un fichier historique (HISTORIQUE) conservant pendant une durée prédéterminée (PERIODERETENTION) les dernières dates de référence (Dateréf) de pages non résidentes en mémoire centrale, et en ce que ledit algorithme de remplacement de page sélectionne lesdites cases occupées à libérer dans ladite mémoire centrale en fonction desdites dernières dates de référence (Dateréf) contenues dans ledit tableau (MEMCENTRALE) représentant la mémoire centrale et dans ledit fichier historique (HISTORIQUE).
  6. 6. Procédé de gestion de mémoire virtuelle selon la revendication 5, caractérisé en ce que les cases occupées à libérer de ladite mémoire centrale sont sélectionnées à l'aide d'un calcul de distance d'utilisation bt (K, p) opérant sur une chaîne de références ro, r1,..., ri,..., rt connue jusqu'à une référence rt et indiquant une succession temporelle des références aux pages, ledit calcul de distance
    Figure img00400001
    d'utilisation étant défini de la manière suivante : bt (K, p) =x si rt-x=p et qu'il a eu exactement K-l autres références ri=p telles que t-x < i t, bt (K, p) =oo si p n'apparaît pas au moins K fois dans la chaîne de références ro, ri,..., rt,
    <Desc/Clms Page number 41>
    K étant ledit nombre maximum de dates de référence (Dateréf) contenues dans ledit tableau (MEMCENTRALE) représentant ladite mémoire centrale, x étant la distance d'utilisation calculée, et i étant un indice entier croissant de 0 à t et indiquant une position de la référence dans la chaîne de références.
    p étant la page considérée pour laquelle une distance d'utilisation est calculée,
  7. 7. Procédé de gestion de mémoire virtuelle selon la revendication 5 ou 6, caractérisé en ce que les cases occupées à libérer de ladite mémoire centrale sont sélectionnées à l'aide d'un calcul de somme Somme bt (K, p) opérant sur une chaîne de références ru, riz ..., ri,..., rt connue jusqu'à une référence rt et indiquant une succession temporelle des références aux pages, ledit calcul de somme étant défini de la manière suivante :
    Somme (K, p) i pour les K dernières ri telles que ri=p p étant la page considérée pour laquelle une somme est calculée,
    K étant ledit nombre maximum de dates de référence (Dateréf) contenues dans ledit tableau (MEMCENTRALE) représentant ladite mémoire centrale, et
    <Desc/Clms Page number 42>
    i étant un indice entier croissant de 0 à t et indiquant une position de la référence dans la chaîne de références.
  8. 8. Procédé de gestion de mémoire virtuelle selon l'une quelconque des revendications 5 à 7, caractérisé en ce que le nombre K est égal à 2.
  9. 9. Procédé de gestion de mémoire virtuelle selon l'une quelconque des revendications 1 à 8, caractérisé en ce qu'une page résidente dans ladite mémoire centrale ne peut pas être exclue de celle-ci avant la fin d'une durée prédéterminée (PERIODECORRELATION) après un premier référencement.
  10. 10. Procédé de gestion de mémoire virtuelle selon l'une quelconque des revendications 1 à 9, caractérisé en ce que lesdites pages requises peuvent être chargées par bloc (2) dans ladite mémoire centrale ou un tampon de mémoire (1), un bloc de pages comprenant un certain nombre de pages consécutives (po, Pi,...) qui sont chargées dans des cases consécutives (100, lu1,...) de ladite mémoire centrale ou dudit tampon de mémoire (1).
  11. 11. Procédé de gestion de mémoire virtuelle selon l'une quelconque des revendications 1 à 10, caractérisé en ce que lesdites pages sont des pages d'index d'une base de données, et notamment, d'une base de données d'images.
    <Desc/Clms Page number 43>
  12. 12. Procédé de gestion de mémoire virtuelle selon la revendication 10, caractérisé en ce que lesdites pages sont des pages d'index d'une base de données, et notamment, d'une base de données d'images, et lesdits blocs de pages sont des parties d'index.
FR0113524A 2001-10-19 2001-10-19 Procedes de gestion de memoire virtuelle, notamment pour des index de tres grande taille Withdrawn FR2831290A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0113524A FR2831290A1 (fr) 2001-10-19 2001-10-19 Procedes de gestion de memoire virtuelle, notamment pour des index de tres grande taille

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0113524A FR2831290A1 (fr) 2001-10-19 2001-10-19 Procedes de gestion de memoire virtuelle, notamment pour des index de tres grande taille

Publications (1)

Publication Number Publication Date
FR2831290A1 true FR2831290A1 (fr) 2003-04-25

Family

ID=8868496

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0113524A Withdrawn FR2831290A1 (fr) 2001-10-19 2001-10-19 Procedes de gestion de memoire virtuelle, notamment pour des index de tres grande taille

Country Status (1)

Country Link
FR (1) FR2831290A1 (fr)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5392415A (en) * 1992-12-15 1995-02-21 International Business Machines Corporation System for grouping non-contiguous pages belonging to a storage object for page out
US5432919A (en) * 1989-07-06 1995-07-11 Digital Equipment Corporation Sequential reference management for cache memories

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5432919A (en) * 1989-07-06 1995-07-11 Digital Equipment Corporation Sequential reference management for cache memories
US5392415A (en) * 1992-12-15 1995-02-21 International Business Machines Corporation System for grouping non-contiguous pages belonging to a storage object for page out

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GLASS G ET AL: "ADAPTIVE PAGE REPLACEMENT BASED ON MEMORY REFERENCE BEHAVIOR", PROCEEDINGS OF THE 1997 ACM SIGMETRICS INTERNATIONAL CONFERENCE ON MEASUREMENT AND MODELING OF COMPUTER SYSTEMS. SEATTLE, WA, JUNE 15-18, 1997, PROCEEDINGS OF THE ACM SIGMETRICS INTERNATIONAL CONFERENCE ON MEASUREMENT AND MODELING OF COMPUTER SYSTEMS, 15 June 1997 (1997-06-15), pages 115 - 126, XP000724401, ISBN: 0-89791-909-2 *
O'NEILL E J ET AL: "THE LRU-K PAGE REPLACEMENT ALGORITHM FOR DATABASE DISK BUFFERING", SIGMOD RECORD, ASSOCIATION FOR COMPUTING MACHINERY, NEW YORK, US, vol. 22, no. 2, 1 June 1993 (1993-06-01), pages 297 - 306, XP000418209 *

Similar Documents

Publication Publication Date Title
US7725437B2 (en) Providing an index for a data store
US8463787B2 (en) Storing nodes representing respective chunks of files in a data store
US8356154B2 (en) Storage system, data relocation method thereof, and recording medium that records data relocation program
EP0935781A1 (fr) Procede d&#39;allocation de memoire dans un systeme de traitement de l&#39;information multiprocesseur
US8655902B2 (en) Identifying superphrases of text strings
WO2003057648A9 (fr) Procedes et systemes de recherche et d&#39;association de ressources d&#39;information telles que des pages web
EP1483673B1 (fr) Methode de stockage de blocs de donnees dans une memoire
EP1918822A1 (fr) Système et procédé d&#39;indexation de mémoire
CN111680063B (zh) Elasticsearch分页查询数据的方法及装置
US11625187B2 (en) Method and system for intercepting a discarded page for a memory swap
CN108108089A (zh) 一种图片加载方法及装置
US20090089266A1 (en) Method of finding candidate sub-queries from longer queries
CN103874996B (zh) 用于利用散列来执行基于全文的逻辑运算的方法
EP1939767A1 (fr) Construction d&#39;un fichier de données de cooccurrence de grande taille
EP0251861B1 (fr) Unité de gestion de mémoire
FR2831290A1 (fr) Procedes de gestion de memoire virtuelle, notamment pour des index de tres grande taille
CN111522509A (zh) 分布式存储系统的缓存方法及设备
FR3074939A1 (fr) Procede de gestion du systeme de fichiers d&#39;un terminal informatique
FR2851349A1 (fr) Procede de gestion d&#39;une pile de microprocesseur pour la sauvegarde de donnees contextuelles
Chikhi et al. Combining flash memory and fpgas to efficiently implement a massively parallel algorithm for content-based image retrieval
US20160103623A1 (en) Method for controlled collision of hash algorithm based on nand flash memory
EP2860630A1 (fr) Procédé de transfert de données dans un environnement dynamique
FR2798206A1 (fr) Moteur de recherche et procede d&#39;indexation et de recherche de documents
FR3047580B1 (fr) Index de table de base de donnees
Martynov Experimental study of protocol-independent redundancy elimination algorithms

Legal Events

Date Code Title Description
ST Notification of lapse