Jueves, 29 de diciembre de 2005

Trucos PalmEvitar cuelgues en las nuevas Palm con NVFS (I)

Como este análisis va a ser profundo, anticipo que se van a tratar los reinicios que aleatoriamente sufren los usuarios de Palms con el nuevo sistema de memoria NVFS (especialmente los dos primeros equipos que lo implementaron: la Tungsten T5 y el Treo 650), la causa de los mismos, y cómo se pueden solucionar.

Desde el lanzamiento de la Tungsten T5, allá por el 2004, Palm ha implementado en sus dispositivos el novedoso sistema de memoria denominado NVFS, que son las siglas de Non-Volatile File System. Consiste en la utilización de memoria flash (el mismo tipo de memoria que las tarjetas SD) como memoria principal de la PDA. La memoria flash no necesita alimentación eléctrica contínua para preservar la información, cosa que sí necesitaba la anterior memoria utilizada, del tipo RAM, similar a la de los ordenadores.

Esto tiene dos ventajas: menor consumo de energía (con lo que la autonomía mejora enormemente), y que el contenido de la memoria no se pierda cuando se agota completamente la batería. Pero el NVFS también trajo inconvenientes. Más precisamente, la implementación del mismo. Y para entender el problema, primero debemos conocer cómo es exactamente el nuevo sistema de memoria.

En PDAExpertos está muy bien explicado. Voy a resumirlo a lo mínimo necesario para entender el resto del análisis. Para una lectura en más profundidad, recomiendo su artículo.

Las Palm anteriores a la Tungsten T5 tenían el siguiente esquema de memoria:

  • Por un lado un chip de memoria ROM con el sistema operativo, programas y librerías que venían de fábrica. La memoria ROM, como su nombre indica, es de sólo lectura, no la podemos modificar.
  • Y un chip de memoria RAM a su vez con dos partes: la que nosotros realmente accedemos, donde se instalan los programas, se guardan los documentos, etc, y una pequeña parte a la que no podemos acceder, denominada Dynamic Heap, que es la usada por los programas cuando se ejecutan. Ambas partes podrían identificarse con el disco duro y la memoria principal de un ordenador, respectivamente.

Las Palm con NVFS tienen otra estructura:

  • Un chip de memoria flash, en el que está, en una zona, el sistema operativo, librerías y programas que vienen de fábrica (viene a ser la ROM de los modelos anteriores), y en otra zona de la misma, la memoria para nuestro uso, donde se guardan los programas que instalamos nosotros, los documentos, etc. Digamos que es como un disco duro de ordenador, en el que el sistema operativo está en un directorio, y en los demás nuestros programas y datos.
  • Pero sigue habiendo también un chip de memoria RAM. Y os preguntaréis ¿para qué? La razón es que un programa no se puede ejecutar directamente en la memoria flash, debe hacerlo en RAM. Por lo tanto, cada vez que se ejecuta una aplicación, ésta debe copiarse primero a RAM. Esto lo hace nuestra Palm de manera transparente, y el retraso que produce es imperceptible.
    Esta memoria RAM contiene el Dynamic Heap que comentamos antes, y además una zona llamada DbCache que es donde se copian, como decimos, los programas para ejecutarse. Una vez que cerramos un programa, se borra de la DbCache para hacerle sitio al siguiente programa que ejecutemos (así debería ser al menos…). Y ésta caché es precisamente la causante de todos los problemas.

Resumiendo, la famosa DbCache, de unos 10Mb, a la que no podemos acceder directamente es, como hemos visto, de uso interno del sistema operativo. Y los problemas de “Not enought memory…” que da el Blazer, o los reinicios por errores “Fatal Exception” o “Memory full” que se producen cuando abrimos un programa que consume mucha memoria, o sin causa aparente en algunos casos, se deben a su peculiar forma de funcionamiento. Pero eso lo veremos en el siguiente post, porque éste ya se ha hecho bastante denso.

Posts en esta serie:

si te ha gustado este post.



5 comentarios sobre “Evitar cuelgues en las nuevas Palm con NVFS (I)”


Deja un comentario


Etiquetas válidas:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Akismet ha protegido ya este blog de miles de comentarios fraudulentos. Pero si por error filtra tu comentario por favor avísame mediante el email de contacto de la derecha.