FR3017222A1 - Appareil, procede et programme de traitement d'informations - Google Patents

Appareil, procede et programme de traitement d'informations Download PDF

Info

Publication number
FR3017222A1
FR3017222A1 FR1463490A FR1463490A FR3017222A1 FR 3017222 A1 FR3017222 A1 FR 3017222A1 FR 1463490 A FR1463490 A FR 1463490A FR 1463490 A FR1463490 A FR 1463490A FR 3017222 A1 FR3017222 A1 FR 3017222A1
Authority
FR
France
Prior art keywords
page
free
memory
size
normal
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
FR1463490A
Other languages
English (en)
Inventor
Takayuki Okamoto
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of FR3017222A1 publication Critical patent/FR3017222A1/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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management

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)
  • Memory System (AREA)

Abstract

La présente invention concerne un appareil de traitement d'informations qui comprend une unité de stockage de page libre et une unité d'allocation de page. L'unité de stockage de page libre divise une région de mémoire dans une mémoire en pages d'une pluralité de tailles de page différentes et gère les pages divisées, et stocke des informations de gestion sur un état d'initialisation correspondant à une région de mémoire inutilisée dans la mémoire. L'unité d'allocation de page sélectionne une page libre d'une taille de page en fonction d'une taille de région demandée ou une taille de page demandée à partir de l'unité de stockage de page libre lorsqu'une allocation de la région de mémoire inutilisée est demandée, et effectue un processus d'initialisation sur une région de mémoire sur laquelle le processus d'initialisation n'a pas été effectué dans une région de mémoire correspondant à la page libre en utilisant des informations de gestion sur la page libre sélectionnée.

Description

