Conceptos Esenciales de Sistemas Operativos: Planificación de CPU y Gestión de Procesos
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 5,97 KB
Planificación de CPU: Algoritmos de Scheduling
La planificación de CPU (CPU Scheduling) es fundamental para determinar qué proceso en la cola de listos debe ser ejecutado por la CPU.
Algoritmos No Apropiativos
First Come First Served (FCFS)
Se basa en FIFO (First In, First Out). El primer proceso que llega es el primero que termina. Es no apropiativo. Su implementación es simple y es justo para procesos de igual prioridad. Provoca el efecto convoy.
Shortest Job First (SJF)
De todos los procesos que ya llegaron, se elige el de menor ráfaga de CPU. Es no apropiativo. Minimiza el tiempo promedio de espera. Puede provocar inanición de procesos largos.
Highest Response Ratio Next (HRRN)
Se elige el proceso con mayor RR (Response Ratio). Es no apropiativo. La fórmula es: RR = (WT + CPU) / CPU. Equilibra la justicia entre procesos cortos y largos. Requiere calcular el ratio constantemente para cada proceso.
Algoritmos Apropiativos
Shortest Remaining Time First (SRTF)
Se elige el proceso con el menor tiempo restante (CPU). Cada vez que el proceso avanza una unidad, el tiempo restante se reduce en 1. Es apropiativo. Ofrece un tiempo de respuesta aún más reducido que SJF. Genera sobrecarga por cambios de contexto.
Round Robin (RR)
Parecido a FCFS, basado en FIFO, pero los procesos no pueden tomar la CPU por más unidades que el quantum definido (Q). Si el proceso no termina dentro del quantum, pasa al final de la cola. Es ideal para sistemas interactivos porque ningún proceso se queda congelado por mucho tiempo. Si el quantum es muy pequeño, hay sobrecarga de cambios de contexto.
Virtual Round Robin (VRR)
Parecido a RR. Se manejan dos listas: NORMAL y AUXILIAR/PRIORIDAD. Si el proceso no consume el quantum definido en la ráfaga de CPU antes de ser tomado por E/S (Entrada/Salida), se encola en la lista AUXILIAR/PRIORIDAD. El quantum sobrante será la cantidad máxima de unidades que podrá avanzar cuando deje de estar tomado por E/S. En caso de terminar el quantum, se vuelve a encolar en la lista NORMAL. A la hora de elegir qué proceso tomará la CPU, se prioriza la cola AUXILIAR. Reduce el tiempo de espera para procesos que requieren E/S frecuente. Requiere mayor gestión y puede ser más complejo de implementar.
Fundamentos del Sistema Operativo (SO)
El Sistema Operativo (SO) es el programa que actúa como intermediario entre el usuario y el hardware. Es, esencialmente, un administrador de recursos.
Administración de Recursos y Máquina Virtual (VM)
Los recursos administrados por el SO son:
- Tiempo de CPU.
- Espacio de memoria principal.
- Almacenamiento secundario.
- Dispositivos de E/S.
El SO tiene dos perspectivas principales:
- Administrador de Recursos: Decide cómo se asignan los recursos, resuelve conflictos y garantiza el aislamiento.
- Máquina Virtual (VM): Ofrece abstracciones de alto nivel más sencillas que el hardware subyacente.
Modos de Ejecución y Núcleo (Kernel)
Modo Usuario (No Privilegiado)
Es el nivel menos permisivo. La CPU solo ejecuta un subconjunto de instrucciones máquina, quedando prohibido el acceso a ciertas áreas de memoria o registros.
Modo Núcleo (Kernel/Privilegiado)
Permite ejecutar todas las instrucciones sin restricción y acceder a todos los registros y mapas de direcciones.
Llamadas al Sistema (Syscalls)
Las Syscalls son necesarias para que un programa en modo usuario solicite un servicio privilegiado. Utilizan la instrucción especial TRAP, que fuerza al procesador a reconocer un evento. Esto provoca una conmutación de modo de Usuario a Núcleo.
Gestión de Procesos
Proceso
Un proceso es la unidad de procesamiento gestionada por el SO, definida como un programa en ejecución. Es la entidad activa (instancia de la ejecución), mientras que el programa (archivo ejecutable en disco) es la entidad pasiva.
Bloque de Control de Proceso (PCB)
El PCB (Process Control Block) es una estructura de datos residente en la Memoria Principal (RAM) durante la vida del proceso. Contiene toda la información de contexto y control necesaria para que el SO pueda gestionar el proceso y reanudarlo:
- ID del proceso.
- Estado del proceso.
- Estado del procesador (registros).
- Información de planificación.
- Información de gestión de memoria.
- Información contable (tiempos de uso de CPU).
- Información de E/S.
Estados y Transiciones del Proceso
Estados del Proceso
- Nuevo: El proceso se está creando en la Memoria Principal.
- Listo: El proceso espera que se le asigne la CPU.
- Ejecutando: La CPU está ejecutando sus instrucciones. Solo puede haber un proceso en Ejecución por CPU/núcleo.
- Bloqueado/En Espera: Espera que ocurra algún evento (ej., fin de una operación de E/S o liberación de un recurso).
- Terminado: Ha finalizado su ejecución.
Transiciones Importantes
- Listo → Ejecutando: Decisión tomada por el Dispatcher.
- Ejecutando → Bloqueado: Ocurre cuando el proceso solicita una operación de E/S o espera un evento.
- Ejecutando → Listo: Ocurre por desalojo (preemption) del SO.
- Bloqueado → Listo: Ocurre cuando se completa el evento esperado.