En esta época, tus dispositivos de mano se actualizan y mejoran cada vez más. Hemos estado recibiendo constantemente actualizaciones en el departamento de memoria (más de lo que realmente necesitamos). Si lees nuestro artículo anterior, «¿Cuánta RAM es demasiada RAM?», sabrás cuánta RAM es realmente necesaria para que tu smartphone funcione sin problemas y, más allá de eso, es simplemente una exageración.
Puede que necesites una actualización si en la época actual tu teléfono se retrasa o se ralentiza. Pero, ¿te has preguntado alguna vez por qué y, sobre todo, cómo ocurre? En esta característica, vamos a DeCode cómo sucede esto. Y mucho más. Sigue leyendo.
¿Por qué nuestro mundo gira en torno a la memoria RAM?
En el corazón del sistema operativo Android hay un núcleo Linux. Cada vez que se inicia una nueva aplicación, se crea un proceso dentro de Linux. Un proceso es ahora responsable de todos los diferentes recursos que el kernel puede asignar a las diferentes apps. El tiempo de la CPU, los procesos de Entrada y Salida, y la memoria RAM son todos considerados como un recurso.
El tiempo de la CPU y la E/S son mayormente considerados como recursos infinitos. Si usted tiene una CPU ocupada y quiere ejecutar una nueva tarea, su tarea también obtendrá una porción de ese tiempo de CPU. Es seguro que la tarea se realizará, pero podría retrasarse debido a la sobrecarga del tiempo de la CPU. Del mismo modo, su tarea podría suceder un poco más rápido si la CPU está menos ocupada.
En el caso de la E/S, la descarga de un archivo grande, escribir algo en el almacenamiento interno o hacer cualquier otro proceso al mismo tiempo podría ralentizar su finalización, pero eventualmente sucederá.
Sin embargo, la RAM está presente en un dispositivo en una cantidad fija. Es finita. Si te quedas sin RAM no hay magia que libere RAM si esperas un poco más. Por lo tanto, Android y Linux necesitaban un sistema que les ayudara a hacer frente a esta limitación.
¿Cómo funciona la RAM en un smartphone?
Cada vez que se lanza una aplicación en el dispositivo, se inicia un nuevo proceso que exige al núcleo de Linux que necesita (digamos) ‘X’ cantidades de RAM sólo para cargar la aplicación. Después de eso, la aplicación también podría pedir más memoria para cargar algunos archivos más o para descargar algo de Internet y el kernel de Linux proporcionará lo necesario. Así es como ocurre la delegación básica de RAM.
Su dispositivo tiene un conjunto de memoria disponible, que es diferente de la memoria libre. La memoria disponible es en realidad la memoria disponible para iniciar nuevas aplicaciones o procesar otras aplicaciones, sin intercambiar. En un sistema operativo multitarea, la memoria libre es algo malo ya que la memoria está ociosa; siempre puede ayudar en un proceso u otro.
Por ejemplo, la memoria libre se puede utilizar para mejorar la E/S de los archivos, la E/S de la red para el almacenamiento en caché o se puede dar a otros programas que pueden hacer que esa memoria extra sea útil. Al mismo tiempo, también se marca como memoria disponible. Por lo tanto, en cualquier momento puede dejar de ser utilizada como buffer o caché y puede ser utilizada por un proceso.
En un dispositivo de 4GB de RAM, parte de la memoria es utilizada por los controladores de hardware, y otra parte es utilizada por Android. La memoria restante disponible después de reiniciar un sistema fresco será de alrededor de 1,7 GB. Cuando se lanza una aplicación, el dispositivo mirará la memoria disponible y proporcionará algunos trozos para usar en los procesos.
En realidad, dividirá la memoria en páginas, una página de aproximadamente 4 KB. Estas páginas pueden ser delegadas por el sistema a diferentes procesos, según sea necesario. Todos los procesos funcionarán bien si hay memoria en abundancia. Pero cuando la memoria disponible se reduce a medida que aumenta el número de aplicaciones, comienza a causar algunos problemas. En algún momento, no habrá suficiente memoria disponible para iniciar un nuevo proceso.
En esta etapa, Linux y Android tienen un problema. Para hacer frente a esto, pueden hacer swapping o matar una aplicación para liberar memoria. El concepto de swapping lo conocemos de los servidores y los ordenadores de sobremesa. Cuando no tienes suficiente memoria, puedes tomar parte de la memoria activa que está actualmente en la RAM y escribirla en un disco duro. De esta manera, se libera ese bloque/página de memoria. Más tarde, si esa página se necesita de nuevo, puedes recuperarla del disco duro. Sin embargo, Android funciona de manera un poco diferente y no almacena la memoria en un disco duro.
Android utiliza ZRAM (‘Z’ en términos de Unix es un símbolo para la RAM comprimida). ZRAM swap puede aumentar la cantidad de memoria disponible en el sistema comprimiendo páginas de memoria y poniéndolas en el área de swap de la memoria asignada dinámicamente. Una vez que se escribe algo en esa memoria comprimida, no se puede acceder a ella y se convierte en algo parecido a un archivo ZIP. Si quieres usarlo, tienes que descomprimirlo y escribirlo de nuevo en la memoria principal. Este proceso consiste en intercambiar y volver a intercambiar. Este ciclo interminable de intercambio se llama «thrashing». Android no tiene ningún problema con el thrashing, ya que cuando se satura, es decir, se queda sin espacio para el intercambio, simplemente comienza a matar procesos.
Elige una aplicación que no ha utilizado durante un tiempo de la lista y la mata. Esto libera el espacio que esa aplicación estaba utilizando y ahora el espacio está disponible para una nueva aplicación o una aplicación existente para ampliar. Todas las aplicaciones están diseñadas de forma que cuando una aplicación pasa a segundo plano siempre existe la posibilidad de que no vuelva a abrirse. Por lo tanto, su estado actual se guarda.
Si vuelves a abrir la app se recarga. A veces, este proceso no es fluido. Por ejemplo, si estabas jugando a un juego no empezará desde donde lo dejaste, sino que podría empezar desde el mismo nivel. La forma en que la aplicación afronte esta situación depende de la aplicación y de la persona que la haya escrito. Si necesita una memoria más grande, se pueden matar varios procesos.
La recarga frecuente conduce a una experiencia de usuario amarga. Por eso tener más RAM es preferible desde el punto de vista del usuario. Aunque todos los matices del intercambio y cuándo se intercambia son un poco más complicados. Pero cuando el teléfono está sobrecargado, está obligado a matar algunas aplicaciones para mantener el teléfono en funcionamiento y evitar que se congele. Matar es básicamente un mal necesario, que es adoptado por el sistema Android. Manténgase en sintonía para más artículos de este tipo en su camino. Feliz lectura!