DOMAINE La présente invention concerne un appareil de traitement d'informations, un procédé de commande exécuté par un appareil de traitement d'informations, et un 5 programme de commande pour un appareil de traitement d'informations. CONTEXTE Un processeur qui exécute un système d'exploitation (OS) implémenté pour un ordinateur réalloue une région de mémoire libérée après l'exécution d'un processus 10 ou une tâche précédent(e) en tant que région de mémoire de mémoire pour utilisation dans l'exécution d'un nouveau processus ou tâche qui fonctionne avec l'OS. Avant l'exécution de la réallocation d'une telle région de mémoire, la région de mémoire est réinitialisée pour prévenir la fuite des informations sur le processus ou la tâche précédent(e) laissées dans la région de mémoire à réallouer. Cependant, il 15 peut exister un cas dans lequel l'initialisation n'est pas souhaitée dans l'allocation de mémoire dans le noyau de l'OS, ou un cas dans lequel une région de mémoire libérée n'est pas utilisée dans l'exécution d'un nouveau processus dans une durée valide spécifiée telle qu'une période allant jusqu'à la mise hors tension d'une alimentation d'un ordinateur, même si la région de mémoire libérée a été initialisée. Ensuite, pour 20 contrôler l'exécution indésirable d'initialisation, la réinitialisation d'une région de mémoire peut être effectuée lorsque la réallocation d'une région de mémoire est demandée. Dans l'OS exécuté par un processeur, la région de mémoire en mémoire est 25 gérée par division de celle-ci en unités de pages, c'est-à-dire, en unités de taille (taille de région) de régions de mémoire consécutives spécifiées. La taille d'une page gérée par l'OS peut être de 4 Koctets ou 8 Koctets. Récemment, suivant le type d'OS ou de processus ou tâche effectuée sous le contrôle de l'OS, une page dont la taille est plus grande qu'une taille normale de 4 Koctets ou 8 Koctets, par exemple une 30 page en unités de Moctets, a été utilisée. Dans l'explication suivante, une page d'une taille normale telle que 4 Koctets ou 8 Koctets est appelée page normale par souci de 3 0 1 72 2 2 2 commodité, et une page dont la taille plus grande que la taille normale est appelée grande page par souci de commodité. Lorsqu'une région de mémoire en mémoire est gérée en utilisant une grande page, le nombre de pages demandé pour utiliser une 5 mémoire de la même taille est plus faible que dans le cas où une page normale est utilisée, de manière à réduire les coûts de gestion de page. Par conséquent, lorsqu'une grande page est utilisée dans la gestion de la région de mémoire dans la mémoire, une occurrence de dysfonctionnements tels qu'un TLB (Translation Lookaside Buffer) peut être réduite, et les performances de l'application peuvent être 10 améliorées. Cependant, lorsqu'une grande page de taille unique est utilisée dans la gestion de la région de mémoire en mémoire, la quantité effectivement disponible de mémoire peut être réduite. Par exemple, si un programme de 64 Koctets est exécuté dans le cas où une région de mémoire dans la mémoire est gérée en utilisant une 15 grande page de 4 Moctets, alors il devient nécessaire d'allouer une région de mémoire de 4 Moctets pour une page pour l'exécution du programme, même si la taille du programme est de seulement 64 Koctets. Par conséquent, la mémoire peut être plus efficacement utilisée si des pages de différentes tailles sont disponibles en fonction de l'utilisation. Un procédé pour 20 gérer efficacement des blocs de mémoire de différentes tailles peut être un système compagnon, qui est utilisé dans un noyau Linux et ailleurs. Dans le système de compagnon, une pluralité de pages consécutives sont combinées avec des pages de plus grandes tailles, et une grande page est divisée en pages plus petites, de manière à contrôler de façon variable une taille de page. Grâce à l'exécution de la 25 combinaison et de la division de pages, une région de mémoire d'une taille de région appropriée est allouée en fonction du processus ou de la tâche exécuté(e). Le système d'allocation de page suivant est connu. En ce qui concerne la mémoire gérée dans une unité de page, une page non sécurisée pour laquelle il est nécessaire de prévenir la fuite de données est détectée lorsqu'une demande 30 d'acquisition de page est émise par une application, lorsqu'une page est libérée de l'application, ou lorsque des données sont définies pour une page depuis l'application qui a sécurisé une page. Ensuite, seule la page non sécurisée détectée est initialisée. De plus, le système d'allocation de mémoire suivant est connu. Un mécanisme 5 de moniteur de charge de système surveille l'état de charge d'un système informatique, et lorsqu'il détermine que la charge du système est faible, il active un mécanisme de mise à zéro de page. Le mécanisme de mise à zéro de page extrait à partir d'un groupe de pages libres une page à allouer à la prochaine demande, met à zéro le contenu, et transfère la page dans un groupe de pages mises à zéro. Lorsque 10 le mécanisme de mise à zéro de page détermine qu'une page mise à zéro est demandée, il retourne à un demandeur la page extraite du groupe de pages mises à zéro préparée par le mécanisme de mise à zéro de page. De plus, le système de microprocesseur suivant est connu. Un microprocesseur spécifie l'adresse de tête et la taille à initialiser dans la mémoire. Un 15 contrôleur DMA initialise la mémoire par transfert des données d'initialisation à toutes les adresses à initialiser dans la mémoire ayant l'adresse de tête et la taille spécifiées. Lorsque la mémoire est initialisée par le transfert DMA, la largeur de bit de la sortie de données d'initialisation depuis le registre de données d'initialisation est étendue dans le circuit d'expansion de l'argent the bit, et transférée à la mémoire 20 par l'intermédiaire d'un bus de données. [Documents de brevet] Document de brevet 1 publication de brevet japonais rendue publique n° 2006-48436 Document de brevet 2 publication de brevet japonais rendue publique n° 11-3271 Document de brevet 3 publication de brevet japonais rendue publique n° 200625 215991 RÉSUMÉ Un des problèmes à résoudre par l'invention est d'effectuer le processus d'allocation à haute vitesse d'une région de mémoire initialisée en fonction de la taille 30 spécifiée par un demandeur d'acquisition de mémoire dans un appareil de traitement d'informations qui gère des régions de mémoire en mémoire en utilisant des pages de différentes tailles. Selon un aspect des modes de réalisation, un appareil de traitement d'informations comprend une unité de stockage de page libre et une unité d'allocation de page. L'unité de stockage de page libre divise une région de mémoire dans une mémoire en pages d'une pluralité de tailles de page différentes et gère les pages divisées, et stocke des informations de gestion sur un état d'initialisation correspondant à une région de mémoire inutilisée dans la mémoire. L'unité d'allocation de page sélectionne une page libre d'une taille de page en fonction d'une taille de région demandée ou une taille de page demandée depuis l'unité de stockage de page libre lorsqu'une allocation de la région de mémoire inutilisée est demandée, et effectue un processus d'initialisation sur une région de mémoire sur laquelle le processus d'initialisation n'a pas été effectué dans une région de mémoire correspondant à la page libre en utilisant des informations de gestion sur la page libre sélectionnée. BRÈVE DESCRIPTION DES DESSINS La figure 1 est une configuration fonctionnelle d'un système informatique 20 exemplaire comprenant un appareil de traitement d'informations selon un mode de réalisation ; La figure 2 est une vue schématique d'une structure de page exemplaire selon un mode de réalisation ; La figure 3 est un exemple d'une liste de gestion de pages libres selon un 25 mode de réalisation ; La figure 4 est une configuration matérielle d'un système informatique exemplaire comprenant un appareil de traitement d'informations selon un mode de réalisation ; La figure 5 est un schéma de principe exemplaire d'un processus de mise à 30 zéro effectué par une unité de mise à zéro ; La figure 6 est un schéma de principe exemplaire d'un processus d'allocation de mémoire effectué par une unité d'allocation de page ; La figure 7 est un schéma de principe exemplaire d'un processus de mise à jour des informations de gestion associées à un processus de division ; La figure 8 est une première vue explicative d'un processus de mise à jour des informations de gestion associées à un processus de division ; La figure 9 est une deuxième vue explicative d'un processus de mise à jour des informations de gestion associées à un processus de division ; La figure 10 est un schéma de principe exemplaire d'un processus de mise à jour des informations de gestion associées à un processus de combinaison ; La figure 11 est une première vue explicative d'un processus de mise à jour des informations de gestion associées à un processus de combinaison ; La figure 12 est une deuxième vue explicative d'un processus de mise à jour des informations de gestion associées à un processus de combinaison ; La figure 13 est une troisième vue explicative d'un processus de mise à jour 15 des informations de gestion associées à un processus de combinaison ; La figure 14 est une vue explicative d'un processus de mise à zéro avec une première temporisation ; et La figure 15 est une vue explicative d'un processus de mise à zéro avec une deuxième temporisation. 20 BRÈVE DESCRIPTION DES DESSINS Le mode de réalisation de la présente invention est décrit ci-dessous référence aux dessins annexés. Le temps de traitement souhaité pour allouer nouvellement une région de 25 mémoire en mémoire à un processus ou une tâche peut dépendre du nombre de pages correspondant à la taille de région de la mémoire demandée pour exécuter le processus ou la tâche, et de la taille de région de la mémoire à initialiser pour l'allocation. Dans le cas où la région de mémoire de la mémoire est gérée en utilisant une grande page, le nombre de pages souhaité pour l'allocation peut diminuer plus 30 que dans le cas où la gestion est effectuée en utilisant une page normale. D'autre part, la taille de région de la mémoire à initialiser pour allouer la région de mémoire correspondante à la taille de région demandée est la même que dans le cas où une page normale est utilisée. En conséquence, dans le cas où la région de mémoire dans la mémoire est gérée en utilisant une grande page, la période souhaitée pour le processus d'initialisation de la région de mémoire dans la mémoire peut être une période prédominante dans le temps de traitement souhaité pour allouer nouvellement une région de mémoire correspondant à 1 page à un processus ou une tâche. De plus, si le processus d'initialisation sur une région de mémoire est effectué sur chaque page à allouer lorsque la région de mémoire est allouée, alors le temps 10 demandé dans un processus d'allocation de mémoire en utilisant une grande page sera plus long que le temps dans le cas où une page normale est utilisé. Pour la raison décrite ci-dessus, lorsqu'une région de mémoire en mémoire est gérée en utilisant une grande page, cela peut affecter de façon indésirable les performances ou le comportement du système informatique parallèle total 15 comprenant une pluralité de noeuds de calcul, suivant la durée du temps souhaité pour un processus d'allocation de mémoire comprenant un processus d'initialisation sur la région de mémoire. Par exemple, le temps nécessaire pour le processus d'initialisation effectué dans l'allocation de mémoire dans un noeud de calcul peut être une durée égale ou 20 supérieure au temps de communication entre les noeuds de calcul dans un système informatique. Dans ce cas, si une pluralité de noeuds de calcul exécute simultanément des communications via une API (Application Programming Interface) telle qu'une MPI (Message Passing Interface), etc., un retard dû à une attente d'initialisation de mémoire survient dans l'opération de relais entre une partie des 25 noeuds de calcul. L'influence de l'occurrence du retard affecte tous les noeuds de calcul, de manière à causer un retard dans le processus entier. De plus, dans le processus comprenant une communication inter-processus telle que la communication mentionnée ci-dessus entre les noeuds de calcul, la période de délai d'attente jusqu'à la réponse du processus d'un partenaire de 30 communication peut être définie en tenant compte du pire cas. Ensuite, la période de délai d'attente peut être demandée pour paramétrage de manière à être suffisamment longue en tenant compte du temps d'attente d'initialisation de mémoire mentionnée ci-dessus. Comme décrit ci-dessous de manière détaillée, un appareil de traitement d'informations selon le mode de réalisation de l'invention gère une région de mémoire en mémoire en utilisant des pages d'une pluralité de tailles de page différentes. Par exemple, l'appareil de traitement d'informations selon le mode de réalisation gère l'état d'initialisation (état de mise à zéro) de la région de mémoire qui correspond à chaque page dans la mémoire en utilisant des informations de gestion de chaque page. L'appareil de traitement d'informations selon le mode de réalisation exécute le processus d'initialisation sur la région de mémoire qui correspond à chaque page dans la mémoire en utilisant des informations de gestion de chaque page. Grâce à la gestion de l'état d'initialisation mentionnée ci-dessus et l'exécution du processus d'initialisation, le temps souhaité pour effectuer le processus d'initialisation sur la région de mémoire lorsqu'une région de mémoire dans la mémoire est allouée est réduit, et le processus d'allocation d'une région de mémoire en fonction de la taille de région demandée est effectué à une vitesse élevée. Dans l'explication suivante, le terme « mise à zéro » désigne l'initialisation. La figure 1 est une configuration fonctionnelle d'un système informatique exemplaire comprenant un appareil de traitement d'informations selon un mode de 20 réalisation. Comme illustré sur la figure 1, un système informatique 1 comprend des ordinateurs d'exécution d'application 11-1 à 11-3 et un ordinateur de gestion de tâche 12. Le système informatique 1 est connecté à un appareil terminal d'utilisateur 2 par l'intermédiaire de l'ordinateur de gestion de tâche 12. Le système informatique 25 1 exécute un programme d'application, un code source, un binaire d'exécution, etc., spécifié par une unité de traitement de programme d'application 2A de l'appareil terminal d'utilisateur 2. Dans l'explication suivante, sauf indication contraire, le terme « programme d'application » désigne, par souci de commodité, un programme d'application, un code source, un binaire d'exécution, etc., exécuté par le système 30 informatique 1 sur une instruction de l'appareil terminal d'utilisateur 2. L'ordinateur de gestion de tâche 12 comprend une unité de traitement de planificateur de tâche 12A. L'unité de traitement de planificateur de tâche 12A gère une planification pour permettre à l'un quelconque des ordinateurs d'exécution d'application 11-1 à 11-3 pour effectuer une tâche du programme d'application spécifiée par l'appareil terminal d'utilisateur 2.
Les ordinateurs d'exécution d'application 11-1 à 11-3 exécutent des tâches du programme d'application respectives spécifiées par l'ordinateur de gestion de tâche 12. Les ordinateurs d'exécution d'application 11-1 à 11-3 sont des noeuds de calcul du système informatique 1, et sont des exemples d'un appareil de traitement d'informations selon le mode de réalisation. Sur la figure 1, trois ordinateurs d'exécution d'application 11-1 à 11-3 sont illustrés, mais le nombre d'ordinateurs d'exécution d'application inclus dans le système informatique 1 peut être optionnel. Dans l'explication suivante, sauf indication contraire, les ordinateurs d'exécution d'application 11-1 à 11-3 sont décrits comme un ordinateur d'exécution d'application 11.
L'ordinateur d'exécution d'application 11 comprend une unité de gestion de tâche 110, des unités d'exécution de processus 120-1 et 120-2, et une unité de traitement de système d'exploitation, (OS) 130. Sur la figure 1, deux unités d'exécution de processus 120-1 et 120-2 sont illustrées, mais le nombre d'unités d'exécution de processus incluses dans l'ordinateur d'exécution d'application 11 peut être optionnel. Dans l'explication suivante, sauf indication contraire, les unités d'exécution de processus 120-1 et 120-2 sont décrites comme une unité d'exécution de processus 120. L'unité de gestion de tâche 110 est connectée à l'unité de traitement de planificateur de tâche 12A, l'unité d'exécution de processus 120, et l'unité de traitement d'OS 130. En coopération avec l'unité de traitement de planificateur de tâche 12A, l'unité de gestion de tâche 110 gère l'intégralité de la tâche qui est exécutée dans l'ordinateur d'exécution d'application 11 et qui comprend la planification pour exécuter une tâche d'un programme d'application, la surveillance de l'état d'exécution d'une tâche, la transmission de l'état d'exécution d'une tâche, etc. L'unité de traitement de planificateur de tâche 12A et l'unité de gestion de tâche 110 configurent un système de planification de tâche du système informatique 1. L'unité d'exécution de processus 120 exécute le processus d'un programme d'application spécifié par l'unité de gestion de tâche 110 en utilisant une région de mémoire de la mémoire allouée par l'unité de traitement d'OS 130. L'unité d'exécution de processus 120 exécute le processus du programme d'application spécifié par l'unité de gestion de tâche 110 conformément à la planification spécifiée par l'unité de traitement d'OS 130. L'unité de traitement d'OS 130 exécute l'OS implémenté dans l'ordinateur d'exécution d'application 11. L'unité de traitement d'OS 130 comprend une unité de traitement de planificateur de processus 131, une unité d'allocation de page 132, une 10 unité de mise à zéro 133, et une unité de stockage de page libre 134. L'unité de traitement de planificateur de processus 131 est connectée à l'unité de gestion de tâche 110, l'unité d'exécution de processus 120, et l'unité de mise à zéro 133. En coopération avec l'unité de gestion de tâche 110, l'unité de traitement de planificateur de processus 131 gère la planification de l'exécution du processus du 15 programme d'application par l'unité d'exécution de processus 120 et l'exécution du processus de mise à zéro sur une page libre par l'unité de mise à zéro 133. L'unité d'allocation de page 132 est connectée à l'unité d'exécution de processus 120. L'unité d'allocation de page 132 reçoit une demande pour allouer une région de mémoire dans la mémoire depuis l'unité d'exécution de processus 120. La 20 demande d'allocation de la région de mémoire peut être configurée pour demander une taille de région de mémoire souhaitée pour exécuter le processus, ou pour demander une taille de page souhaitée pour exécuter le processus. L'unité d'allocation de page 132 recherche l'unité de stockage de page libre 134 pour une page libre de la taille de page correspondant à la taille de région de la mémoire 25 demandée depuis l'unité d'exécution de processus 120, ou une page libre correspondant à la taille de page demandé depuis l'unité d'exécution de processus 120. L'unité d'allocation de page 132 détermine si la page libre recherchée a été mise à zéro ou non. Lorsque la page libre recherchée est ou non une page mise à zéro en conséquence de la détermination, l'unité d'allocation de page 132 met à zéro la 30 région de mémoire correspondant à la page libre recherchée. L'unité d'allocation de page 132 transmet la région de mémoire mise à zéro à l'unité d'exécution de processus 120.
L'unité de mise à zéro 133 est connectée à l'unité de traitement de planificateur de processus 131 et l'unité de stockage de page libre 134. L'unité de mise à zéro 133 acquiert une page libre dans l'unité de stockage de page libre 134 conformément à la planification par l'unité de traitement de planificateur de processus 131. L'unité de mise à zéro 133 détermine si la région de mémoire qui correspond à la page libre acquise dans la mémoire a été mise à zéro ou non. Lorsque la région de mémoire correspondant à la page libre acquise est une région de mémoire qui n'a pas été mise à zéro en conséquence de la détermination, alors l'unité de mise à zéro 133 met à zéro la région de mémoire qui n'a pas été mise à zéro. L'unité de stockage de page libre 134 gère la page libre correspondant à la région de mémoire qui n'est pas utilisée dans l'exécution du processus du programme d'application par l'unité d'exécution de processus 120 etc., dans la mémoire. L'unité de stockage de page libre 134 comprend une mémoire physique 1341, un groupe de structures de page 1342, et une liste de gestion de pages libres 1343. La mémoire physique 1341 est une mémoire physique gérée par division de celle-ci en pages d'une pluralité de tailles de page différentes, et est une entité de 20 pages. Sauf indication contraire, le terme « mémoire » est un synonyme du terme « mémoire physique ». Le groupe de structures de page 1342 est un ensemble de structures de page pour la gestion des informations concernant une page. Une structure de page est définie dans une unité de page de la plus petite taille de page dans les pages de 25 tailles multiples à gérer, c'est-à-dire, dans une unité de page normale. Une page normale est une page d'une taille de, par exemple, 4 Koctets ou 8 Koctets. Chaque structure de page définie dans une unité de page normale correspond à la région de mémoire d'une adresse spécifiée dans la mémoire. Chaque structure de page contient des informations sur une page normale 30 correspondante ou une grande page comprenant une page normale correspondante. C'est-à-dire que les informations sur une page normale sont stockées dans une structure de page correspondante, et les informations sur une grande page sont stockées dans au moins une des structures de page correspondantes pour chacune des pages normales obtenues par division d'une grande page. La figure 2 est une 5 vue schématique d'une structure de page exemplaire selon un mode de réalisation. Comme illustré sur la figure 2, une structure de page 1342A selon le mode de réalisation comprend un bit d'état de mise à zéro Al, un bit de verrouillage d'état de mise à zéro A2, un bit de contrôle de processus de mise à zéro A3, et un bit de page libre A4. La structure de page 1342A comprend un pointeur A5 vers la structure de 10 page sur la page libre suivante et un pointeur A6 vers la structure de page sur la page libre précédente. La structure de page 1342A comprend une taille d'état de mise à zéro A7. Le bit d'état de mise à zéro Al est un bit indiquant si la page correspondant à la structure de page 1342A (une page normale correspondante ou une grande page 15 comprenant une page normale correspondante) est une page mise à zéro ou non. Le bit de verrouillage d'état de mise à zéro A2 est un bit sur lequel un drapeau est défini pour l'unité de mise à zéro 133 pour exécuter exclusivement le processus de mise à zéro sur la page correspondant à la structure de page 1342A. Le bit de contrôle de processus de mise à zéro A3 est un bit pour contrôler si le processus de mise à zéro 20 par l'unité de mise à zéro 133 sur la page correspondant à la structure de page 1342A est autorisé ou non. Le bit de page libre A4 est un bit indiquant si la page correspondant à la structure de page 1342A est ou non une page libre. Chacun des drapeaux Al à A4 est, par exemple, un bit, et le drapeau total peut être de pas plus de 64 bits. 25 Le pointeur A5 vers la structure de page sur la page libre suivante et le pointeur A6 vers la structure de page sur la page libre précédente sont des pointeurs vers la structure de page 1342A de la page libre adjacente connectée à la structure de page 1342A dans la liste de gestion de pages libres 1343. Le pointeur A5 vers la structure de page sur la page libre suivante et le pointeur A6 vers la structure de 30 page sur la page libre précédente peuvent être, par exemple, de 64 bits. La taille d'état de mise à zéro A7 est un bit indiquant la longueur de l'état de mise à zéro consécutif dans la région de mémoire correspondant à la page.
C'est-à-dire que la taille d'état de mise à zéro A7 est un bit indiquant la taille de la région mise à zéro consécutive de la page (une page normale correspondante ou une grande page comprenant une page normale correspondante) correspondant à la structure de page 1342A. La taille d'état de mise à zéro A7 est exprimée par une puissance de deux de la taille de page d'une page normale, par exemple, 8 bits. Dans l'appareil de traitement d'informations selon le mode de réalisation, le processus d'allocation de la région de mémoire effectué par l'unité d'allocation de page 132 et le processus de mise à zéro de la région de mémoire effectué par l'unité de mise à zéro 133 sont contrôlés en utilisant les informations dans la structure de page 1342A. Par exemple, en utilisant le bit de verrouillage d'état de mise à zéro A2 et le bit de contrôle de processus de mise à zéro A3, un contrôle est effectué de sorte que les processus par l'unité d'allocation de page 132 et l'unité de mise à zéro 133 ne soient pas exécutés simultanément sur la même page libre (une région de mémoire correspondant à la même page libre). dans la région de mémoire correspondant à une page libre dans la mémoire, une région de mémoire sur laquelle un processus de mise à zéro n'a pas été effectué, c'est-à-dire qu'une région de mémoire sur laquelle le processus de mise à zéro doit être effectué, est identifiée en utilisant le bit d'état de mise à zéro A1, un bit de page libre A4, et une taille d'état de mise à zéro A7. La liste de gestion de pages libres 1343 est une liste pour la gestion d'une page libre correspondant à une région de mémoire inutilisée qui n'est pas utilisée dans l'exécution d'un processus d'un programme d'application par l'unité d'exécution de processus 120. L'unité d'allocation de page 132 et l'unité de mise à zéro 133 recherchent une page libre et une région de mémoire correspondant à la page libre en référence à la liste de gestion de pages libres 1343. La figure 3 est un exemple d'une liste de gestion de pages libres selon un mode de réalisation. Comme illustré sur la figure 3, une entrée indiquant une taille de page telle que 8 Koctets, 16 Koctets, 32 Koctets, 64 Koctets, etc., est ajoutée à la première ligne de la liste de gestion de pages libres 1343, et chacune des pages libres ayant des tailles de page différentes est gérée en association avec une entrée d'une taille de page correspondante. Dans l'exemple illustré sur la figure 3, la taille d'une page normale est 8 Koctets, et les tailles de page de grandes pages sont 16 Koctets, 32 Koctets, et 64 Koctets. Comme indiqué par la flèche illustrée sur la figure 3, les pages libres pour chaque entrée sont combinées les unes avec les autres par les 5 pointeurs A5 et A6 mentionnés ci-dessus des structures de gestion de page correspondantes 1342A. Il doit être noté que la figure3 n'est qu'un exemple de la liste de gestion de pages libres 1343 selon le mode de réalisation. C'est-à-dire que la taille d'une page normale peut être une taille de page quelconque autre que 8 Koctets. De plus, la taille de page d'une grande page peut être une taille de page 10 quelconque autre que 16 Koctets, 32 Koctets, et 64 Koctets. Le type de grande page ayant des tailles de page différentes n'est pas limité à ces trois types, mais peut être un type quelconque. La figure 4 est une configuration matérielle d'un système informatique exemplaire comprenant un appareil de traitement d'informations selon un mode de 15 réalisation. Comme illustré sur la figure 4, un système informatique 3 comprend des ordinateurs d'exécution d'application 31-1 à 31-5, un ordinateur de gestion de tâche 32, et un réseau de connexion internodal 33. Le système informatique 3 est connecté à un appareil terminal d'utilisateur 4 tel qu'un ordinateur via l'ordinateur de gestion 20 de tâche 32. Bien que la figure 4 illustre cinq ordinateurs d'exécution d'application 31-1 à 31-5, un nombre quelconque d'ordinateurs d'exécution d'application peuvent être inclus dans le système informatique 3. Dans l'explication suivante, lorsque les ordinateurs d'exécution d'application 31-1 à 31-5 ne sont pas spécifiquement désignés, un ordinateur d'exécution d'application 31 est décrit. 25 L'ordinateur de gestion de tâche 32 est un appareil de traitement d'informations telles qu'un ordinateur, et correspond à l'ordinateur de gestion de tâche 12. L'unité de traitement de planificateur de tâche 12A dans l'ordinateur de gestion de tâche 12 est, par exemple, une unité centrale (Central Processing Unit : CPU) dans l'ordinateur de gestion de tâche 32. 30 L'ordinateur d'exécution d'application 31 est un appareil de traitement d'informations tel qu'un ordinateur, et correspond à l'ordinateur d'exécution d'application 11, qui est un exemple d'appareil de traitement d'informations selon le mode de réalisation. Chaque ordinateur d'exécution d'application 31 est un noeud de calcul du système informatique 3. Comme illustré sur la figure 4, l'ordinateur d'exécution d'application 31 comprend des coeurs d'unité centrale (CPU) 310-1 à 310-4, des caches de niveau 1 (L1) 320-1 à 320-4, un cache de niveau 2 (L2) 330, une mémoire principale 340, un stockage 350, un lecteur de support de stockage 360, une interconnexion 370, et un bus 380. La figure 4 illustre quatre coeurs de CPU 310-1 à 310-4, et quatre caches de niveau 1 320-1 à 320-4 correspondant aux quatre coeurs de CPU 310-1 à 310-4.
Cependant, un nombre quelconque de coeurs de CPU peuvent être inclus dans l'ordinateur d'exécution d'application 31 et les caches de niveau 1 correspondant aux coeurs de CPU. Dans l'explication suivante, lorsque les coeurs de CPU 310-1 à 310-4 ne sont pas spécifiquement désignés, le coeur de CPU 310 est décrit. Lorsque les caches de niveau 1 320-1 à 320-4 ne sont pas spécifiquement désignés, le cache de niveau 1 320 est décrit. Le coeur de CPU 310 est un coeur d'un processeur, et un circuit logique qui exécute un processus arithmétique. Chaque coeur de CPU 310 est connecté au cache de niveau 1 320 correspondant qui peut être accessible à une vitesse élevée, et est connecté au cache de niveau 2 330 partagé par une pluralité de coeurs de CPU 310.
Le coeur de CPU 310, le cache de niveau 1 320, et le cache de niveau 2 330 configurent un multiprocesseur. Le coeur de CPU 310, le cache de niveau 1 320, et le cache de niveau 2 330 correspondent à l'unité de gestion de tâche 110, l'unité d'exécution de processus 120, l'unité de traitement de planificateur de processus 131, l'unité d'allocation de page 132, et l'unité de mise à zéro 133.
La mémoire principale 340 stocke temporairement un programme étant exécuté et les données étant traitées, et est directement accessible par le coeur de CPU 310. La mémoire principale 340 est, par exemple, une mémoire vive (Random Access Memory : RAM). La mémoire principale 340 correspond à l'unité de stockage de page libre 134.
Le stockage 350 est, par exemple, un disque dur (HDD). Le stockage 350 stocke un programme tel qu'un OS etc., et des données. Le lecteur de support de stockage 360 lit des données stockées dans un support d'enregistrement et/ou écrit des données traitées dans l'ordinateur d'exécution d'application 31 dans un support d'enregistrement. Le support d'enregistrement peut être, par exemple, un CD-ROM (Compact Disk Read Only Memory), un DVD (Digital Versatile Disk), une mémoire USB (Universel Serial Bus), une mémoire flash, etc. L'interconnexion 370 est un dispositif de communication connectée à l'autre noeud 31 et à l'ordinateur de gestion de tâche 32 via le réseau de connexion internodal 33.
Le bus 380 interconnecte un multiprocesseur comprenant le coeur de CPU 310, le cache de niveau 1 320, et le cache de niveau 2 330, la mémoire principale 340, le stockage 350, le lecteur de support de stockage 360, et l'interconnexion 370. Le bus 380 comprend un bus de mémoire qui connecte le multiprocesseur comprenant le coeur de CPU 310, le cache de niveau 1 320, et le cache de niveau 2 330 à la mémoire principale 340. Le réseau de connexion internodal 33 est un câble et un commutateur qui connecte l'ordinateur de gestion de tâche 32 et l'ordinateur de gestion de tâche 32, et interconnecte les ordinateurs d'exécution d'application 31. Dans un premier temps, le processus de mise à zéro effectué par l'unité de mise à zéro 133 est décrit. Le processus de mise à zéro se réfère à un processus d'initialisation sur la région de mémoire correspondant à une page libre dans la mémoire. La figure 5 est un schéma de principe exemplaire d'un processus de mise à zéro effectué par une unité de mise à zéro. Lorsque l'unité de mise à zéro 133 démarre le processus de mise à zéro conformément à une instruction de l'unité de traitement de planificateur de processus 131 (étape S1001), l'unité de mise à zéro 133 se réfère à la liste de gestion de pages libres 1343 de manière à rechercher une page libre pas encore mise à zéro (étape S1002). En particulier, en référence au bit d'état de mise à zéro Al de la structure de page 1342A correspondant à la page libre dans la liste de gestion de pages libres 1343, l'unité de mise à zéro 133 recherche une page libre non mise à zéro. Lorsqu'aucune page libre non mise à zéro n'est trouvée ("NON" dans l'étape S1003) en conséquence de la recherche, l'unité de mise à zéro 133 termine la série de processus de mise à zéro. L'unité de mise à zéro 133 attend une nouvelle instruction pour exécuter le processus de mise à zéro depuis l'unité de traitement de planificateur de processus 131 (étape S1004). Lorsqu'une page libre non mise à zéro est trouvée ("OUI" dans l'étape S1003) en conséquence de la recherche, l'unité de mise à zéro 133 sélectionne une page libre parmi les pages libres trouvées. Comme décrit ci-dessus en référence à la figure 3, la liste de gestion de pages libres 1343 est utilisée pour gérer une page libre pour chaque taille de page différente. Par conséquent, la page libre sélectionnée par l'unité de mise à zéro 133 peut être une page normale, une grande page obtenue par combinaison de pages normales, ou une grande page qui est obtenue par combinaison d'autres grandes pages et dont une taille de page est plus grande que les grandes pages à combiner.
L'unité de mise à zéro 133 tente de verrouiller la page libre sélectionnée entière (étape S1006). En particulier, l'unité de mise à zéro 133 tentes de définir un drapeau de verrouillage indiquant l'exécution exclusive du processus de mise à zéro sur le bit de verrouillage d'état de mise à zéro A2 de la structure de page 1342A correspondant à la page libre sélectionnée. En exécutant le processus dans l'étape 51006, il peut être évité que la même page libre soit traitée par l'unité de mise à zéro 133 et l'unité d'allocation de page 132. Lorsque le verrouillage sur la page libre sélectionnée entière échoue ("NON" dans l'étape S1007), l'unité de mise à zéro 133 retourne au processus dans l'étape S1002, et recherche à nouveau une page libre qui n'a pas été mise à zéro.
Lorsque le verrouillage sur la page libre sélectionnée entière réussit ("OUI" dans l'étape S1007), l'unité de mise à zéro 133 détermine s'il existe ou non une demande en attente d'une allocation de la page libre sélectionnée (étape S1008). En particulier, l'unité de mise à zéro 133 détermine si l'unité d'allocation de page 132 définit ou non la page libre sélectionnée comme étant une page à allouer, en référence au bit de contrôle de processus de mise à zéro A3 de la structure de page 1342A correspondant à la page libre sélectionnée. En confirmant périodiquement le drapeau du bit de contrôle de processus de mise à zéro A3 dans le processus dans l'étape S1008, un contrôle est effectué pour hiérarchiser le processus d'allocation par l'unité d'allocation de page 132 sur le processus de mise à zéro par l'unité de mise à zéro 133, de manière à éviter que l'exécution de processus du programme d'application par l'unité d'exécution de processus 120, qui a demandé à l'unité d'allocation de page 132 d'allouer une mémoire, stagne en raison du processus par l'unité de mise à zéro 133. Lorsqu'il existe une demande en attente d'une allocation de la page libre sélectionnée en conséquence de la détermination, c'est-à-dire, lorsqu'un processus de drapeau de suspension de mise à zéro est défini sur le bit de contrôle de processus de mise à zéro A3 ("NON" dans l'étape S1008), alors l'unité de mise à zéro 133 libère le verrouillage sur la page libre sélectionnée (étape S1009). Ensuite, l'unité de mise à zéro 133 retourne au processus dans l'étape S1002, et recherche à nouveau une page libre qui n'a pas été mise à zéro.
Lorsqu'il n'y a pas de demande en attente d'une allocation de la page libre sélectionnée en conséquence de la détermination, c'est-à-dire, lorsqu'un processus de drapeau de suspension de mise à zéro n'est pas défini sur le bit de contrôle de processus de mise à zéro A3 ("OUI" dans l'étape S1008), alors l'unité de mise à zéro 133 exécute le processus dans l'étape S1010. C'est-à-dire que l'unité de mise à zéro 133 met à zéro la région de mémoire, dans la mémoire physique 1341, correspondant à une page normale qui n'a pas été mise à zéro dans la page sélectionnée (étape S1010). L'unité de mise à zéro 133 reflète l'état nouvellement mis à zéro sur la structure de page 1342A correspondant à la page sélectionnée (étape S1011). En particulier, l'unité de mise à zéro 133 définit un drapeau indiquant l'état mis à zéro sur le bit d'état de mise à zéro Al de la structure de page 1342A correspondante. L'unité de mise à zéro 133 ajoute une taille de région nouvellement mise à zéro à la taille d'état de mise à zéro A7 de la structure de page 1342A correspondante. Par exemple, lorsque la page libre sélectionnée est une grande page, l'unité de mise à zéro 133 définit un drapeau indiquant l'état mis à zéro pour la structure de page 1342A correspondant à la première page normale dans la page libre sélectionnée, et ajoute une taille de région mise à zéro. De plus, l'unité de mise à zéro 133 peut définir un drapeau indiquant l'état mis à zéro pour la structure de page 1342A correspondant à la page normale nouvellement mise à zéro, et ajouter une taille de région mise à zéro.
Lorsque le processus de mise à zéro sur une région de mémoire correspondant à une page normale dans la mémoire physique 1341 est terminé, l'unité de mise à zéro 133 détermine si le processus de mise à zéro sur la page sélectionnée entière est terminé ou non (étape S1012). En particulier, l'unité de mise à zéro 133 détermine si la taille d'état de mise à zéro A7 de la structure de page 1342A correspondant à une première page normale dans la page libre sélectionnée correspond ou non à la taille de page de la page libre sélectionnée. Lorsqu'il est déterminé que le processus de mise à zéro sur la page sélectionnée entière n'est pas terminé ("NON" dans l'étape S1012), l'unité de mise à zéro 133 retourne au processus dans l'étape S1008, et détermine si une demande est ou non en attente d'une allocation de la page libre sélectionnée. Lorsque le processus de mise à zéro sur la page sélectionnée entière est terminé ("OUI" dans l'étape S1012), l'unité de mise à zéro 133 libère le verrouillage sur la page libre sélectionnée (étape S1009). En particulier, l'unité de mise à zéro 133 définit un drapeau de libération de verrouillage indiquant l'arrêt de l'exécution exclusive du processus de mise à zéro par l'unité de mise à zéro 133 sur le bit de verrouillage d'état de mise à zéro A2 sur lequel un drapeau de verrouillage défini dans le processus dans l'étape S1006. Ensuite, l'unité de mise à zéro 133 retourne au processus dans l'étape 51002 et recherches à nouveau une page libre qui n'a pas été mise à zéro. Par conséquent, la série de processus de mise à zéro est effectuée jusqu'à ce qu'il n'y ait plus de page libre qui n'a pas été mise à zéro dans la liste de gestion de pages libres 1343. Par conséquent, le processus de mise à zéro de la mémoire qui doit être demandé dans le processus d'allocation d'une région de mémoire dans la mémoire peut être réduit en exécutant la série de processus de mise à zéro mentionnée ci- dessus séparément du processus de mise à zéro effectué dans le processus d'allocation de la région de mémoire dans la mémoire. En conséquence, la région de mémoire initialisée d'une taille de région appropriée correspondant au processus ou à la tâche demandé(e) peut être allouée à une vitesse élevée à partir des régions de mémoire dans la mémoire gérée en utilisant une pluralité de tailles de page. De plus, en effectuant un contrôle de sorte que la région de processus d'allocation de mémoire puisse être hiérarchisée au-dessus de la série de processus de mise à zéro mentionnée ci-dessus, le processus de mise à zéro de la région de mémoire correspondant à une page libre peut être effectué sans le retard dans le processus d'allocation d'une région de mémoire qui est souhaité pour effectuer un processus ou une tâche.
Il est décrit ci-après le processus effectué par l'unité d'allocation de page 132. Le processus effectué par l'unité d'allocation de page 132 peut être approximativement divisé en un processus d'allocation de mémoire et un processus de libération de mémoire. Il est décrit dans un premier temps un processus d'allocation de mémoire effectué par l'unité d'allocation de page 132. Le processus d'allocation de mémoire est un processus d'allocation d'une région de mémoire mise à zéro en fonction de la taille de région ou la taille de page de la mémoire demandée depuis l'unité d'exécution de processus 120 à partir des régions de mémoire dans la mémoire gérée en utilisant des pages d'une pluralité de tailles de page différentes. La figure 6 est un schéma de principe exemplaire d'un processus d'allocation de mémoire effectué par une unité d'allocation de page. L'unité d'allocation de page 132 reçoit une demande d'allocation d'une région de mémoire dans la mémoire, qui est souhaitée pour exécuter un processus ou une tâche, depuis l'unité d'exécution de processus 120, et démarre la série de processus d'allocation de mémoire (étape S2001). Une configuration est effectuée de sorte que la demande d'allocation d'une région de mémoire peut être effectuée par demande de la taille de région de mémoire souhaitée, et par demande d'une taille de page souhaitée. L'unité d'allocation de page 132 recherche une page libre ayant une taille de page égal ou supérieur à la taille de région de la mémoire demandée depuis l'unité d'exécution de processus 120, ou une page libre ayant une taille de page égale ou supérieure à la taille de page demandé depuis l'unité d'exécution de processus 120 en référence à la liste de gestion de pages libres 1343 (étape S2002).
Lorsqu'il n'y a pas de page libre dont la taille est égale ou supérieure à la taille de région ou la taille de page demandée depuis l'unité d'exécution de processus 120 ("NON" dans l'étape S2020), alors l'unité d'allocation de page 132 détermine qu'il n'y a pas de région de mémoire inutilisée ayant la taille de région demandée, transmet une erreur d'allocation de mémoire à l'unité d'exécution de processus 120, et termine la série de processus d'allocation de mémoire (étape S2003). Lorsqu'une page libre dont la taille est égale ou supérieure à la taille de région ou taille de page demandée depuis l'unité d'exécution de processus 120 ("OUI" dans l'étape S2002), l'unité d'allocation de page 132 détermine une page libre dans les pages libres détectées comme étant une page à allouer. Comme décrit ci-dessus en référence à la figure 3, une page libre est gérée pour chaque taille de page différente dans la liste de gestion de pages libres 1343. Par conséquent, la page libre déterminée par l'unité d'allocation de page 132 peut être une page normale, une grande page obtenue par combinaison de pages normales, ou une grande page qui est obtenue par combinaison supplémentaire de grandes pages et qui est plus grande que la grande page à combiner. Par exemple, l'unité d'allocation de page 132 sélectionne une page libre de la plus petite taille parmi les pages libres dont la taille est égale ou supérieure à la taille de région ou taille de page demandée depuis l'unité d'exécution de processus 120 à partir de la liste de gestion de pages libres 1343. Si la taille de page de la page libre sélectionnée est deux fois plus grandes ou plus de deux fois la taille de région ou taille de page demandée depuis l'unité d'exécution de processus 120, alors l'unité d'allocation de page 132 divise la page libre sélectionnée en deux pages libres sauf si la page libre sélectionnée est une page normale. Ensuite, l'unité d'allocation de page 132 sélectionne une des pages libres divisées en tant que page candidate d'allocation, et retourne l'autre des pages libres divisées à la liste de gestion de pages libres 1343 de sorte qu'elle puisse être gérée comme étant la taille de la page divisée. Si la taille de page de la page libre sélectionnée en tant que page candidate d'allocation est deux fois plus grande ou plus de deux fois plus grande que la taille de région ou taille de page demandée depuis l'unité d'exécution de processus 120, alors l'unité d'allocation de page 132 redivise la page libre sélectionnée en deux pages libres. Ensuite, l'unité d'allocation de page 132 sélectionne une des pages redivisées en tant que nouvelle page candidate d'allocation, et retourne l'autre page libre redivisée vers la liste de gestion de pages libres 1343 de sorte qu'elle puisse être gérée comme étant la taille de la page redivisée. Par conséquent, tant que la taille de la page libre sélectionnée est moins de deux fois la taille de région ou taille de page demandée depuis l'unité d'exécution de processus 120, l'unité d'allocation de page 132 répète le processus de division mentionné ci-dessus. Lorsque la taille de la page libre sélectionnée devient inférieure à deux fois la taille de région demandée par l'unité d'exécution de processus 120, l'unité d'allocation de page 132 détermine la page libre sélectionnée comme étant une page à allouer. Lorsque le processus de division mentionné ci-dessus sur une page libre est effectué, l'unité d'allocation de page 132 effectue le processus de mise à jour d'informations de gestion sur la page libre divisée en tant qu'informations de gestion sur l'état de mise à zéro, etc. La figure 7 est un schéma de principe exemplaire d'un processus de mise à jour des informations de gestion associées à un processus de division. Lorsque l'unité d'allocation de page 132 démarre le processus de mise à jour sur les informations de gestion associées au processus de division sur une page libre (étape S3001), l'unité d'allocation de page 132 acquiert la taille d'état de mise à zéro A7 de la structure de page 1342A correspondant à la page libre gérée par la liste de gestion de pages libres 1343 (étape S3002). Par exemple, lorsqu'une page libre à traiter est une grande page, l'unité d'allocation de page 132 acquiert la taille d'état de mise à zéro A7 de la structure de page 1342A correspondant à une page normale de tête dans la grande page. L'unité d'allocation de page 132 compare la taille de région mise à zéro indiquée par la taille d'état de mise à zéro A7 acquise avec la taille de page de la page libre gérée par la liste de gestion de pages libres 1343 (étape S3003).
Lorsque les deux tailles correspondent mutuellement en conséquence de la comparaison ("OUI" dans l'étape S3003), l'unité d'allocation de page 132 divise de moitié la taille de région mise à zéro indiquée par la taille d'état de mise à zéro acquise A7. Ensuite, l'unité d'allocation de page 132 écrit la taille de région divisée de moitié dans la taille d'état de mise à zéro A7 de chaque structure de page 1342A correspondant aux deux pages libres obtenues par division de la page libre par le processus de division (étape S3004). Lorsque les deux tailles ne correspondent pas mutuellement en conséquence de la comparaison (NON" dans l'étape S3003), l'unité d'allocation de page 132 maintient la taille d'état de mise à zéro A7 en tant qu'information de gestion sur chacune des deux pages libres divisées sans réécrire la taille d'état de mise à zéro A7 déjà enregistrée dans chaque structure de page 1342A correspondant à chacune des deux pages libres divisées (étape S3005). Lorsque le processus dans l'étape S3004 ou le processus dans l'étape S3005 est effectué, l'unité d'allocation de page 132 termine la série de processus de mise à jour d'informations de gestion (étape S3006). Lorsque la grande page sélectionnée en tant que page candidate d'allocation est redivisée, l'unité d'allocation de page 132 effectue à nouveau la série de processus de mise à jour sur les informations de gestion. Pour une meilleure compréhension des processus dans les étapes S3004 et S3005, le processus de mise à jour des informations de gestion associées au 20 processus de division est expliqué ci-dessous en référence aux figures 8 et 9. La figure 8 est une première vue explicative d'un processus de mise à jour des informations de gestion associées à un processus de division. La figure 8 exemplifie le cas dans lequel une grande page A de 16 Koctets de taille est divisée en deux pages normales de 8 Koctets B et C. 25 Dans un exemple illustré sur la figure 8, la région de mémoire correspondant à la grande page A dans la mémoire est totalement mise à zéro, et "état de mise à zéro = mis à zéro pour 16 Koctets" est enregistré dans la région d'informations de gestion de la grande page A. En particulier, dans les régions d'informations de gestion de la grande page A, l'information "état de mise à zéro = mis à zéro" est 30 enregistrée dans le bit d'état de mise à zéro Al de la structure de page 1342A correspondant à une page normale de tête dans la grande page A, c'est-à-dire, une première demi-page normale dans la grande page A. L'information "état de mise à zéro = 16 Koctets" est enregistrée dans la taille d'état de mise à zéro A7 de la structure de page 1342A correspondant à une première demi-page normale dans la grande page A. Par conséquent, les informations de gestion sur la grande page A sont enregistrées dans la structure de page 1342A correspondant à une première demi-page normale dans la grande page A. De cette manière, dans le procédé d'enregistrement des informations de gestion sur une page selon le mode de réalisation, les informations de gestion sur une grande page peuvent être recherchées ou mises à jour sans référence à la structure de page totale pour chaque page normale dans la grande page, de manière à simplifier et accélérer les processus de recherche de mise à jour des informations de gestion. De plus, indépendamment de la taille de page, le processus de division d'une page accompagné par la mise à jour des informations de gestion peut être effectué. En ce qui concerne la grande page A illustrée sur la figure 8, la taille de page (16 Koctets) de la grande page A correspond à la taille de région mise à zéro (16 Koctets) de la grande page A. Ensuite, dans le cas où la grande page A est divisée en deux, c'est-à-dire, les pages normales B et C, la taille de région dans l'état mis à zéro enregistrée dans la région d'informations de gestion de la grande page A, c'est-à-dire, 16 Koctets, est divisée par deux. Ensuite, comme illustré sur la figure 8, l'information "état de mise à zéro = mis à zéro pour 8 Koctets" après l'exécution du processus de division par deux est enregistrée en tant qu'information de gestion sur les pages normales divisées B et C dans les régions d'informations de gestion respectives. En particulier, l'information "état de mise à zéro = mis à zéro" est enregistrée dans le bit d'état de mise à zéro Al de chaque structure de page 1342A correspondant aux pages normales B et C. De plus, l'information "état de mise à zéro = 8 Koctets" est enregistrée dans la taille d'état de mise à zéro A7 de chaque structure de page 1342A correspondant aux pages normales B et C. La figure 9 est une deuxième vue explicative d'un processus de mise à jour des informations de gestion associées à un processus de division. La figure 9 illustre le cas dans lequel la grande page D ayant une taille de page de 16 Koctets est divisée en deux, c'est-à-dire, les pages normales E et F. Dans l'exemple illustré sur la figure 9, la région de mémoire d'une première demi-page normale de la grande page D a été mise à zéro, et la région de mémoire d'une deuxième demi-page normale n'a pas été mise à zéro. Ensuite, dans la région d'informations de gestion de la grande page D, "état de mise à zéro = mis à zéro pour 8 Koctets" est enregistré pour une première demi-page normale, et "état de mise à zéro = non mis à zéro pour 8 Koctets" est enregistré pour une deuxième demi-page normale. En particulier, l'information "état de mise à zéro = mis à zéro pour 8 Koctets" est enregistré dans le bit d'état de mise à zéro Al et la taille d'état de mise à zéro A7 de la structure de page 1342A correspondant à la première demi- page normale dans la grande page D. L'information "état de mise à zéro = non mis à zéro pour 8 Koctets" est enregistrée dans le bit d'état de mise à zéro Al et la taille d'état de mise à zéro A7 de la structure de page 1342A correspondant à la deuxième demi-page normale dans la grande page D. Par conséquent, les informations de gestion sur la grande page D sont divisées de manière à être enregistrées et gérées dans les première et deuxième demi-pages normales. Dans la grande page D illustrée sur la figure 9, la taille de page (16 Koctets) de la grande page D ne correspond pas à la taille de région mise à zéro (8 Koctets) de la grande page D. Ensuite, dans le processus dans l'étape S3005 sur la figure 7, l'information "état de mise à zéro = mis à zéro pour 8 Koctets" pour la première demi-page normale dans les informations de gestion de la grande page D est maintenue en continu en tant qu'information de gestion sur la page normale E correspondant à une première demi-page normale de la grande page D. Dans les informations de gestion sur la grande page D, l'information "état de mise à zéro = non mis à zéro pour 8 Koctets" pour une deuxième demi-page normale est maintenue en continu en tant qu'information de gestion sur la page normale F correspondant à la deuxième demi-page normale de la grande page D. En particulier, l'information "état de mise à zéro = mis à zéro pour 8 Koctets" est maintenue en continu par le bit d'état de mise à zéro Al et la taille d'état de mise à zéro A7 de la structure de page 1342A correspondant à la page normale E. De plus, l'information "état de mise à zéro = non mis à zéro pour 8 Koctets" est maintenue en continu par le bit d'état de mise à zéro Al et la taille d'état de mise à zéro A7 de la structure de page 1342A correspondant à la page normale F.
Dans le processus dans l'étape S2004 sur la figure 6 comprenant le processus de division de page mentionné ci-dessus et le processus de mise à jour d'informations de gestion, une page libre à allouer est déterminée. L'unité d'allocation de page 132 demande à l'unité de mise à zéro 133 de suspendre le processus de mise à zéro sur la page libre déterminée à allouer (étape S2005). En particulier, l'unité d'allocation de page 132 défini un drapeau de suspension de processus de mise à zéro sur le bit de contrôle de processus de mise à zéro A3 de la structure de page 1342A correspondant à la page libre à allouer. Dans le processus dans l'étape S2005, un contrôle est effectué de sorte que le processus d'allocation par l'unité d'allocation de page 132 puisse être hiérarchisée au-dessus du processus de mise à zéro par l'unité de mise à zéro 133 même si la région de mémoire correspondant à la page libre à allouer est dans le processus de mise à zéro de l'unité de mise à zéro 133. Par conséquent, il peut être évité que l'exécution du processus du programme d'application par l'unité d'exécution de processus 120 qui demande à l'unité d'allocation de page 132 d'allouer la région de mémoire dans la mémoire soit interrompue par le processus de l'unité de mise à zéro 133. L'unité d'allocation de page 132 attend que la suspension du processus de mise à zéro soit effectué par l'unité de mise à zéro 133 sur la page libre à allouer (étape S2006). En particulier, l'unité d'allocation de page 132 se réfère au bit de verrouillage d'état de mise à zéro A2 de la structure de page 1342A correspondant à la page libre à allouer. Si un drapeau de verrouillage est défini sur le bit de verrouillage d'état de mise à zéro A2 référencé, l'unité d'allocation de page 132 attend que le bit de verrouillage d'état de mise à zéro A2 change du drapeau de verrouillage au drapeau de libération de verrouillage. Le drapeau de verrouillage désigne un drapeau indiquant l'exécution exclusive du processus de mise à zéro par l'unité de mise à zéro 133. Le drapeau de libération de verrouillage désigne le drapeau indiquant la suspension de l'exécution exclusive du processus de mise à zéro par l'unité de mise à zéro 133.
Lorsque le processus de mise à zéro par l'unité de mise à zéro 133 sur la page libre à allouer est suspendu, l'unité d'allocation de page 132 lit le bit d'état de mise à zéro Al et la taille d'état de mise à zéro A7 de la structure de page 1342A correspondant à la page libre à allouer. Ensuite, l'unité d'allocation de page 132 recherche, en utilisant le bit d'état de mise à zéro Al lu et taille d'état de mise à zéro A7, les pages libres à allouer pour une région de mémoire sur laquelle le processus de mise à zéro n'a pas été effectué. En particulier, l'unité d'allocation de page 132 détermine si un drapeau indiquant l'état mis à zéro est défini ou non sur le bit d'état de mise à zéro Al lu. L'unité d'allocation de page 132 détermine également si la taille de page de la page libre à allouer correspond ou non à la taille d'état de mise à zéro A7 lue. Lorsque le drapeau indiquant l'état mis à zéro n'est pas défini sur le bit d'état de mise à zéro Al, et lorsque la taille de page de la page libre à allouer ne correspond pas à la taille d'état de mise à zéro A7 lue, l'unité d'allocation de page 132 détermine qu'il existe une région de mémoire dans laquelle le processus de mise à zéro n'a pas été effectué. Ensuite, l'unité d'allocation de page 132 met à zéro la région de mémoire dans laquelle le processus de mise à zéro n'a pas été effectué (étape S2007). Lorsque toutes les régions de mémoire correspondant à la page libre à allouer sont mises à zéro, l'unité d'allocation de page 132 transmet la région de mémoire mise à zéro correspondant à la page libre à allouer à l'unité d'exécution de processus 120 qui a demandé l'allocation (étape S2008). Ensuite, l'unité d'allocation de page 132 termine la série de processus d'allocation de mémoire (étape S2009). Il est décrit ci-après le processus de libération de mémoire exécuté par l'unité d'allocation de page 132. Le processus de libération de mémoire est un processus de libération de la région de mémoire dans la mémoire, qui est libérée après l'exécution du processus ou tâche par l'unité d'exécution de processus 120, en tant que région de mémoire correspondant à une page libre d'une taille de page spécifiée dans une pluralité de tailles de page différentes ciblées pour gestion. Lorsque la région de mémoire dans la mémoire, qui a été allouée à l'exécution du processus ou tâche par l'unité d'exécution de processus 120, est libérée, l'unité d'allocation de page 132 démarre le processus de libération de mémoire. L'unité d'allocation de page 132 marque la page correspondant à la région de mémoire libérée en tant que page libre qui n'a pas été mise à zéro. En particulier, l'unité d'allocation de page 132 définit sur le bit d'état de mise à zéro Al de la structure de page 1342A correspondant à la page libre libérée un drapeau indiquant que le processus de mise à zéro n'a pas été effectué. L'unité d'allocation de page 132 définit un drapeau indiquant une page libre sur le bit de page libre A4. L'unité d'allocation de page 132 écrit "0", qui est une valeur indiquant qu'il n'y a pas de taille de région mise à zéro, sur la taille d'état de mise à zéro A7. L'unité d'allocation de page 132 stocke dans la liste de gestion de pages libres 1343 la page marquée en tant que page libre qui n'a pas été mise à zéro. En particulier, l'unité d'allocation de page 132 effectue le processus suivant. Comme décrit ci-dessus en référence à la figure 3 etc., dans l'appareil de traitement d'informations selon le mode de réalisation, comprenant l'ordinateur d'exécution d'application 11 à titre d'exemple, les régions de mémoire dans la mémoire sont gérées en utilisant des pages ayant une pluralité de tailles de page différentes. Ensuite, un compagnon d'une page libre à stocker peut exister dans la liste de gestion de pages libres 1343. Un compagnon désigne une page à combiner avec la page actuelle de manière à former une page dont une taille de page est supérieure à la page actuelle. Dans le système de compagnon, un compagnon destiné à être un partenaire de combinaison de la page actuelle est déterminé à l'avance selon une règle de combinaison spécifiée. L'unité d'allocation de page 132 se réfère à une entrée correspondant à la taille de page d'une page libre à stocker, et confirme s'il existe ou non un compagnon de la page libre à stocker dans la liste de gestion de pages libres 1343. Lorsqu'il n'y a pas de compagnon de la page libre à stocker en conséquence de la confirmation, l'unité d'allocation de page 132 écrit une valeur spécifiée dans les pointeurs A5 et A6 de la structure de page 1342A correspondant à la page libre à stocker, et stocke la page libre à stocker dans la liste de gestion de pages libres 1343. Lorsqu'il existe un compagnon de la page libre à stocker en conséquence de la confirmation, l'unité d'allocation de page 132 effectue un processus de combinaison de la page libre à stocker avec le compagnon de la page libre à stocker. L'unité d'allocation de page 132 confirme s'il existe ou non un compagnon de la page combinée dans la liste de gestion de pages libres 1343. Lorsqu'il n'y a pas de compagnon de la page combinée en conséquence de la confirmation, l'unité d'allocation de page 132 écrit une valeur spécifiée dans les pointeurs A5 et A6 de la structure de page 1342A correspondant à la page combinée, et stocke la page combinée dans la liste de gestion de pages libres 1343. Lorsqu'il existe un compagnon de la page combinée en conséquence de la confirmation, l'unité d'allocation de page 132 exécute le processus de combinaison de la page combinée avec le compagnon de la page combinée. Ensuite, l'unité d'allocation de page 132 répète le processus de combinaison mentionné ci-dessus jusqu'à ce qu'il soit 10 confirmé qu'il n'y a pas de compagnon dans la liste de gestion de pages libres 1343. Lorsque le processus de combinaison mentionné ci-dessus est effectué, l'unité d'allocation de page 132 reflète les informations de gestion sur les deux pages combinées dans les informations de gestion sur la page combinée de manière à ne pas perdre les informations de gestion sur les deux pages combinées. La figure 10 15 est un schéma de principe exemplaire d'un processus de mise à jour des informations de gestion associées à un processus de combinaison. Lorsque le processus de mise à jour des informations de gestion associées au processus de combinaison de page libre est démarré (étape S4001), l'unité d'allocation de page 132 acquiert les informations de gestion sur la première demi- 20 page libre à combiner (première page libre) (S4002). L'unité d'allocation de page 132 acquiert également les informations de gestion sur la deuxième demi-page libre à combiner (deuxième page libre) (S4002). Dans les première et deuxième demi-pages libres, une page libre correspond à région de mémoire nouvellement libérée, ou une page combinée obtenue par combinaison de la page correspondant à la région de 25 mémoire nouvellement libérée avec le compagnon dans la liste de gestion de pages libres 1343. Une autre page libre est un compagnon de la première demi-page libre, et existe dans la liste de gestion de pages libres 1343. Les informations de gestion acquises par les processus dans les étapes S4002 et S4003 est le bit d'état de mise à zéro Al et la taille d'état de mise à zéro A7 de chaque structure de page 1342A 30 correspondant aux première et deuxième demi-pages libres. L'unité d'allocation de page 132 détermine sur la base des informations de gestion acquises si l'état de mise à zéro de la première demi-page libre correspond ou non à l'état de mise à zéro de la deuxième demi-page libre (étape S4004). En particulier, l'unité d'allocation de page 132 détermine si le bit d'état de mise à zéro Al de la première demi-page libre correspond au bit d'état de mise à zéro Al de la deuxième demi-page libre, la taille de page de la première demi-page libre correspond à la taille d'état de mise à zéro A7 de la première demi-page libre, et la taille de page de la deuxième demi-page libre correspond à la taille d'état de mise à zéro A7 de la deuxième demi-page libre. Lorsqu'il est déterminé que l'état de mise à zéro de la première demi-page libre correspond à l'état de mise à zéro de la deuxième demi-page libre ("OUI" dans l'étape S4004), l'unité d'allocation de page 132 décrit collectivement les informations de gestion sur les première et deuxième demi-pages libres en tant qu'informations de gestion sur la page combinée (étape S4005). En particulier, l'unité d'allocation de page 132 maintient le bit d'état de mise à zéro Al de la structure de page 1342A correspondant à la première demi-page libre en tant qu'informations indiquant si la page combinée a été mise à zéro ou non. De plus, l'unité d'allocation de page 132 écrit une valeur totale de la taille d'état de mise à zéro A7 des première et deuxième demi-pages libres dans la taille d'état de mise à zéro A7 de la structure de page 1342A correspondant à la première demi-page libre.
Lorsqu'il est déterminé que l'état de mise à zéro de la première demi-page libre ne correspond pas à l'état de mise à zéro de la deuxième demi-page libre ("NON" dans l'étape S4004), l'unité d'allocation de page 132 maintient les informations de gestion sur les première et deuxième demi-pages libres en tant qu'informations de gestion sur la page combinée (étape S4006). En particulier, l'unité d'allocation de page 132 maintient le bit d'état de mise à zéro Al de chaque de structures de page 1342A correspondant aux première et deuxième demi-pages libres en tant qu'informations indiquant si la page combinée a été mise à zéro ou non. De plus, l'unité d'allocation de page 132 maintient la taille d'état de mise à zéro A7 de chacune des structures de page 1342A correspondant aux première et deuxième demi-pages libres en tant qu'informations sur la taille de région mise à zéro de la page combinée. Lorsque le processus dans l'étape S4005 ou le processus dans l'étape S4006 est exécuté, l'unité d'allocation de page 132 termine la série de processus de mise à jour sur les informations de gestion (étape S4007). Lorsque la page combinée et le compagnon de la page combinée sont ensuite combinées, l'unité d'allocation de page 132 effectue à nouveau la série de processus de mise à jour sur les informations de gestion. Par souci de compréhension du processus dans l'étape S4005 et du processus dans l'étape S4006, le processus de mise à jour des informations de gestion associées au processus de combinaison est décrit ci-dessous en référence aux figures 11 à 13. La figure 11 est une première vue explicative d'un processus de mise à jour des informations de gestion associées à un processus de combinaison. La figure 11 exemplifie le cas dans lequel deux pages normales de 8 Koctets G et H sont combinées dans une grande page I dont une taille de page est 16 Koctets.
Dans un exemple illustré sur la figure 11, la région de mémoire correspondant aux pages normales G et H dans la mémoire est totalement mise à zéro, et "état de mise à zéro = mis à zéro pour 8 Koctets" est enregistré dans chaque région d'informations de gestion des pages normales G et H. En particulier, dans chaque région d'informations de gestion des pages normales G et H, l'information "état de mise à zéro = mis à zéro" est enregistrée dans le bit d'état de mise à zéro Al de chaque des structures de page 1342A correspondant aux pages normales G et H. De plus, l'information "état de mise à zéro = 8 Koctets" est enregistrée dans la taille d'état de mise à zéro A7 de chaque des structures de page 1342A correspondant aux pages normales G et H.
Dans les pages normales G et H illustré sur la figure 11, le bit d'état de mise à zéro Al de la page normale G correspond au bit d'état de mise à zéro Al de la page normale H. De plus, la taille de page de la page normale G correspond à la taille d'état de mise à zéro A7 de la page normale G. La taille de page de la page normale H correspond à la taille d'état de mise à zéro A7 de la page normale H. Ensuite, dans le cas où les pages normales G et H sont combinées dans une grande page I, les informations sur l'état mis à zéro enregistré dans la région d'informations de gestion de la page normale G dans le processus dans l'étape S4005 sur la figure 10 sont 3 0 1 7 2 2 2 31 maintenues dans la région d'informations de gestion de la grande page L De plus, la valeur totale de la taille de région mise à zéro des pages normales G et H est maintenue dans la région d'informations de gestion de la grande page L En 5 particulier, l'information "état de mise à zéro = mis à zéro" de la grande page I est enregistrée dans le bit d'état de mise à zéro Al de la structure de page 1342A correspondant à une première demi-page normale de la grande page L De plus, l'information "état de mise à zéro = 16 Koctets" de la grande page I est enregistrée dans la taille d'état de mise à zéro A7 de la structure de page 1342A correspondant à 10 une première demi-page normale de la grande page I. Par conséquent, les informations de gestion sur la grande page peuvent ne pas être enregistrées dans toutes les structures de page pour chaque page normale dans la grande page. De plus, les informations de gestion sur la grande page peuvent être acquises sans référence à toutes les structures de page de chaque page 15 normale dans la grande page. Par conséquent, dans le processus de mise à jour des informations de gestion associé à ladite une page selon le mode de réalisation, les processus de recherche et de mise à jour des informations de gestion sur une page peuvent être simplifiés et effectués à une vitesse élevée. La figure 12 est une deuxième vue explicative d'un processus de mise à jour 20 des informations de gestion associées à un processus de combinaison. La figure 12 exemplifie le cas dans lequel deux pages normales de 8 Koctets J et K sont combinées dans la grande page L dont une taille de page est de 16 Koctets. Dans l'exemple illustré sur la figure 12, la région de mémoire correspondant à la page normale J dans la mémoire a été mise à zéro, et la région de mémoire 25 correspondant à la page normale K dans la mémoire n'a pas été mise à zéro. Ensuite, dans la région d'informations de gestion de la page normale J, "état de mise à zéro = mis à zéro pour 8 Koctets" est enregistré, et dans la région d'informations de gestion de la page normale K, "état de mise à zéro = non mis à zéro pour 8 Koctets" est enregistré. En particulier, l'information "état de mise à zéro = mis à zéro pour 30 8 Koctets" de la page normale J est enregistrée dans le bit d'état de mise à zéro Al et la taille d'état de mise à zéro A7 de la structure de page 1342A correspondant à la page normale J. L'information "état de mise à zéro = non mis à zéro pour 8 Koctets" 3 0 1 7 2 2 2 32 de la page normale K est enregistrée dans le bit d'état de mise à zéro Al et la taille d'état de mise à zéro A7 de la structure de page 1342A correspondant à la page normale K. 5 Dans les deux pages normales 3 et K illustrées sur la figure 12, le bit d'état de mise à zéro Al de la page normale J ne correspond pas au bit d'état de mise à zéro Al de la page normale K. De plus, la taille de page de la page normale K ne correspond pas à la taille d'état de mise à zéro A7 de la page normale K. Ensuite, dans le processus dans l'étape S4006 sur la figure 10, l'information "état de mise à 10 zéro = mis à zéro pour 8 Koctets" de la page normale J est maintenue en continu dans la région d'informations de gestion de la grande page combinée L. De plus, l'information "état de mise à zéro = non mis à zéro pour 8 Koctets" de la page normale K est maintenue en continu dans la région d'informations de gestion de la grande page combinée L. En particulier, l'information "état de mise à zéro = mis à 15 zéro pour 8 Koctets" de la page normale J est maintenue en continu par le bit d'état de mise à zéro Al et la taille d'état de mise à zéro A7 de la structure de page 1342A correspondant à une première demi-page normale de la grande page L. De plus, l'information "état de mise à zéro = non mis à zéro pour 8 Koctets" de la page normale K est maintenue en continu par le bit d'état de mise à zéro Al et la taille 20 d'état de mise à zéro A7 de la structure de page 1342A correspondant à une deuxième demi-page normale de la grande page L. La figure 13 est une troisième vue explicative d'un processus de mise à jour des informations de gestion associées à un processus de combinaison. La figure 13 exemplifie une grande page M obtenue par combinaison de la grande page L illustrée 25 sur la figure 12 avec la grande page I illustrée sur la figure 11. Comme illustré sur la figure 12, dans la région d'informations de gestion de la grande page L, "état de mise à zéro = mis à zéro pour 8 Koctets" est enregistré en tant qu'informations de gestion sur une première demi-page normale. De plus, dans la région d'informations de gestion de la grande page L, "état de mise à zéro = mis à 30 zéro pour 8 Koctets" est enregistré en tant qu'informations de gestion sur une deuxième demi-page normale. Comme illustré sur la figure 11, dans la région d'informations de gestion de la grande page I, "état de mise à zéro = mis à zéro pour 16 Koctets" est enregistré. Par conséquent, l'état de mise à zéro de la grande page L ne correspond pas à l'état de mise à zéro de la grande page L C'est-à-dire que le bit d'état de mise à zéro Al de la grande page L ne correspond pas au bit d'état de mise à zéro Al de la grande page L De plus, la taille de page de la grande page L ne correspond pas à la taille d'état de mise à zéro A7 de la grande page L. Ensuite, comme illustré sur la figure 13, la région d'informations de gestion de la grande page M maintient en continu les informations sur l'état de mise à zéro des grandes pages L et I.
Par conséquent, dans le cas où des grandes pages sont combinées, les informations de gestion sur les grandes pages combinées peuvent ne pas être enregistrées dans toutes les structures de page pour chaque page normale dans la grande page combinée. De plus, les informations de gestion sur la grande page combinée peuvent être acquises sans référence à toutes les structures de page for chaque page normale dans la grande page combinée. Par conséquent, selon le processus de mise à jour des informations de gestion sur une page selon le mode de réalisation, le processus de recherche et mise à jour sur les informations de gestion sur une page peut être simplifié et effectué à une vitesse élevée. De plus, le processus de combinaison de pages accompagné de la mise à jour d'informations de gestion peut être effectué sans dépendance vis-à-vis de la taille de page. Comme il apparaît à la lecture de l'explication ci-dessus, l'appareil de traitement d'informations selon le mode de réalisation dans lequel l'ordinateur d'exécution d'application 11 est utilisé à titre d'exemple gère l'état d'initialisation de la région de mémoire correspondant à chaque page dans la mémoire en utilisant les informations de gestion sur chaque page ayant des tailles de page différentes. Ensuite, l'appareil de traitement d'informations selon le mode de réalisation exécute le processus d'initialisation sur une région non initialisée indiquée par les informations de gestion dans la région de mémoire correspondant à la page libre. Par conséquent, par rapport au cas dans lequel toutes les régions de mémoire correspondant à la page à allouer sont constamment initialisées, la taille de région requise pour effectuer le processus d'initialisation dans l'allocation de la région de mémoire peut être réduite, de manière à raccourcir le temps de traitement du 3 0 1 72 2 2 34 processus d'allocation entier accompagné du processus d'initialisation. C'est-à-dire que le processus d'allocation d'une région de mémoire initialisée en fonction de la taille spécifiée par un demandeur de mémoire peut être effectué à une vitesse 5 élevée. De plus, l'appareil de traitement d'informations selon le mode de réalisation peut effectuer le processus d'initialisation sur la région de mémoire correspondant à une page libre dans la mémoire séparément du processus d'allocation de la région de mémoire dans la mémoire. Par conséquent, étant donné que la taille de région 10 souhaitée pour le processus d'initialisation dans l'allocation d'une région de mémoire peut être réduite, le temps de traitement du processus d'allocation entier accompagné du processus d'initialisation peut être réduit. C'est-à-dire que le processus d'allocation de la région de mémoire initialisée en fonction de la taille spécifié par un demandeur d'acquisition de mémoire peut être effectué à une vitesse 15 plus élevée. Les différents types de processus effectués par l'appareil de traitement d'informations selon le mode de réalisation mentionné ci-dessus comprenant le processus d'allocation de mémoire et le processus d'initialisation de mémoire sont illustratifs uniquement, et peuvent être modifiés de manière appropriée. Par exemple, 20 dans la description ci-dessus, le processus de combinaison de pages est un exemple effectué dans le processus de libération de mémoire, et peut être modifié de sorte que le processus de combinaison de pages soit effectué pendant le processus d'allocation de mémoire. Comme décrit ci-dessus, dans l'appareil de traitement d'informations selon le 25 mode de réalisation, l'exécution du processus d'allocation de mémoire est prioritaire sur l'exécution du processus d'initialisation de mémoire qui est effectué de façon asynchrone avec le processus d'allocation de mémoire pour supprimer le retard d'une tâche pour laquelle une allocation de mémoire est demandée. De plus, dans l'appareil de traitement d'informations selon le mode de réalisation, le processus de 30 mise à zéro asynchrone peut être contrôlé pour supprimer l'influence sur l'exécution d'une tâche. La temporisation avec laquelle l'unité de traitement de planificateur de processus 131 permet à l'unité de mise à zéro 133 d'effectuer le processus de mise à zéro en coopération avec l'unité de traitement de planificateur de tâche 12A et l'unité de gestion de tâche 110 peut être les deux temporisations suivantes, c'est-à-dire qu'il existe une première temporisation à laquelle toutes les tâches du programme d'application spécifiées via un système de planification de tâche tel que l'unité de traitement de planificateur de tâche 12A et l'unité de gestion de tâche 110 sont terminées dans l'ordinateur d'exécution d'application 11. De plus, il existe une deuxième temporisation à laquelle le processus d'initialisation est effectué simultanément avec la tâche du programme d'application spécifié via le système de planification dans l'ordinateur d'exécution d'application 11. en utilisant un exemple de l'ordinateur d'exécution d'application 31 illustré sur la figure 4, un procédé de contrôle du processus de mise à zéro avec les première et deuxième temporisations est décrit ci-dessous.
La première temporisation est décrite dans un premier temps. La figure 14 est une vue explicative d'un processus de mise à zéro avec la première temporisation. Par souci de clarté d'explication, une partie des composants de l'ordinateur d'exécution d'application 31 illustré sur la figure 4 sont omis. Avec la première temporisation à laquelle toutes les tâches du programme d'application spécifiées via le système de planification de tâche sont terminées, aucune tâche n'est prioritaire sur le processus de mise à zéro dans l'ordinateur d'exécution d'application 31. Par conséquent, avec la première temporisation, les ressources du processeur dans l'ordinateur d'exécution d'application 31 sont utilisées pour effectuer le processus de mise à zéro de sorte que le processus de mise à zéro sur la mémoire principale 340 puisse être terminé dans un temps court. Par exemple, comme illustré sur la figure 14, le processus de mise à zéro sur la mémoire principale 340 est terminé dans un temps court en permettant à deux coeurs de CPU 310 parmi les quatre coeurs de CPU 310 d'effectuer le processus de mise à zéro. Avec la première temporisation, le coeur de CPU 310 qui effectue le processus de mise à zéro peut exclusivement utiliser le cache de niveau 2 330 et un bus de mémoire dans le bus 380. La deuxième temporisation est décrite ci-après. La figure 15 est une vue explicative d'un processus de mise à zéro avec la deuxième temporisation. La figure 15 illustre un exemple dans lequel un coeur de CPU 310 auquel aucune tâche n'est allouée peut effectuer le processus de mise à zéro lorsqu'une tâche est allouée à trois coeurs de CPU 310 dans les quatre coeurs de CPU 310 inclus dans l'ordinateur d'exécution d'application 31. Par souci de clarté d'explication, une partie des composants de l'ordinateur d'exécution d'application 31 illustré sur la figure 4 sont omis. Avec la deuxième temporisation à laquelle le processus de mise à zéro est effectué simultanément avec l'exécution de la tâche du programme d'application spécifié, le cache de niveau 2 330 et la bus de mémoire dans le bus 380 est partagé par le coeur de CPU 310 qui effectue la tâche et le coeur de CPU 310 qui exécute le processus de mise à zéro. Étant donné que la bande du cache de niveau 2 330 et du bus de mémoire est limitée, les performances d'accès à la mémoire d'une tâche sont dégradées si la bande du cache de niveau 2 330 et du bus de mémoire est allouée à l'exécution du processus de mise à zéro, et un retard d'exécution dans la tâche peut survenir. Par conséquent, avec la deuxième temporisation, un contrôle est effectué de sorte que le processus de mise à zéro soit effectué en utilisant au moins un des deux procédés décrits ci-dessous.
Premièrement, dans le premier procédé de commande, avec l'instruction de stockage dans le processus de mise à zéro, le coeur de CPU 310 qui exécute le processus de mise à zéro utilise une instruction pour supprimer l'utilisation d'un cache. En particulier, le coeur de CPU 310 qui exécute le processus de mise à zéro accède à la mémoire principale 340 en utilisant l'instruction de CPU qui est capable d'accéder directement au bus de mémoire par dérivation du cache de niveau 2 330. Dans le premier procédé de commande, étant donné que le cache de niveau 2 330n'est pas partagé entre le coeur de CPU 310 qui effectue une tâche et le coeur de CPU 310 qui exécute le processus de mise à zéro, l'influence sur l'exécution d'une tâche peut être réduite.
Dans le deuxième procédé de commande, l'interconnexion 370 est implémentée avec la fonction RDMA (Remote Direct Memory Access). De plus, une région de mémoire mise à zéro est définie à l'avance dans la mémoire principale 340 d'un noeud de calcul 31 quelconque dans une pluralité de noeuds de calcul (ordinateurs d'exécution d'application) 31 inclus dans le système informatique 3. Ensuite, le noeud de calcul 31 qui exécute le processus de mise à zéro transfère par 5 RDMA la région de mémoire mise à zéro dans un noeud de calcul 31 quelconque sur la mémoire principale 340 dans le noeud de calcul 31 via l'interconnexion 370, de manière à exécuter le processus de mise à zéro d'une région spécifiée dans la mémoire principale 340. Lorsque l'interconnexion 370 est connectée au bus de mémoire comme illustré sur la figure 15, l'interconnexion 370 peut accéder 10 directement à la mémoire principale 340 sans le cache de niveau 2 330. Par conséquent, dans le deuxième procédé de commande, étant donné que le processus de mise à zéro peut être effectué sans aucun conflit pour le cache de niveau 2 330 entre le coeur de CPU 310 qui effectue une tâche et le coeur de CPU 310 qui exécute le processus de mise à zéro, l'influence sur l'exécution de la tâche peut être réduite.
15 Comme décrit ci-dessus, les composants pour exécuter les différents processus mentionnés ci-dessus selon le mode de réalisation comprenant l'unité d'allocation de page 132 et l'unité de mise à zéro 133 peuvent être réalisés par des composants matériels comprenant le coeur de CPU 310, le cache de niveau 1 320, et le cache de niveau 2 330. De plus, les composants pour exécuter les différents 20 processus mentionnés ci-dessus selon le mode de réalisation peuvent également être réalisés par un ordinateur qui exécute un programme de commande qui régule les différentes procédures de processus mentionnées ci-dessus comprenant le processus d'allocation de mémoire et le processus d'initialisation de mémoire selon le mode de réalisation. Par exemple, le programme de commande qui régule les différentes 25 procédures de processus mentionnées ci-dessus est stocké dans un support d'enregistrement tel qu'un disque magnétique, un disque optique, un disque magnéto-optique, etc. Le programme de commande stocké dans le support d'enregistrement est stocké dans le stockage 350 via le lecteur de support de stockage 360. Ensuite, le processeur comprenant le coeur de CPU 310, le cache de 30 niveau 1 320, et le cache de niveau 2 330 lit le programme de commande stocké dans le stockage 350 dans la mémoire principale 340, et exécute le programme de commande.

Claims (27)

  1. REVENDICATIONS1. Appareil de traitement d'informations comprenant : une unité de stockage de page libre (134) qui divise une région de mémoire (1341) dans une mémoire en pages d'une pluralité de tailles de page différentes et gère les pages divisées, et stocke des informations de gestion (A1, A7) sur un état d'initialisation correspondant à une région de mémoire inutilisée dans la mémoire ; et une unité d'allocation de page (132) qui sélectionne une page libre d'une taille de page en fonction d'une taille de région demandée ou d'une taille de page demandée depuis l'unité de stockage de page libre lorsqu'une allocation de la région de mémoire inutilisée est demandée, et effectue un processus d'initialisation sur une région de mémoire sur laquelle le processus d'initialisation n'a pas été effectué dans une région de mémoire correspondant à la page libre en utilisant des informations de gestion sur la page libre sélectionnée.
  2. 2. Appareil de traitement d'informations selon la revendication 1, dans lequel : l'unité de stockage de page libre (134) comprend une structure de page (1342A) définie dans des unités de pages normales ayant la plus petite taille de page dans la pluralité de tailles de page différentes ; lorsque des première et deuxième pages normales sont des pages libres sur lesquelles le processus d'initialisation a été effectué, l'unité d'allocation de page (132) enregistre des informations de gestion sur une grande page obtenue par combinaison des première et deuxième pages normales dans la structure de page (1342A) correspondant à la première page normale ; et lorsque l'une quelconque des première et deuxième pages normales est une page libre sur laquelle le processus d'initialisation n'a pas été effectué, l'unité d'allocation de page (132) enregistre les informations de gestion sur la grande page dans chacune des structures de page (1342A) correspondant à la première et ladeuxième page normale.
  3. 3. Appareil de traitement d'informations selon la revendication 2, dans lequel : lorsqu'une taille de page d'une grande page correspond à une taille de région initialisée indiquée par les informations de gestion sur la grande page, l'unité d'allocation de page (132) enregistre une taille obtenue en divisant par deux la taille de région initialisée dans les structures de page (1342A) correspondant à chacune de 10 troisième et quatrième pages normales obtenues par division de la grande page ; et lorsque la taille de page de la grande page ne correspond pas à la taille de région initialisée, l'unité d'allocation de page (132) enregistre des informations sur la structure de page correspondant à une première demi-page dans la grande page en tant qu'informations sur la structure de page correspondant à la troisième page 15 normale, et stocke des informations sur la structure de page correspondant à une deuxième demi-page dans la grande page en tant qu'informations sur la structure de page correspondant à la quatrième page normale.
  4. 4. Appareil de traitement d'informations selon l'une quelconque des 20 revendications 1 à 3 comprenant en outre une unité de mise à zéro (133) qui effectue un processus d'initialisation asynchrone sur une région de mémoire correspondant à la page libre stockée dans l'unité de stockage de page libre (134) en utilisant les informations de gestion sur la page libre avec une temporisation différente d'une temporisation de processus 25 d'allocation d'une région de mémoire, le processus d'allocation comprenant le processus d'initialisation effectué par l'unité d'allocation de page (132).
  5. 5. Appareil de traitement d'informations selon la revendication 4, dans lequel 30 l'unité de mise à zéro (133) détermine si la page libre sélectionnée à partir de l'unité de stockage de page libre (134) est ou non une page à allouer par l'unité d'allocation de page (132), et suspend le processus d'initialisation asynchronesur la page libre lorsque la page libre sélectionnée est une page à allouer par l'unité d'allocation de page.
  6. 6. Appareil de traitement d'informations selon la revendication 4 ou la revendication 5, dans lequel les informations de gestion sur la page libre comprennent un drapeau de commande (A3) pour la commande de l'exécution du processus d'initialisation asynchrone effectué par l'unité de mise à zéro sur la page libre, et lorsqu'il est déterminé que la page libre est une page à traiter dans le processus d'allocation, l'unité d'allocation de page (132) définit un drapeau de suspension pour suspendre le processus d'initialisation asynchrone effectué par l'unité de mise à zéro sur le drapeau de commande (A3).
  7. 7. Appareil de traitement d'informations selon la revendication 6, dans lequel l'unité de mise à zéro (133) confirme si le drapeau de suspension a été défini ou non sur le drapeau de commande (A3) après que le processus d'initialisation sur une page normale dans la page libre ait été effectué.
  8. 8. Appareil de traitement d'informations selon l'une quelconque des revendications 4 à 7, comprenant en outre une unité de traitement de planificateur de processus (131) qui commande une temporisation à laquelle l'unité de mise à zéro (133) exécute le processus d'initialisation asynchrone ; dans lequel l'unité de traitement de planificateur de processus (131) autorise l'unité de mise à zéro (133) à effectuer le processus d'initialisation asynchrone avec une première temporisation avec laquelle une tâche effectuée en utilisant une région de mémoire initialisée allouée par l'unité d'allocation de page (132) a été effectuée.
  9. 9. Appareil de traitement d'informations selon la revendication 8, dans lequelavec une deuxième temporisation pendant une tâche effectuée en utilisant une région de mémoire allouée par l'unité d'allocation de page (132), l'unité de traitement de planificateur de processus (131) autorise l'unité de mise à zéro (133) à effectuer le processus d'initialisation asynchrone sans utiliser un cache partagé avec une unité d'exécution de processus qui exécute la tâche ou un bus de mémoire entre l'unité de mise à zéro (133) et la mémoire (1341).
  10. 10. Procédé de commande exécuté par un appareil de traitement 10 d'informations, le procédé de commande comprenant : le stockage, dans une unité de stockage de page libre (134) qui divise une région de mémoire dans une mémoire (1341) en pages d'une pluralité de tailles de page différentes et gère les pages divisées, d'informations de gestion (Al, A7) sur un état d'initialisation correspondant à une région de mémoire inutilisée dans la 15 mémoire ; la sélection d'une page libre d'une taille de page en fonction d'une taille de région demandée ou une taille de page demandée depuis l'unité de stockage de page libre (134) lorsqu'une allocation de la région de mémoire inutilisée est demandée ; et 20 l'exécution d'un processus d'initialisation sur une région de mémoire sur laquelle le processus d'initialisation n'a pas été effectué dans une région de mémoire correspondant à la page libre en utilisant des informations de gestion sur la page libre sélectionnée. 25
  11. 11. Procédé de commande selon la revendication 10, dans lequel l'unité de stockage de page libre (134) comprend une structure de page (1342A) définie dans des unités de pages normales ayant la plus petite taille de page parmi la pluralité de tailles de page différentes, et le procédé de commande comprenant en outre : 30 l'enregistrement d'informations de gestion sur une grande page obtenue par combinaison de première et deuxième pages normales dans la structure de page (1342A) correspondant à la première page normale lorsque les première etdeuxième pages normales sont des pages libres sur lesquelles le processus d'initialisation a été effectué ; et l'enregistrement des informations de gestion sur la grande page dans chacune des structures de page (1342A) correspondant à la première et la deuxième page normale lorsque l'une quelconque des première et deuxième pages normales est une page libre sur laquelle le processus d'initialisation n'a pas été effectué. 10
  12. 12. Procédé de commande selon la revendication 11 comprenant en outre : l'enregistrement d'une taille obtenue en divisant par deux une taille de région initialisée dans chacune des structures de page (1342A) correspondant à des troisième et quatrième pages normales obtenues par division d'une grande page lorsqu'une taille de page de la grande page correspond à la taille de région initialisée 15 indiquée par les informations de gestion sur la grande page ; et le stockage d'informations sur la structure de page correspondant à une première demi-page dans la grande page en tant qu'informations sur la structure de page correspondant à la troisième page normale lorsque la taille de page de la grande page ne correspond pas à la taille de région initialisée, et le stockage 20 d'informations sur la structure de page correspondant à une deuxième demi-page dans la grande page en tant qu'informations sur la structure de page correspondant à la quatrième page normale.
  13. 13. Procédé de commande selon l'une quelconque des revendications 10 à 25 12 comprenant en outre l'exécution d'un processus d'initialisation asynchrone sur une région de mémoire correspondant à la page libre stockée dans l'unité de stockage de page libre (134) en utilisant les informations de gestion sur la page libre avec une temporisation différente d'une temporisation de processus d'allocation d'une région de mémoire, le 30 processus d'allocation comprenant le processus d'initialisation.
  14. 14. Procédé de commande selon la revendication 13 comprenant en outre :la détermination que la page libre sélectionnée à partir de l'unité de stockage de page libre (134) est ou non une page à traiter dans le processus d'allocation ; et la suspension du processus d'initialisation asynchrone sur la page libre lorsque la page libre est une page à allouer dans le processus d'allocation de page.
  15. 15. Procédé de commande selon la revendication 13 ou la revendication 14, dans lequel les informations de gestion sur la page libre comprennent un drapeau de commande (A3) pour la commande de l'exécution du processus d'initialisation asynchrone sur la page libre, et le procédé de commande comprenant en outre la définition d'un drapeau de suspension pour suspendre le processus d'initialisation asynchrone sur le drapeau de commande (A3) lorsqu'il est déterminé que la page libre est une page à traiter dans le processus d'allocation.
  16. 16. Procédé de commande selon la revendication 15 comprenant en outre la confirmation que le drapeau de suspension a été ou non défini sur le 20 drapeau de commande (A3) après que le processus d'initialisation asynchrone sur une page normale dans la page libre ait été effectué.
  17. 17. Procédé de commande selon l'une quelconque des revendications 13 à 16 comprenant en outre : 25 la commande d'une temporisation à laquelle le processus d'initialisation asynchrone est effectué ; et l'exécution du processus d'initialisation asynchrone avec une première temporisation avec laquelle une tâche effectuée en utilisant une région de mémoire initialisée allouée par le processus d'allocation a été exécutée. 30
  18. 18. Procédé de commande selon la revendication 17 comprenant en outre l'exécution du processus d'initialisation asynchrone avec une deuxièmetemporisation pendant une tâche effectuée en utilisant une région de mémoire allouée par le processus d'allocation sans utiliser un cache partagé avec l'exécution de la tâche et un bus de mémoire à la mémoire (1341).
  19. 19. Programme de commande pour amener un ordinateur à exécuter un processus comprenant : le stockage, dans l'unité de stockage de page libre (134) qui divise une région de mémoire dans une mémoire (1341) en pages d'une pluralité de tailles de page différentes et gère les pages divisées, d'informations de gestion (A1, A7) sur un état d'initialisation correspondant à une région de mémoire inutilisée dans la mémoire ; la sélection à partir de l'unité de stockage de page libre d'une page libre d'une taille de page en fonction d'une taille de région demandée ou une taille de 15 page demandée à partir de l'unité de stockage de page libre (134) lorsqu'une allocation de la région de mémoire inutilisée est demandée ; et l'exécution d'un processus d'initialisation sur une région de mémoire sur laquelle le processus d'initialisation n'a pas été effectué dans une région de mémoire correspondant à la page libre en utilisant des informations de gestion (A1, A7) sur la 20 page libre sélectionnée.
  20. 20. Programme de commande selon la revendication 19, dans lequel le processus comprend en outre l'unité de stockage de page libre (134) comprend une structure de page 25 (1342A) définie dans des unités de pages normales comprenant la plus petite taille de page parmi la pluralité de tailles de page différentes, et comprenant en outre : l'enregistrement d'informations de gestion sur une grande page obtenue par combinaison de première et deuxième pages normales dans la structure de page (1342A) correspondant à la première page normale lorsque les première et 30 deuxième pages normales sont des pages libres sur lesquelles le processus d'initialisation a été effectué ; et l'enregistrement des informations de gestion sur la grande pagedans chacune des structures de page (1342A) correspondant à la première et la deuxième page normale lorsque l'une quelconque des première et deuxième pages normales est une page libre sur laquelle le processus d'initialisation n'a pas été effectué.
  21. 21. Programme de commande selon la revendication 20, dans lequel le processus comprend en outre : l'enregistrement d'une taille obtenue en divisant par deux une taille de 10 région initialisée dans chacune des structures de page (1342A) correspondant à des troisième et quatrième pages normales obtenues par division d'une grande page lorsqu'une taille de page de la grande page correspond à la taille de région initialisée indiquée par les informations de gestion sur la grande page ; et le stockage d'informations sur la structure de page correspondant à une 15 première demi-page dans la grande page en tant qu'informations sur la structure de page correspondant à la troisième page normale lorsque la taille de page de la grande page ne correspond pas à la taille de région initialisée, et le stockage d'informations sur la structure de page correspondant à une deuxième demi-page dans la grande page en tant qu'informations sur la structure de page correspondant 20 à la quatrième page normale.
  22. 22. Programme de commande selon l'une quelconque des revendications 19 à 21, dans lequel le processus comprend en outre l'exécution d'un processus d'initialisation asynchrone sur une région de 25 mémoire correspondant à la page libre stockée dans l'unité de stockage de page libre (134) en utilisant les informations de gestion sur la page libre avec une temporisation différente d'une temporisation de processus d'allocation d'une région de mémoire, le processus d'allocation comprenant le processus d'initialisation. 30
  23. 23. Programme de commande selon la revendication 22, dans lequel le processus comprend en outre : la détermination que la page libre sélectionnée à partir de l'unité destockage de page libre (134) est ou non une page à traiter dans le processus d'allocation ; et la suspension du processus d'initialisation asynchrone sur la page libre lorsque la page libre est une page à allouer dans le processus d'allocation de page.
  24. 24. Programme de commande selon la revendication 22 ou 23, dans lequel les informations de gestion sur la page libre comprend un drapeau de commande (A3) pour la commande de l'exécution du processus d'initialisation asynchrone sur la page libre, et le processus comprenant en outre la définition d'un drapeau de suspension pour suspendre le processus d'initialisation asynchrone sur le drapeau de commande (A3) lorsqu'il est déterminé que la page libre est une page à traiter dans le processus d'allocation.
  25. 25. Programme de commande selon la revendication 24, dans lequel le processus comprend en outre la confirmation que le drapeau de suspension a été défini ou non sur le drapeau de commande (A3) après que le processus d'initialisation asynchrone sur une page normale dans la page libre ait été effectué.
  26. 26. Programme de commande selon l'une quelconque des revendications 22 à 25, dans lequel le processus comprend en outre : la commande d'une temporisation à laquelle le processus d'initialisation 25 asynchrone est effectué ; et l'exécution du processus d'initialisation asynchrone avec une première temporisation avec laquelle une tâche effectuée en utilisant une région de mémoire initialisée allouée par le processus d'allocation a été effectuée. 30
  27. 27. Programme de commande selon la revendication 26, dans lequel le processus comprenant en outrela commande du processus d'initialisation asynchrone avec une deuxième temporisation pendant une tâche effectuée en utilisant une région de mémoire allouée par le processus d'allocation sans utiliser un cache partagé avec 5 l'exécution de la tâche et un bus de mémoire à la mémoire (1341).
FR1463490A 2014-01-31 2014-12-31 Appareil, procede et programme de traitement d'informations Withdrawn FR3017222A1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014017240A JP6244949B2 (ja) 2014-01-31 2014-01-31 情報処理装置、制御方法、および制御プログラム

Publications (1)

Publication Number Publication Date
FR3017222A1 true FR3017222A1 (fr) 2015-08-07

Family

ID=53674396

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1463490A Withdrawn FR3017222A1 (fr) 2014-01-31 2014-12-31 Appareil, procede et programme de traitement d'informations

Country Status (3)

Country Link
US (1) US9489295B2 (fr)
JP (1) JP6244949B2 (fr)
FR (1) FR3017222A1 (fr)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016048502A (ja) * 2014-08-28 2016-04-07 富士通株式会社 情報処理装置及びメモリアクセス処理方法
KR102586628B1 (ko) * 2015-06-05 2023-10-11 삼성전자 주식회사 전자 장치 및 전자 장치의 메모리 관리 방법
US9891861B2 (en) 2015-06-25 2018-02-13 International Business Machines Corporation Off-line affinity-aware parallel zeroing of memory in non-uniform memory access (NUMA) servers
CN107220093B (zh) * 2017-06-20 2021-01-01 北京金山安全软件有限公司 一种进程处理方法及装置
JP7007557B2 (ja) * 2017-08-24 2022-01-24 富士通株式会社 情報処理装置、プロセス管理方法およびプロセス管理プログラム
JP7147531B2 (ja) * 2018-12-12 2022-10-05 日本電気株式会社 情報処理装置、メモリ初期化制御方法及びプログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3061001B2 (ja) * 1997-06-12 2000-07-10 日本電気株式会社 計算機システムにおけるメモリ割り当て方式
US6182089B1 (en) * 1997-09-23 2001-01-30 Silicon Graphics, Inc. Method, system and computer program product for dynamically allocating large memory pages of different sizes
US6658437B1 (en) * 2000-06-05 2003-12-02 International Business Machines Corporation System and method for data space allocation using optimized bit representation
JP2006048437A (ja) * 2004-08-05 2006-02-16 Matsushita Electric Ind Co Ltd メモリ割り当て方式
JP2006048436A (ja) 2004-08-05 2006-02-16 Matsushita Electric Ind Co Ltd メモリ割り当て方式
JP2006215991A (ja) 2005-02-07 2006-08-17 Fujitsu Ltd Dmaコントローラ
US7716448B2 (en) * 2007-02-28 2010-05-11 Red Hat, Inc. Page oriented memory management
WO2012107988A1 (fr) * 2011-02-07 2012-08-16 富士通株式会社 Programme de gestion de mémoire, procédé de gestion de mémoire et dispositif de traitement d'informations
US9286201B2 (en) * 2013-09-25 2016-03-15 Globalfoundries Inc. Method and system for automatic space organization in tier2 solid state drive (SSD) cache in databases for multi page support

Also Published As

Publication number Publication date
JP2015143943A (ja) 2015-08-06
US20150220447A1 (en) 2015-08-06
JP6244949B2 (ja) 2017-12-13
US9489295B2 (en) 2016-11-08

Similar Documents

Publication Publication Date Title
FR3017222A1 (fr) Appareil, procede et programme de traitement d'informations
US20190384524A1 (en) Extent migration in multi-tier storage systems
US9329942B2 (en) Optimizing restoration of deduplicated data
JP6290462B2 (ja) ネットワーク・アクセス可能なブロック・ストレージのための協調アドミッション制御
US10528527B2 (en) File management in thin provisioning storage environments
US20240195707A1 (en) Technologies for managing cache quality of service
US9712453B1 (en) Adaptive throttling for shared resources
US10601901B2 (en) Methods, systems, and media for stored content distribution and access
US10768997B2 (en) Tail latency-based job offloading in load-balanced groups
US10193973B2 (en) Optimal allocation of dynamically instantiated services among computation resources
FR3020886A1 (fr)
US20150237140A1 (en) Data storage systems and methods
US20220357870A1 (en) Object Tiering In A Distributed Storage System
US9823857B1 (en) Systems and methods for end-to-end quality of service control in distributed systems
Li et al. Fisc: a large-scale cloud-native-oriented file system
US11811867B2 (en) Data transmission routing based on replication path capability
US11080092B1 (en) Correlated volume placement in a distributed block storage service
Meyer et al. Supporting heterogeneous pools in a single ceph storage cluster
US11442629B2 (en) I/O performance in a storage system
Zhou Cloudftp: A case study of migrating traditional applications to the cloud
US11126371B2 (en) Caching file data within a clustered computing system
US9942351B2 (en) Enabling and disabling execution environments
Wu et al. Improving MapReduce Performance by Streaming Input Data from Multiple Replicas
US11360798B2 (en) System and method for internal scalable load service in distributed object storage system
US11048554B1 (en) Correlated volume placement in a distributed block storage service

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLFP Fee payment

Year of fee payment: 3

PLSC Search report ready

Effective date: 20180302

ST Notification of lapse

Effective date: 20180831