Glosario Esencial de Sistemas Operativos: Procesos, Sincronización y Gestión de Memoria
Clasificado en Informática
Escrito el en
español con un tamaño de 9,15 KB
Conceptos Fundamentales de Procesos y Comunicación
- Modo Dual: Distinción entre el modo Usuario (ejecución de aplicaciones) y el modo Kernel (acceso directo al hardware).
- initd/systemd: Sistemas de inicialización a nivel de usuario que gestionan el arranque del sistema y los servicios.
- PCB (Process Control Block): Estructura de datos que reside en la memoria del kernel y contiene el estado de un proceso.
- Señal: Aviso asíncrono enviado a un proceso para notificarle un evento.
- Interrupción: Evento de Hardware o Software que detiene temporalmente la ejecución de la CPU para atender una solicitud.
- wait(): Llamada al sistema que permite a un proceso padre esperar la terminación de uno de sus procesos hijos.
- exec(): Llamada al sistema que reemplaza el código y los datos del proceso actual con un nuevo programa.
- IPC (Comunicación Interprocesos): Mecanismos que permiten a los procesos intercambiar información, como Pipes, memoria compartida y Sockets.
- Proceso Huérfano: Proceso hijo cuyo proceso padre termina antes que él. Es adoptado por el proceso
init(osystemd). - Proceso Zombie: Proceso hijo que ha terminado su ejecución, pero cuyo proceso padre aún no ha realizado la llamada
wait()para recoger su estado. - Daemon: Proceso que se ejecuta en segundo plano, generalmente para proporcionar servicios (ejemplo:
cron). - fork(): Llamada al sistema que crea un nuevo proceso hijo. El padre recibe el PID del hijo, y el hijo recibe 0.
- Señales de Terminación:
- SIGTERM: Señal de terminación suave (ignorable).
- SIGINT: Señal de interrupción (generada típicamente por Ctrl+C).
- SIGKILL: Señal para matar el proceso (no ignorable).
- Creación de Procesos con
fork(): Si se ejecutan $n$ llamadas afork(), se crean $2^n$ procesos en total (incluyendo el original). - Concurrencia vs. Paralelismo:
- Concurrencia: Alternancia de ejecución de tareas en un solo núcleo.
- Paralelismo: Ejecución simultánea de tareas en múltiples núcleos.
- Output de Programa: Las combinaciones de salida dependen del orden de ejecución no controlado (referencia a variables compartidas como p=1 y c=1).
- Multiprogramación: Capacidad de tener varios programas residentes en la memoria principal simultáneamente.
- Multitarea (Multitasking): Ejecución de varias tareas interactivas a la vez, permitiendo la alternancia rápida de la CPU.
Kernel, Rendimiento y Sincronización de Procesos
- Kernel: Núcleo central del Sistema Operativo, responsable de gestionar procesos, memoria, dispositivos y manejar las llamadas al sistema.
- User Space vs. Kernel Space:
- User Space: Espacio donde se ejecutan las aplicaciones de usuario con acceso restringido.
- Kernel Space: Espacio con control total sobre el hardware del sistema.
- Context Switch (Cambio de Contexto): Proceso de guardar el estado de la CPU de un proceso y restaurar el estado de otro proceso para permitir su ejecución.
- Tiempo de Respuesta (Response Time): Tiempo transcurrido desde que se realiza una petición hasta que se produce la primera respuesta.
- Tiempo de Espera (Waiting Time): Tiempo total que un proceso pasa en la cola de listos, esperando ser ejecutado por la CPU.
- Throughput: Cantidad de procesos terminados por unidad de tiempo.
- Tiempo de Turnaround: Tiempo total desde la llegada del proceso al sistema hasta su terminación.
- Starvation (Inanición): Situación en la que un proceso nunca recibe la CPU debido a políticas de planificación injustas o prioridades bajas.
- Deadlock (Interbloqueo): Bloqueo permanente de un conjunto de procesos que esperan recursos que están siendo retenidos por otros procesos del mismo conjunto.
- Livelock: Situación en la que los procesos están activos y cambian de estado, pero no logran avanzar en su trabajo (ejemplo: reintentos constantes).
- Race Condition (Condición de Carrera): Situación en la que el resultado de la ejecución depende del orden no controlado de acceso a datos compartidos entre procesos o hilos.
- Mutex (Exclusión Mutua): Mecanismo de sincronización utilizado para garantizar que solo un proceso o hilo acceda a un recurso compartido a la vez.
- Semáforo: Variable entera utilizada para controlar el acceso concurrente a recursos. Pueden ser binarios (equivalentes a un Mutex) o contadores.
- Monitor: Abstracción de alto nivel que encapsula datos compartidos y procedimientos de sincronización para simplificar la gestión de la concurrencia.
Gestión de Memoria Virtual y Fragmentación
- Memoria Virtual: Abstracción que proporciona a cada proceso la ilusión de tener un espacio de direcciones de memoria propio y contiguo.
- Swapping: Proceso de mover procesos completos (o partes de ellos) entre la memoria RAM y el disco duro para liberar espacio en la memoria principal.
- Page Fault (Fallo de Página): Ocurre cuando un proceso intenta acceder a una página de memoria que no está cargada actualmente en la RAM.
- Fragmentación Interna: Espacio desperdiciado dentro de una partición o página asignada a un proceso.
- Fragmentación Externa: Espacio libre total suficiente, pero disperso en pequeños bloques, impidiendo la asignación de grandes bloques contiguos.
- Thrashing: Condición en la que la CPU pasa la mayor parte del tiempo realizando operaciones de paginación (intercambio de páginas) en lugar de ejecutar instrucciones útiles.
Algoritmos de Planificación de CPU (Scheduling)
- Scheduler (Planificador): Componente del SO que decide qué proceso debe ejecutar la CPU. Opera a corto, mediano o largo plazo.
- FCFS (First Come First Served): Algoritmo de planificación no expropiativo que ejecuta los procesos en estricto orden de llegada.
- SJF (Shortest Job First): Algoritmo que prioriza los procesos con la ráfaga de CPU (Burst Time) más corta. Puede causar starvation.
- Round Robin (RR): Algoritmo expropiativo donde cada proceso recibe un quantum (intervalo de tiempo fijo) de CPU en ciclos rotatorios.
- EDF (Earliest Deadline First): Algoritmo de planificación en tiempo real que prioriza el proceso cuyo plazo límite (deadline) es el más cercano.
Fórmulas Clave de Rendimiento
- Tiempo de Turnaround: Tiempo de Finalización - Tiempo de Llegada.
- Tiempo de Respuesta: Tiempo de Inicio de Ejecución - Tiempo de Llegada.
- Tiempo de Espera: Tiempo de Turnaround - Tiempo de Ráfaga (Burst).
Tipos de Planificación y Ejecución
Planificación No Expropiativa (Non-Preemptive)
Una vez que un proceso comienza, se ejecuta de inicio a fin sin interrupción.
- FCFS (First Come First Served): Los procesos se ordenan y ejecutan según su tiempo de llegada.
- SJF (Shortest Job First): Se elige el proceso con el menor Burst Time (ráfaga) disponible en el tiempo 0 y se ejecuta hasta el final.
- Priority Scheduling (No Expropiativo): Se elige el proceso con la menor prioridad (o mayor, según la convención) en el tiempo 0 y se ejecuta hasta el final.
Planificación Expropiativa (Preemptive)
La ejecución de un proceso puede ser interrumpida si llega un proceso con mayor prioridad o si su quantum expira.
- SJF (Expropiativo): La CPU se corta si llega un proceso con un Burst Time restante menor que el del proceso en ejecución.
- Round Robin: Se utiliza un quantum de tiempo. Los procesos se agregan a la cola por orden de llegada y se rotan.
- Priority Scheduling (Expropiativo): La CPU se corta si llega un proceso con una prioridad superior a la del proceso en ejecución.
- EDF (Earliest Deadline First): Se elige el proceso con el deadline más cercano. La ejecución se corta si llega un proceso con un deadline más inminente.