À notre époque, vos appareils portables sont mis à niveau et s’améliorent de plus en plus. Nous avons été constamment mis à niveau dans le département de la mémoire (plus que ce dont nous avons réellement besoin). Si vous lisez notre article précédent, ‘Combien de RAM est trop de RAM ?’, vous saurez en fait combien de RAM est réellement nécessaire pour que votre smartphone fonctionne de manière transparente et au-delà, c’est juste exagéré.
Vous pourriez avoir besoin d’une mise à niveau si, à l’époque actuelle, votre téléphone traîne ou ralentit. Mais vous êtes-vous déjà demandé pourquoi, et surtout, comment cela se produit ? Dans cette fonctionnalité, nous allons DéCoder comment cela se produit. Et bien plus encore. Lisez la suite !
Pourquoi notre monde tourne autour de la RAM ?
Au cœur du système d’exploitation Android se trouve un noyau Linux. Chaque fois que vous démarrez une nouvelle application, vous avez créé un processus à l’intérieur de Linux. Un processus est maintenant responsable de toutes les différentes ressources que le noyau pourrait allouer aux différentes apps. Le temps CPU, les processus d’entrée et de sortie, et la RAM sont tous considérés comme une ressource.
Le temps CPU et les entrées/sorties sont principalement considérés comme des ressources infinies. Si vous avez un CPU occupé et que vous voulez lancer une nouvelle tâche, votre tâche obtiendra également une tranche de ce temps CPU. Il est certain que la tâche sera effectuée, mais elle peut être retardée en raison de la surcharge du temps CPU. De même, votre tâche pourrait se produire un peu plus rapidement si le CPU est moins occupé.
Dans le cas des E/S, le téléchargement d’un gros fichier, l’écriture de quelque chose dans le stockage interne ou l’exécution de tout autre processus en même temps pourrait ralentir leur achèvement, mais cela finira par arriver.
Cependant, la RAM est présente dans un appareil en quantité fixe. Elle est finie. Si vous manquez de RAM, il n’y a pas de magie qui libère de la RAM si vous attendez un peu plus longtemps. Par conséquent, Android et Linux avaient besoin d’un système pour les aider à faire face à cette limitation.
Comment fonctionne la RAM dans un smartphone?
Chaque fois que vous lancez une application sur votre appareil, un nouveau processus est lancé qui demande au noyau Linux qu’il a besoin (disons) de ‘X’ quantités de RAM juste pour charger l’application. Après cela, l’application peut également demander plus de mémoire pour charger d’autres fichiers ou pour télécharger quelque chose sur Internet et le noyau Linux fournira le nécessaire. C’est ainsi que la délégation de base de la RAM se produit.
Votre appareil a un pool de mémoire disponible, qui est différent de la mémoire libre. La mémoire disponible est en fait la mémoire disponible pour démarrer de nouvelles apps ou traiter d’autres apps, sans swapping. Dans un système d’exploitation multitâche, la mémoire libre est une mauvaise chose car la mémoire reste inactive ; elle peut toujours aider dans un processus ou l’autre.
Par exemple, la mémoire libre peut être utilisée pour améliorer les entrées/sorties de fichiers, les entrées/sorties réseau pour la mise en cache ou peut être donnée à d’autres programmes qui peuvent rendre cette mémoire supplémentaire utile. En même temps, elle est aussi marquée comme mémoire disponible. Par conséquent, à tout moment, elle peut cesser d’être utilisée comme tampon ou cache et peut être utilisée par un processus.
Dans un appareil de 4 Go de RAM, une partie de la mémoire est utilisée par les pilotes matériels, et une partie est utilisée par Android. La mémoire disponible restante après le redémarrage d’un système frais sera d’environ 1,7 Go. Lorsqu’une application se lance, l’appareil regarde la mémoire disponible fournir quelques morceaux à utiliser pour les processus.
Il va en fait diviser la mémoire en pages, une page d’environ 4 KB. Ces pages peuvent être déléguées par le système à différents processus, selon les besoins. Tous les processus fonctionneront bien s’il y a de la mémoire en abondance. Mais lorsque la mémoire disponible diminue à mesure que le nombre d’applications augmente, cela commence à poser quelques problèmes. À un moment donné, il n’y aura pas assez de mémoire disponible pour démarrer un nouveau processus.
À ce stade, Linux et Android ont un problème. Pour y faire face, ils peuvent soit faire du swapping, soit tuer une application pour libérer de la mémoire. Le concept de swapping nous vient des serveurs et des ordinateurs de bureau. Lorsque vous n’avez pas assez de mémoire, vous pouvez prendre une partie de la mémoire active qui se trouve actuellement dans la RAM et l’écrire sur un disque dur. De cette façon, vous libérez ce bloc/page de mémoire. Plus tard, si cette page est à nouveau nécessaire, vous pourrez la récupérer sur le disque dur. Cependant, Android fonctionne un peu différemment et ne stocke pas la mémoire sur un disque dur.
Android utilise la ZRAM (‘Z’ en termes Unix est un symbole pour la RAM compressée). Le swap ZRAM peut augmenter la quantité de mémoire disponible dans le système en compressant les pages de mémoire et en les mettant dans une zone de swap de la mémoire allouée dynamiquement. Une fois que quelque chose a été écrit dans cette mémoire comprimée, vous ne pouvez plus y accéder et elle devient un peu comme un fichier ZIP. Si vous voulez l’utiliser, vous devez le décompresser et le réécrire dans la mémoire principale. Ce processus est appelé swapping out et swapping back in. Ce cycle sans fin de swapping est appelé « thrashing ». Android n’a pas de problème avec le thrashing car lorsqu’il est saturé c’est-à-dire qu’il manque d’espace pour le swapping, il commence simplement à tuer les processus.
Il va choisir une app que vous n’avez pas utilisée depuis un moment dans la liste et la tue. Il libère l’espace que cette app utilisait et maintenant l’espace est disponible pour une nouvelle app ou une app existante à développer. Toutes les applications sont conçues de telle sorte que lorsqu’une application est mise en arrière-plan, il y a toujours une chance qu’elle ne soit plus jamais ouverte. Donc, leur état actuel est sauvegardé.
Si vous ouvrez à nouveau l’app, elle se recharge. Parfois, ce processus n’est pas sans faille. Par exemple, si vous jouiez à un jeu, il ne commencera pas à l’endroit où vous vous êtes arrêté mais pourrait commencer au même niveau. La façon dont l’application fait face à cette situation dépend de l’application et de la personne qui l’a écrite. Si vous avez besoin d’une plus grande mémoire, plusieurs processus peuvent être tués.
Le rechargement fréquent conduit à une expérience utilisateur amère. C’est pourquoi avoir plus de mémoire vive est préférable du point de vue de l’utilisateur. Bien que toutes les nuances de la permutation et du moment où elle est permutée soient un peu plus compliquées. Mais lorsque votre téléphone est surchargé, il est obligé de tuer certaines applications pour maintenir votre téléphone en fonctionnement et l’empêcher de geler. La mise à mort est essentiellement un mal nécessaire, qui est adopté par le système Android. Restez à l’écoute pour d’autres articles de ce type à venir. Bonne lecture!