Hace 8 años | Por mr_b a blog.robertelder.org
Publicado hace 8 años por mr_b a blog.robertelder.org

Acabo de actualizar mi propio compilador de C y mi especificación básica de una CPU para que soporten memoria virtual. El proceso de añadir soporte para la memoria virtual a un compilador, un kernel y una CPU ha hecho que me de cuenta de que hay una gran falta de explicaciones de cómo estas partes encajan entre ellas o del tipo de decisiones que se toman dependiendo de si tienes experiencia o no. Es por esto que he hecho esta explicación interactiva sobre la inclusión de memoria virtual en nuestros sistemas.

Comentarios

meneandro

Gracias al concepto de memoria virtual (que se desarrolló ante el problema de ejecutar programas más grandes que la propia memoria en entornos multiproceso -en entornos monoproceso ya existía aquello de partir el programa en cachitos más pequeños e irlos des/cargando cuando hicieran falta-) tenemos otros conceptos tanto o más interesantes como aislar procesos entre si (page faults cuando vas a acceder a trozos de memoria que no son de tu programa), cambios de contexto (necesarios para que otro proceso pueda "ver su memoria", cacheado y memoria compartida (si una librería es usada por más de un proceso, no retirarla de memoria y colocarla en un lugar donde ambos procesos tengan permisos de lectura), etc. muchos de los cuales podían existir antes pero que en un entorno con memoria virtual tienen muchísimo más sentido y aportan un beneficio mucho mayor.

Hacerte tu propio sistema virtual para cacharrear y probar en tus propias carnes toda esa teoría que te dan en la carrera es un trabajo interesante y muy didáctico.

Homertron3

256 bytes deben ser suficientes para cualquier persona