Fundamentos de Sistemas Operativos: Gestión de Procesos y Algoritmos de Planificación
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 5,7 KB
Bloque de Control de Proceso (BCP)
Para cada proceso, el **Sistema Operativo (S.O.)** debe guardar su estado y cualquier otra información que debe mantenerse mientras no esté en ejecución.
- Estado actual (preparado, en espera).
- Registros de la CPU (contador de programa, otros registros).
- Información del planificador (ID, prioridad).
- Apuntadores a las zonas de memoria del proceso.
- Información de contabilidad (tiempo consumido, etc.).
- Información de E/S (dispositivos por los que espera, lista de archivos abiertos, etc.).
- Etcétera.
Estados de un Proceso
- Nuevo
- Recién creado por la CPU.
- En Ejecución
- Ejecutando instrucciones en la CPU.
- Bloqueado
- Esperando a que ocurra algún evento (ejemplo: operación de E/S).
- Preparado
- Esperando a que le asignen un procesador.
- Terminado
- No ejecutará más instrucciones y le serán removidos los recursos que consume.
Cambio de Contexto
Es la operación que consiste en desalojar a un proceso de la **CPU** y reanudar otro.
Hay que guardar el estado del proceso que sale en su **BCP**, y recuperar los registros del proceso que entra. Cada contexto se encuentra en cada BCP.
El cambio de contexto es **tiempo perdido**, así que debe ser lo más rápido posible.
Planificación de Procesos
Objetivo de la Multiprogramación
- Maximizar el aprovechamiento de la **CPU**.
Objetivos del Tiempo Compartido
- Conmutar la CPU entre procesos con tal frecuencia que los usuarios puedan interactuar con cada programa durante su ejecución.
- Sistemas con un solo procesador.
Los procesos esperan por la CPU y por dispositivos de E/S.
Turno Rotatorio (Round Robin)
Es un algoritmo adecuado para implementar el **tiempo compartido**.
- Se comporta como el FCFS (First-Come, First-Served), pero cada proceso dispone de un **cuanto de tiempo máximo** (quantum).
- Si cuando expira el cuanto de tiempo el proceso sigue en la CPU, el planificador lo desaloja y lo ingresa al final de la cola de preparados.
- La cola de preparados se gestiona como una **FIFO** (First-In, First-Out).
- Si el cuanto de tiempo es $Q$ y hay $N$ procesos en cola, el tiempo de respuesta es como mucho $Q imes (N-1)$.
Influencia del Cuanto de Tiempo ($Q$)
Si $Q$ es muy grande, los procesos terminarán sus ráfagas de CPU antes de que termine el cuanto: se comporta como un **FCFS**.
- Si $Q$ tiende a ser grande, se tiende a un sistema en el que cada proceso dispone de un procesador a $1/N$ de la velocidad del proceso real (**procesador compartido**).
- Si $Q$ es muy pequeño, ocurren más **cambios de contexto** y baja el rendimiento.
¿Qué es un Sistema Operativo (S.O.)?
Es un programa que sirve de intermediario entre los usuarios y el **hardware**. Pertenece al software de sistema.
Objetivos del S.O.
- Ejecutar las aplicaciones de los usuarios.
- Facilitar la interacción con el computador (amigabilidad, comodidad).
- Administrar eficientemente los recursos de la máquina (**eficiencia**).
El S.O. no realiza trabajo productivo directamente.
Tipos de Sistemas Operativos
- Primeros sistemas.
- Sistemas por lotes.
- Mejoras de la gestión de la E/S.
- Sistemas por lotes multiprogramados.
- Sistemas de tiempo compartido.
- Ordenadores personales.
- Sistemas paralelos (**multiprocesadores**).
- Sistemas distribuidos.
- Sistemas en tiempo real.
Sistemas Monitor Residente
Programa fijo en memoria con rutinas **imprescindibles** para que el sistema funcione:
- Intérprete del cargador de programas.
- Rutinas de E/S.
Automatiza tareas del antiguo operador. Es considerado el **primer S.O. auténtico**.
Sistema por Lotes Multiprogramado
Objetivo: Mejorar el rendimiento de la CPU.
Motivación: Consecuencia de la planificación de tareas.
Procedimiento: Combinación del uso de la CPU. Cuando una tarea debe esperar, los recursos del sistema son asignados a otra tarea preparada para la ejecución.
Sistemas de Tiempo Compartido
Mejora la **interactividad** con el usuario. Son sistemas multiprogramados e interactivos.
Asignación de la CPU en rodajas de tiempo a todos los usuarios, consiguiendo:
- Tiempos de respuesta cortos.
- Impresión de usuario único.
Sistemas Compartidos (Multiprocesador)
También conocidos como sistemas multiprocesador o **sistemas fuertemente acoplados**.
- Poseen más de un procesador.
- Comparten bus, reloj, periféricos, etc.
- Ofrecen mejor rendimiento y permiten compartir recursos.
Sistemas Distribuidos
También conocidos como sistemas multicomputador o **sistemas débilmente acoplados**.
- Distribuyen el cómputo entre varios procesadores.
- Los procesadores no comparten ni memoria ni reloj.
- Se comunican entre sí a través de líneas de comunicación.
- Ventajas: recursos compartidos, computación más rápida, confiabilidad, comunicación.
Sistemas de Tiempo Real
Los requisitos de tiempo de la operación del procesador o del flujo de datos son **estrictos**.
- Tiempo real duro.
- Tiempo real blando.