Conceptos Clave en Sistemas Operativos: Procesos, Concurrencia y Comunicación
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 14,65 KB
🔷 TEMA | 📝 RESUMEN RÁPIDO | 💡 DETALLE Y EJEMPLOS |
Proceso | Programa en ejecución con PID y PCB. | PCB: PID, contador de programa, registros CPU, memoria, comunicación. |
Estados del proceso | Nuevo → Listo → Ejecución → (Quantum) → Listo/Bloqueado → ... | Scheduler decide ejecución; quantum = tiempo en Round Robin. |
Creación de procesos | UNIX: fork() + exec() | Windows: CreateProcess() crea y carga directamente. |
Terminación de procesos | Normal, error voluntario, fatal, externo (kill). | |
Jerarquía de procesos | UNIX: padre-hijo | Windows: no jerarquía real, manejo con “manejadores”. |
Concurrencia | Varios procesos parecen ejecutarse simultáneamente. | Pseudo-paralelismo con cambio rápido de contexto. |
Condición de carrera | Dos procesos acceden a recurso compartido sin sincronizar. | Ejemplo: contador++ no es atómico, puede fallar. |
Sección crítica | Código que accede a variables compartidas. | Exclusión mutua: solo 1 proceso a la vez. |
Exclusión mutua | Soluciones para proteger sección crítica: | 1) Deshabilitar interrupciones 2) Locks 3) Alternancia 4) TSL 5) Peterson 6) Semáforos 7) Monitores 8) Mutexes |
Semáforos | Variables especiales de sincronización (wait/down y signal/up). | Binario (0 o 1, para mutex), General (control de N recursos). |
Ejemplo de semáforo | sem_init(&s,0,4); sem_wait(s); sem_post(s); | Inicializa con 4 recursos, wait usa uno, post libera uno. |
Monitores y mutexes | Monitores: alto nivel en lenguajes. Mutexes: booleanos para exclusión. | Usados para sincronizar y proteger acceso concurrente. |
Planificación de procesos | Decide qué proceso usa la CPU. | No expropiativa: FIFO (PEPS), SJF. Expropiativa: RR, Prioridad (PPP con aging). |
Memoria en SO | Administra RAM: asigna, protege, recupera. | Sin abstracción → riesgo de sobrescribir. |
Espacios de direcciones | Memoria virtual privada para cada proceso. | Reubicación estática/dinámica; registros base/límite traducen direcciones. |
Swapping (intercambio) | Saca procesos a disco para liberar RAM cuando está llena. | Puede causar fragmentación externa; compactación reduce huecos. |
Asignación dinámica | Heap y pila permiten crecimiento dinámico. | Si no hay espacio contiguo, reubicación o swapping. |
Interbloqueo (Deadlock) | Procesos bloqueados esperando recursos mutuamente. | Condiciones de Coffman (4): Exclusión mutua, Retención y espera, No apropiación, Espera circular. |
Recursos | Apropiativos (memoria, se pueden quitar) y No apropiativos (impresora). | Diferencia clave para manejo en deadlock. |
Detección de interbloqueo | Grafos de procesos y recursos; ciclo = posible deadlock. | |
Estrategias de interbloqueo | Prevención (romper condición), evitación (predecir), detección y recuperación (forzar liberar). | |
Comunicación entre procesos | Paso de mensajes (alternativa a memoria compartida). | Primitivas básicas: send(destino, &msg), receive(origen, &msg). |
Tipos de comunicación | Bloqueante (espera), no bloqueante (no espera). | Combinaciones: síncrono, semi-síncrono, asíncrono. |
Mecanismos de comunicación | Directo (canales), indirecto (mailboxes), rendez-vous, RPC. | RPC = llamada remota de procedimiento. |
Casos típicos de IPC | Productor-consumidor, lectores-escritores, filósofos comensales. | Ejemplos clásicos de problemas de sincronización. |