Esquemas de administración de memoria
1. Multiprogramación sin intercambio ni paginación. Consiste en ejecutar solo un programa a la vez, repartiendo ese programa y el sistema operativo. En este caso el sistema operativo podría estar en la parte más baja de la memoria RAM (memoria de acceso aleatorio; random acces memory) o podría estar en ROM (memoria de solo lectura; read-only memory) en la parte más alta de la memoria, o los controladores de dispositivos podrían estar en la parte más alta de ROM y el resto en RAM más abajo.
2. Multiprogramación con particiones fijas. La multiprogramación eleva el aprovechamiento de la CPU. Esto se logra dividiendo la memoria en n particiones. También puede lograrse de forma manual, por ejemplo cuando se pone en marcha el sistema. Cuando llega un trabajo se puede colocar en la cola de entrada de la partición más pequeña en la que quepa, el esquema de las particiones son fijas y cualquier espacio de una partición no ocupada se desperdicia. Una de las desventajas de este esquema es que al repartir los trabajos que llegan entre las distintas colas se hace evidente cuando la cola de una partición grande está vacía pero la de una partición pequeña está llena.
3. Modelado de la multiprogramación. Cuando se utiliza la multiprogramación es posible mejorar el aprovechamiento de la CPU, un mejor modelo es ver el aprovechamiento de la CPU desde un punto de vista probabilístico. Un proceso pasa una fracción p de su tiempo esperando a que terminen operaciones de E/S. Si hay n procesos en la memoria a la vez la probabilidad de que todos estén esperando E/S (el CPU estará inactivo) es p n . Entonces el
aprovechamiento de la CPU está dado por la fórmula.
Aprovechamiento de CPU 1 p n .
El modelo probabilístico no es más que una aproximación, se basa en la suposición implícita de que los n procesos son independientes, por ejemplo; en el caso que se tengan cinco procesos en memoria, tres estén en ejecución y dos esperando. Sin embargo, con una sola CPU no es posible tener tres procesos ejecutándose al mismo tiempo, por lo que un proceso que pase al estado listo mientras la CPU está ocupada, tendrá que esperar, por lo que los procesos no son independientes.
Fuente: Apuntes de la materia Sistemas Operativos Multiusuario de la FCA – UNAM