Taille Mémoire Virtuel : 243,62 Go!

Le
eric.hamery
Taille Mémoire Virtuel : 243,62 Go!

avec un SDD de 120 Go ça va être dur :-DDD

http://d.pr/i/rY7q


























--
/ Mes Services - http://www.metamaitre.com
--o-- Forum "Méta-Science" - http://d.pr/VUA6
/ <08-D<X=8 - http://dieupurre.free.fr/DieuPurRe/Bienvenue.html
>>>> La Vie Est Belle <-<<<
Vos réponses Page 5 / 7
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
eric.hamery
Le #25960762
Gilbert OLIVIER
Donc on a une mémoire virtuelle donc de la taille necessaire aux besoins
de "l'appli" indépendamment de la taille mémoire physique. Quand
"l'appli" veut accéder à une adresse, si celle-ci n'est pas dans la
mémoire physique, le système transfère dans la ram le bloc de 4k la
contenant.



mais d'ou vient ce block de 4K ? qu'est ce qu'il contient ? si n'est pas
dans la ram et pas dans le swap, ou donc sont stocker ses données ? et
quelle interet de chercher un block virtuel qui ne contient rien
finalement ?

--
/ Mes Services - http://www.metamaitre.com
--o-- Forum "Méta-Science" - http://d.pr/VUA6
/ <08-D<X=8 - http://dieupurre.free.fr/DieuPurRe/Bienvenue.html
------------------------> La Vie Est Belle <----------------------<<<
eric.hamery
Le #25960752
Dieu PurRê Méta-Maitre de l'Extrême
Gilbert OLIVIER
> Donc on a une mémoire virtuelle donc de la taille necessaire aux besoins
> de "l'appli" indépendamment de la taille mémoire physique. Quand
> "l'appli" veut accéder à une adresse, si celle-ci n'est pas dans la
> mémoire physique, le système transfère dans la ram le bloc de 4k la
> contenant.

mais d'ou vient ce block de 4K ? qu'est ce qu'il contient ? si n'est pas
dans la ram et pas dans le swap, ou donc sont stocker ses données ? et
quelle interet de chercher un block virtuel qui ne contient rien
finalement ?



j'ai peut être trouver la reponse, il sagirait en fait que une
application quand elle ce lance, elle reserve une plage d'adresse, et
que cette plage est contabilisé par la mémoire virtuel, par exemple
"preference" peut reserver une plage d'adresse de 1Go et n'utilisé que
quelle Mo mais sur la logique de l'adressage elle a de disponible 1Go
d'adressage... ce serait une question d'adressage...

est ce que j'ai compris ?

--
/ Mes Services - http://www.metamaitre.com
--o-- Forum "Méta-Science" - http://d.pr/VUA6
/ <08-D<X=8 - http://dieupurre.free.fr/DieuPurRe/Bienvenue.html
------------------------> La Vie Est Belle <----------------------<<<
Patrick Stadelmann
Le #25960882
In article (Gilbert OLIVIER) wrote:


Je pensai qu'il y avait un rapport avec le nombre de frameworks utilisés
par l'appli et des "avidités" de chacun de ceux-ci. De toute façon elle
est virtuelle donc ...



Ca joue probablement un rôle. Mais même mes programmes tout simple en
CLI dépassent les 2 Go.

Juste à noter qu'avec Mavericks il n'est plus possible d'afficher dans
le moniteur d'activité la mémoire virtuelle par application. On a juste
droit à une valeur globale.



En 10.6 non plus, ce que l'on peut afficher c'est l'équivalent de VPRVT
(espace d'adressage privé) dans "top", et pas VSIZE (espace d'adressage
total). Or c'est VSIZE qui est utilisé pour calculer la valeur dont il
est question ici.

