Evolución y Fundamentos de los Sistemas Operativos: De los Inicios a la Multiprogramación


¿Qué es un Sistema Operativo (SO)?

Es un software que tiene por objetivo fundamental administrar y controlar de manera integral todos los recursos de un sistema computacional.

Los primeros Sistemas Operativos

  • No disponían de sistema operativo.
  • Operación por medio de consola.
  • Se escribían manualmente los programas (dirección de inicio de ejecución).
  • Uso de cintas magnéticas o tarjetas perforadas.
  • La consola permitía monitorear la ejecución de los programas.
  • El usuario tenía acceso a los registros de memoria (riesgo de errores de programación).
  • Los resultados se entregaban en formulario continuo o tarjeta.
  • El computador era asignado a los usuarios por bloque de tiempo.
  • Deficiencias de asignación por bloque de tiempo (tiempo de setup).

Procesos BATCH (Conjuntos o Lotes)

  • Los pasos de ejecución se repetían debido a errores normales de compilación.
  • Al agrupar procesos de la misma naturaleza, el proceso Batch presentaba problemas en la óptima utilización de la CPU (detención de procesos).
  • El tiempo ocioso de la CPU impulsó la creación de un secuenciador automático de procesos: el Monitor Residente (el primer Sistema Operativo).

Operación OFF-LINE

  • Se incorporaron medios en cintas magnéticas para equilibrar los tiempos de respuesta.
  • Poseía un computador denominado satélite que permitía la interacción entre los dispositivos de tarjetas y las unidades de cinta (transformación).
  • La desventaja era la presencia de un sistema con “acceso secuencial”.

Características del Spooling

  • Se guarda una imagen de la tarjeta en el disco duro una vez leída.
  • Consiste en el uso del disco como un gran búfer de memoria para la lectura y registros de salida parciales hasta terminar los procesos.
  • Permite desarrollar en paralelo la entrada/salida (E/S) de un job con el procesamiento de otro.
  • El Spooling provee una nueva estructura de datos: un conjunto de jobs.
  • Este proceso de secuenciación se denomina Scheduling Process (Proceso de Planificación).
  • La importancia del Scheduling Process radica en la potencialidad de la Multiprogramación.

Multiprogramación

  • Objetivo: Lograr que la CPU esté siempre procesando algún job.
  • Requiere varios programas residentes en memoria al mismo tiempo.
  • Beneficios: Incremento de la utilización de la CPU y mayor productividad (throughput).

Clasificación de trabajos

  • Trabajos limitados por I/O: Tienen muchos ciclos de entrada/salida y son pequeños.
  • Trabajos limitados por CPU: Tienen ciclos largos en los que el programa está asignado a la CPU.

Gestión de Procesos

Un proceso es un programa en ejecución (un trabajo batch, un programa de usuario en tiempo compartido o una tarea del sistema).

Bloque de Control de Procesos (PCB)

Cada proceso está representado en el sistema operativo por su propio PCB, una estructura de datos que incluye:

  • Identificador del proceso: Estado del proceso (nuevo, preparado, en ejecución, esperando o detenido).
  • Contador del programa: Indica la dirección de la siguiente instrucción a ejecutar.
  • Campos de registros de la CPU: Información de estado que se salva durante una interrupción para permitir que el proceso continúe correctamente.

Cola de procesos listos

Los procesos preparados y esperando se mantienen en una lista enlazada formada por los PCB. Cada PCB tiene un puntero que apunta al siguiente en la cola.

Planificación de Procesos

  • Planificación a largo plazo (Long Term Scheduler – LT-S): Determina qué trabajos se admiten en el sistema. Controla el grado de multiprogramación.
  • Planificación a corto plazo (Short Term Scheduler – ST-S): Selecciona entre los trabajos en memoria cuáles están listos para la ejecución y asigna la CPU a uno de ellos con alta frecuencia.

Dejar un Comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *