Sistemas operativos modernos

Programa de usuario Sistema operativo en RAM OxFFF Sistema operativo en ROM (a) Programa de usuario (b) Controladores de dispositivos en ROM Programa de usuario Sistema operativo en RAM {c) Figura 4-1. Tres formas sencillas de organizar la memoria con un sistema operativo y un proceso de usuario. También hay otras posibilidades. citado del disco a la memoria y lo ejecuta. Cuando el proceso termina, el sistema operativo exhibe un indicador de comandos y aguarda un nuevo comando. Cuando lo recibe, carga un nue­ vo programa en la memoria, sobrescribiendo el primero. 4.1.2 Multiprogramación con particiones fijas Con excepción de los sencillos sistemas integrados, la monoprogramación ya casi no se usa. La mayoría de los sistemas modernos permite la ejecución de varios procesos al mismo tiem­ po. Esto implica que si un proceso se bloquea en espera de que termine una operación de E/S, otro puede usar la CPU. Así, la multiprogramación eleva el aprovechamiento de la CPU. Los servidores de red siempre han podido ejecutar múltiples procesos (para clientes distintos) al mismo tiempo, pero en la actualidad casi todas las máquinas cliente (es decir, de escritorio) también cuentan con esta capacidad. La forma más fácil de lograr la multiprogramación es simplemente dividir la memoria en n particiones (tal vez desiguales). Esta división puede efectuarse en forma manual, por ejem­ plo, cuando se pone en marcha el sistema. Cuando llega un trabajo, se puede colocar en la cola de enürada de la partición más peque­ ña en la que cabe. Puesto que en este esquema las particiones son fijas, cualquier espacio de una partición no ocupada por un trabajo se desperdicia. En la figura 4-2a vemos el aspecto que tiene este sistema de particiones fijas y colas de entrada individuales. La desventaja de 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, como sucede con las particiones 1 y 3 de la figura 4-2a. Aquí los trabajos pequeños tienen que esperar para entrar en la memoria, aunque hay mucha memoria desocupada. Una organización alterna sería mantener una sola cola, como en la figura 4-2b. Cada vez que se desocupe una partición, el trabajo más cercano al frente de la cola y, que quepa en esa partición, se cargará en la partición vacía y se ejecutará. Puesto que no es conveniente desperdiciar una partición grande en un trabajo pequeño, una estrategia distinta sería examinar toda la cola de entrada ca-

RkJQdWJsaXNoZXIy MjI4NDcx