Parte IV: Gestión de la memoria
Para que un programa pueda ejecutarse, su código y datos debe ser cargados en la memoria principal. Por tanto, para poder ejecutar múltiples programas que mantenga ocupada la CPU y el resto de recursos del sistema, es necesario aprovechar todo lo posible la memoria principal. Estudiaremos varias estrategias, aunque sobre todas ellas destaca la memoria virtual, implementada por los sistemas modernos, ya que permite ejecutar un programa sin tener que cargarlo completamente en memoria, lo que deja más espacio para cargar y ejecutar otros programas.
Aparte del uso eficaz de la memoria, también consideraremos su protección. Como varios procesos se cargan simultáneamente en la memoria principal —a la que tiene acceso directo la CPU— sin mecanismos de protección cualquier proceso podría modificar la memoria del resto de procesos e incluso del sistema operativo. Para evitarlo, en los sistemas modernos los procesos se aíslan unos de otros en sus propios espacios de direcciones virtuales. Incluso dentro de la memoria de cada proceso se ajustan los permisos para que solo se puedan ejecutar las regiones que contienen código o solo se pueda escribir en aquellas zonas que almacenan variables que pueden ser modificadas.