Patrick
--
Patrick Stadelmann
pehache
Le #25961282
Le mercredi 29 janvier 2014 09:36:17 UTC+1, Gilbert OLIVIER a écrit :
pehache
> Non, personnellement j'ai compris, sauf que l'explication donnée par
> Apple (et c'est pareil ailleurs) est très (trop) partielle. Il n'est dit
> nulle part qu'une page de mémoire virtuelle n'est pas forcément
> connectée à une page de mémoire physique. Or c'est un point presq ue
> central pour la compréhension du truc.

Le premier paragraphe de "About Virtual memory":

"Virtual memory allows an operating system to escape the limitations of
physical RAM. The virtual memory manager creates a logical address space
(or "virtual" address space) for each process and divides it up into
uniformly-sized chunks of memory called pages. The processor and its
memory management unit (MMU) maintain a page table to map pages in the
program's logical address space to hardware addresses in the computer's
RAM. When a program's code accesses an address in memory, the MMU uses
the page table to translate the specified logical address into the
actual hardware memory address. This translation occurs automatically
and is transparent to the running application."

Me semble pourtant très clair et suffisant.



Non, c'est une explication du processus de swap, mais qui sous-entend que l e contenu d'une page de mémoire virtuelle est forcément défini et pr ésent soit en RAM soit sur le disque.

Ca ne dit pas du tout qu'une page de mémoire virtuelle peut n'avoir aucun contenu défini et donc n'être présente physiquement nulle part.



Et en français, ce qui est virtuel n'est pas physique.




Il y a plusieurs sens à "virtuel", et plus encore de la façon dont on l 'utilise aujourd'hui. On dit une machine "virtuelle" (genre VMWare), mais e lle a bien un support physique qui est une vraie machine...

Dans le cas de la mémoire "virtuelle", elle l'est de plusieurs façons d ifférentes : 1) par une couche d'abstraction découplant les adresses en mémoire virtuelle des adresses physiques (RAM ou disque), et 2) par le f ait que certaines pages de la mémoire virtuelle n'ont aucune adresse phys ique (ni en RAM ni sur disque). Mais le 2) ne découle pas forcément du 1), et si il n'est pas précisé ce n'est pas une évidence du tout. Le 1) seul suffirait à qualifier le truc de "virtuel".



Donc on a une mémoire virtuelle donc de la taille necessaire aux besoin s
de "l'appli" indépendamment de la taille mémoire physique. Quand
"l'appli" veut accéder à une adresse, si celle-ci n'est pas dans la
mémoire physique, le système transfère dans la ram le bloc de 4k la
contenant.




...ou pas si c'est une page qui n'a aucune existence physique, pas même s ur le disque : si un process veut lire une telle page, je suppose que le ke rnel lui renvoie tout simplement des zéros sans rien transférer en RAM.

Je zappe le reste, qui ne fait que ré-expliquer le processus de swap
pehache
Le #25961322
Le mercredi 29 janvier 2014 12:18:35 UTC+1, Matt a écrit :

> Ce n'est pas parce que la VM n'occupe pas forcément d'espace physique
> que les valeurs n'ont aucun sens. Ce ne sont pas juste des nombres
> aléatoires, ils doivent avoir des explications et correspondre à de s
> allocations réellement présentes dans le code.

La totalité de ces addressages dépend des allocations requises par le s
processus.



Je n'ai pas dit autre chose. La question porte sur le pourquoi des valeurs énormes observées sur les anciennes versions d'OS X, valeurs énormes qu'on ne trouve ni sur la dernière version ni dans les autres OS courants .

Patrick Stadelman a donné un début de réponse.


Tu peux t'amuser (bon courage en passant) à visualiser les régions de la
mémoire virtuelle allouées à des processus avec vmmap(1).

Cependant je maintiens que savoir, pour un utilisateur lambda, pourquoi
l'application iApp.app a demandé à avoir X Mo dans la mémoire virtu elle,
ne sert strictement à rien.




Oui, la curiosité est un vilain défaut. Vivement qu'OS X soit remplac é par iOS : moins on verra de choses moins on se posera de questions sur les entrailles.



> Oui d'accord, mais le mélange constant entre le concept de mémoire
> virtuelle et celui de swap n'aide pas vraiment un "béotien" à compr endre.

Que tu mélanges l'enchaînement des évènements c'est un fait



Je ne mélange rien du tout, je dis juste que dans les liens que tu as pro posés, nulle part il n'est dit ni même suggéré qu'une page de mém oire virtuelle peut n'avoir aucune connection physique, ni en RAM ni sur di sque. Et que ça manque à la compréhension du truc, surtout quand on v oit les quantité énormes de mémoire virtuelle dans 10.6.



> Non, personnellement j'ai compris, sauf que l'explication donnée par
> Apple (et c'est pareil ailleurs) est très (trop) partielle. Il n'est dit
> nulle part qu'une page de mémoire virtuelle n'est pas forcément
> connectée à une page de mémoire physique. Or c'est un point presq ue
> central pour la compréhension du truc.

T'as vraiment un problème avec la définition des mots toi.
Parce que les allocations faites par les processus dans la mémoire
virtuelle sont *virtuelles*. Elles deviennent physique uniquement
lorsque celles-ci sont écrites dans la mémoire physique (la RAM) ou d ans
le « backing store » (le swap).



Sauf que ce n'est écrit nulle part.

Tu sembles partir du principe que c'est évident, alors qu'il n'y a aucune raison que ça le soit.

> Encore une fois j'avais lu, et encore une fois toutes ces explications
> tournent exclusivement autour du mécanisme de swap. Quelqu'un qui lit ça
> NE PEUT PAS comprendre comment il peut y avoir 200Go de mémoire
> virtuelle annoncée, avec 4Go de RAM et 128Go de disque.

Bon là je ne peux plus rien.



Evite donc d'être prof un jour, alors :-) !
pehache
Le #25961312
Le mercredi 29 janvier 2014 10:00:23 UTC+1, Patrick Stadelmann a écrit  :


C'est juste qu'OS X réserve un immense espace d'adressage virtuel pour
chaque process (dans les 2 Go).




Et sais-tu pourquoi faire ?
Patrick Stadelmann
Le #25961392
In article pehache
Le mercredi 29 janvier 2014 10:00:23 UTC+1, Patrick Stadelmann a écrit :
>
>
> C'est juste qu'OS X réserve un immense espace d'adressage virtuel pour
> chaque process (dans les 2 Go).
>

Et sais-tu pourquoi faire ?



J'imagine que sa simplifie la gestion et permet d'anticiper les besoins
de la plupart des applications. Et avec un espace mémoire 64-bit,
pourquoi s'en priver ?

Patrick
--
Patrick Stadelmann
gilbert.olivier
Le #25961802
Dieu PurRê Méta-Maitre de l'Extrême
est ce que j'ai compris ?



Dieu seul le sait et il n'est pas bavard
--
Gilbert
gilbert.olivier
Le #25961812
Patrick Stadelmann
En 10.6 non plus, ce que l'on peut afficher c'est l'équivalent de VPRVT
(espace d'adressage privé) dans "top", et pas VSIZE (espace d'adressage
total). Or c'est VSIZE qui est utilisé pour calculer la valeur dont il
est question ici.


Ok merci.

Là je n'ai sous la main que le portable avec Mavericks et un G5 avec
10.5 et là on peut afficher une colonne avec la VM.

Avec Mavericks on peut avoir l'info en affichant les infos de
l'opération sélectionnée onglet "Mémoire".


--
Gilbert
gilbert.olivier
Le #25961852
pehache
Le mercredi 29 janvier 2014 09:36:17 UTC+1, Gilbert OLIVIER a écrit :
> pehache >
> > Non, personnellement j'ai compris, sauf que l'explication donnée par
> > Apple (et c'est pareil ailleurs) est très (trop) partielle. Il n'est
> > dit nulle part qu'une page de mémoire virtuelle n'est pas forcément
> > connectée à une page de mémoire physique. Or c'est un point presque
> > central pour la compréhension du truc.
>
> Le premier paragraphe de "About Virtual memory":
>
> "Virtual memory allows an operating system to escape the limitations of
> physical RAM. The virtual memory manager creates a logical address space
> (or "virtual" address space) for each process and divides it up into
> uniformly-sized chunks of memory called pages. The processor and its
> memory management unit (MMU) maintain a page table to map pages in the
> program's logical address space to hardware addresses in the computer's
> RAM. When a program's code accesses an address in memory, the MMU uses
> the page table to translate the specified logical address into the
> actual hardware memory address. This translation occurs automatically
> and is transparent to the running application."
>
> Me semble pourtant très clair et suffisant.

Non, c'est une explication du processus de swap, mais qui sous-entend que
le contenu d'une page de mémoire virtuelle est forcément défini et
présent soit en RAM soit sur le disque.

Ca ne dit pas du tout qu'une page de mémoire virtuelle peut n'avoir aucun
contenu défini et donc n'être présente physiquement nulle part.


>
> Et en français, ce qui est virtuel n'est pas physique.
>

Il y a plusieurs sens à "virtuel", et plus encore de la façon dont on
l'utilise aujourd'hui. On dit une machine "virtuelle" (genre VMWare),
mais elle a bien un support physique qui est une vraie machine...



Tout comme la VM dont on parle est bien gérée sur une machine physique
;-))


Dans le cas de la mémoire "virtuelle", elle l'est de plusieurs façons
différentes : 1) par une couche d'abstraction découplant les adresses en
mémoire virtuelle des adresses physiques (RAM ou disque), et 2) par le
fait que certaines pages de la mémoire virtuelle n'ont aucune adresse
physique (ni en RAM ni sur disque). Mais le 2) ne découle pas forcément
du 1), et si il n'est pas précisé ce n'est pas une évidence du tout. Le
1) seul suffirait à qualifier le truc de "virtuel".

>
>
> Donc on a une mémoire virtuelle donc de la taille necessaire aux besoins
> de "l'appli" indépendamment de la taille mémoire physique. Quand
> "l'appli" veut accéder à une adresse, si celle-ci n'est pas dans la
> mémoire physique, le système transfère dans la ram le bloc de 4k la
> contenant.
>

...ou pas si c'est une page qui n'a aucune existence physique, pas même
sur le disque : si un process veut lire une telle page, je suppose que
le kernel lui renvoie tout simplement des zéros sans rien transférer en
RAM.

Je zappe le reste, qui ne fait que ré-expliquer le processus de swap



Relis toi, tu dis plus haut que c'est l'autre paragraphe qui explique le
swap.


--
Gilbert
Publicité
Poster une réponse
Anonyme