Bonjour,
J'ai prêté ma knoppix a un ami qui a une petite config (je vais lui trouver un autre truc à base de morphix je pense....) et il me dit qu'il est trés content que ça fonctionne, mais OpenOffice a mis 20 minutes à se lancer (on peut en faire des choses pendant 20 minutes !) parce qu'il a 64Mo de RAM... normal quoi !
Mais je n'arrive pas à comprendre comment ça fonctionne... d'un coté vous avez le CD, de l'autre vous avez la RAM qui est trop petite pour contenir l'application et normalement, y'a pas de HD pour swapper... alors même en 20 minutes, comment qu'il fait pour rentrer 80Mo de données dans 64Mo de ram ?
Axel - 584
# Mako swap
Posté par Rafael (site web personnel) . Évalué à 9.
Les ordinateurs n'avaient que 1024 octets de ram. Tout cela était géré comme une seule page.
Personne ne pensait à un authentique système d'exploitation.
Ensuite, sont apparus des systèmes d'exploitation, pour faire en sorte, que le programme en lui même ne s'occupe que de manipuler des données utiles, laissant la gestion de la mémoire disponible et du disque, des périphériques, au système d'exploitation dont c'est le métier.
A un moment, même dans linux, il n'existait pas de mécanisme de gestion des librairies partagées. Et oui, 2 programmes en mémoire peuvent utiliser la même librairie, donc il est inutile que celle ci soit 2 fois en mémoire. Ca a été géré, et un jour 2 programmes ont pu partager la même librairie (chargée une seule fois, mais avec 2 environnements de variables, un pour chaque process (2 ou plus d'aillieurs))
De la même façon, au début, s'il n'y avait que 4Mo de Ram, on ne pouvait lancer que 4Mo de programmes + données.
On s'est rendu compte que en segmentant les programmes et les données en portions d'une taille donnée, ont pouvait suivre celles qui étaient utilisées et celles qui ne l'étaient pas.
Alors, un mécanisme (le swap) s'est occupé de placer dans le swap des pages de mémoire allouées mais non utilisées tout de suite à cet instant précis. Le but du jeu est que le segment exécuté soit en mémoire à un instant donné. Une fois arrivé au bout, on en change, et s'il est sur le disque, et bien on colle sur le disque une portion non utilisée, on prend des notes pour pas se perdre, et on recopie le segment suivant depuis le disque vers la mémoire (re prise de notes). Et ainsi de suite....
Si tu n'as pas assez de mémoire pour assumer ton train de vie de besoins de mémoire, le swap va échanger les pages sans fin entre ta mémoire et ton disque, un peu comme du crédit revolving. Tu payes par le ralentissement.
On comprend que si les besoins sont très supérieurs à la mémoire dispo, le système passe son temps à swapper comme un fou. Tant qu'on reste dans une certaine limite, ça ne plante pas, mais ça va pas vite... Aussi, si l'on prend beaucoup de mémoire, on recule le seuil de déclenchement de ce mécanisme. La machine est plus fluide, plus longtemps.
Si tu ne sais pas cela, je t'invite à te plonger dans
http://www.commentcamarche.net/(...) pour de longues heures de lectures passionnantes.
Rafael, vieux dino.
[^] # Re: Mako swap
Posté par Matthieu Weber . Évalué à 6.
Cela dit, ça m'intrigue aussi. Ce qui est possible, c'est que Linux ne chargeant que les pages de code (programme binaire) qui sont nécessaires à l'exécution du logiciel à un moment donné (donc pas tout le binaire d'un coup), si je me souviens bien, a pu exécuter tout ce qui est nécessaire en chargeant/déchargeant les pages nécessaires à un moment donné. Mais c'est pure spéculation de ma part.
[^] # Re: Mako swap
Posté par Nico . Évalué à 1.
[^] # Re: Mako swap
Posté par Security__Watch . Évalué à 8.
Quand on manque de page, on libère celles des portions de programme les moins utilisées. Pour OOo, par exemple, si tu n'utilises pas les présentations, elles sont tout simplement effacées de la mémoire, et cette portion de mémoire est utilisée pour autre chose (enregistrer tes données, par ex, ou un autre programme).
Quand on a à nouveau besoin du code d'une page effacée, on va simplement le rechercher à nouveau sur le CD. D'où une certaine lenteur pour les gros programmes, où des bouts de code bien éparpillés sont utilisés.
On n'efface pas les pages contenant des données écrites par l'utilisateur. Ce sont les pages ont le flag "write". On ne vire que les pages ayant le flag "read" or "execute", qui proviennent du CD.
Quelqu'un pour tester ce qui se passe quand l'utilisateur a écrit plus de données qu'on ne peut en stocker en mémoire vive ? ;-)
[^] # Re: Mako swap
Posté par Florent C. . Évalué à 2.
Sa question était (en gros) : comment se fait-il qu'un programme de 80Mo puisse s'éxecuter sur un PC ne disposant que de 64Mo alors qu'il n'y a pas de disque dur pour héberger la swap ?
D'où ton hors-sujet.
De plus, je trouves que tu as pris la question sur un ton quelque peu hautain. Lorsqu'on s'apprête à écrire une longue réponse de cette manière, on prend au moins la peine de faire l'effort de bien comprendre la question.
[^] # 20'
Posté par Rafael (site web personnel) . Évalué à 7.
A la relecture, je ne vois que la "saine lecture de commencamarche.net" mais de toutes les façons je dis toujours comme ça.
J'ai d'abord cherché une page expliquant le fonctionnement de la pagination et du swap, mais je n'ai pas trouvé. Donc, j'ai tenté d'expliquer ça de façon aussi didactique que possible.
Si tu veux, j'écris kom ca 6 C + facile a lir
J'ai la faiblesse de penser que si j'ai 3 minutes, rien ne m'empêche d'écrire comme je parle, ça ne mange pas de pain, et je reste lisible.
Il n'y a rien de dévalorisant à RTFM, je le fais tous les jours.
Enfin, mettons nous dans la situation de ce kernel obligé à faire tenir 80Mo dans 64Mo.
S'il garde les segments de données en RAM, et utilise les segment de programme sur le disque, les segments de programme étant immuables et présents sur le disque, s'il envoie les segments de programme à swapper vers /dev/null, il retombe sur ses pattes, car ils resteront lisibles la prochaine fois qu'il en aura besoin.
Dans l'évolution de linux, ce cas s'est forcément présenté, et a manifestement été géré, la preuve le noyau s'en sort. Tout le monde l'a oublié car tout le monde reboote sa machine bien avant les 20'.
Rafael (vieux tout court à force)
[^] # "normalement" il n'y a pas de disque
Posté par Rafael (site web personnel) . Évalué à 2.
Parce que si c'est un truc non vérifié, il est inutile de disserter sur le sexe des anges...
La knoppix swappe sur disque si besoin à ce que je sais, en demandant (ça je ne sais pas).
[^] # Re: Mako swap
Posté par Nap . Évalué à 2.
# Re: comment ça marche Knoppix
Posté par Nicolas Delsaux (site web personnel) . Évalué à 2.
Normallement ?
Pourquoi n'imaginerait-on pas que Knoppix est capable, à un moment ou un autre, de voir si il y a un disque dur, puisque d'ailleurs on peut y lister le contenu des disques, de lire la table d'allocation, et d'utiliser comme un swap une partie vierge d'un disque dur ?
[^] # Re: comment ça marche Knoppix
Posté par Florent C. . Évalué à 3.
1/ hasardeux
2/ peu probable
3/ assez dangereux
Mais ça n'engage que moi :)
[^] # Re: comment ça marche Knoppix
Posté par Marc (site web personnel) . Évalué à 2.
[^] # Re: comment ça marche Knoppix
Posté par tuiu pol . Évalué à 1.
[^] # Re: comment ça marche Knoppix
Posté par GCN (site web personnel) . Évalué à 2.
Lors du lancement, Knoppix nous avertis du manque de RAM est propose la création d'un fichier de swap sur le disque-dur (ce n'est donc pas obligatoire).
Lorsque l'on retire la Knoppix et que l'on reboot la machine "normalement" sous Windows il y a, à la racine de C:, un fichier (dont j'ai oublié le nom) qui était utilisé juste avant par Knoppix pour le swap.
Mais, si Axel R. nous dis qu'aucun swap n'a été créé lors de l'exécution de knoppix (apparemment, la machine n'a pas de HDD), alors... Je ne pourrais répondre à sa question :).
[^] # Re: comment ça marche Knoppix
Posté par Zorro (site web personnel) . Évalué à 1.
[^] # Re: comment ça marche Knoppix
Posté par Axel R. (site web personnel) . Évalué à 2.
[^] # Re: comment ça marche Knoppix
Posté par Axel R. (site web personnel) . Évalué à 5.
Non, Axel R. avait dit qu'il avait prété sa knoppix a un ami, il est possible que l'ami en question ai dit "oui" à la création de swap.
J'étais perplexe sur le "comment ça marche" et j'ai eu ma réponse.
Merci à Rafael Pinilla, qui malgré son hors sujet m'a rappeller avec plaisir mes cours de licence d'informatique :-)
Donc, on peut bien mettre 80 cl dans un verre de 64 cl :-)
C'est surtout que l'ami en question n'a pas linux qui me surprenait et j'aurais compris que knoppix utilise une partition de swap s'il en trouvait une...
On sait donc maintenant que windows sert à quelque chose : du swap pour la knoppix :-)
Axel
[^] # Re: comment ça marche Knoppix
Posté par xilun . Évalué à 2.
Un partie inutilisee d'un HD a pour but de rester.... inutilisee !
Sauf si bien sur le proprietaire donne la permission.
Pourquoi ? Parce que si le proprio vient de virer une partition tout en prenant soin de noter son secteur de debut et de fin, et bien il peut la recreer par la suite s'en rien perdre.
Tandis que si on ecrit dessus entre temps, exit les donnees.
Cela doit etre situation vraiment tres rare mais la proba qu'elle survienne n'est pas nulle, donc...
[^] # Re: comment ça marche Knoppix
Posté par Benoît Bailleux (Mastodon) . Évalué à 1.
Se peut-il que Knoppix soit capable d'identifier le système résident sur un disque dur et y créé un fichier régulier qui sert de swap ?
[^] # Re: comment ça marche Knoppix
Posté par boris . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.