Los sistemas de un solo proceso usuario desperdician gran cantidad de recursos computacionales debido a que:
- Cuando ocurre una petición de E/S la CPU normalmente no puede continuar el proceso hasta que concluya la operación de E/S requerida.
-Los periféricos de E/S frenan la ejecución de los procesos ya que comparativamente la CPU es varias órdenes de magnitud más rápida que los dispositivos de E/S.
Los sistemas de “multiprogramación” permiten que varios procesos usuarios compitan al mismo tiempo por los recursos del sistema:
Un trabajo en espera de E/S cederá la CPU a otro trabajo que esté listo para efectuar cómputos.
-Existe paralelismo entre el procesamiento y la E/S.
-Se incrementa la utilización de la CPU y la capacidad global de ejecución del sistema.
-Es necesario que varios trabajos residan a la vez en la memoria principal.
Multiprogramación de Partición Fija: Traducción y Carga Absolutas.
Los primeros sistemas de multiprogramación utilizaban la multiprogramación con particiones fijas, en la cual el almacenamiento principal se dividía en particiones de tamaño fijo. En cada partición se podía tener un solo trabajo. La UCP se conmutaba rápidamente entre los usuarios para crear la ilusión de simultaneidad. Los trabajos se traducían sobre compiladores y ensambladores absolutos para ejecutarse sólo en una partición específica. Si un trabajo estaba listo para ser ejecutado y su partición estaba ocupada, tenía que esperar, aunque estuvieran libres otras particiones. Este hecho provoca un desperdicio del almacenamiento, pero el sistema operativo era relativamente simple de implementar.
Multiprogramación de Partición Fija: Traducción y Carga Relocalizables
Los compiladores, ensambladores y cargadores con reubicación sirven para producir programas reubicables que se pueden ejecutar en cualquier partición disponible que sea suficiente grande para contenerlos. Este esquema elimina parte del desperdicio de espacioinherente a la multiprogramación con carga y traducción absolutas. Los traductores y cargadores con reubicación son más complejos que los absolutos, además confieren más flexibilidad en el armado de la carga de procesos.
Protección en los Sistemas de Multiprogramación
En los sistemas con multiprogramación y asignación contigua, la protección se logra a menudo con varios registros de límites. Con dos registros se pueden establecer los límites superior e inferior de la partición de un usuario o se puede indicar el límite inferior (o el límite superior) y la longitud de la región. El usuario que necesita ejecutar código correspondiente al sistema operativo utiliza una instrucción de llamada al supervisor para hacerlo. Esto permite al usuario cruzar el límite del sistema operativo y solicitar sus servicios sin poner en peligro la seguridad global del sistema.
Fragmentación en la Multiprogramación de Partición Fija.
La fragmentación del almacenamiento se presenta en todos los sistemas de cómputo, sea cual sea la organización de su almacenamiento. En los sistemas con multiprogramación y particiones fijas, la fragmentación ocurre porque los trabajos de los usuarios no llenan por completo las particiones designadas o porque una partición se queda sin utilizar por ser demasiado pequeña para contener un trabajo en espera.