¿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.
