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.

Entradas relacionadas: