Sincronizacion Flashcards
(5 cards)
¿Qué es la concurrencia en sistemas operativos y por qué es importante controlar el acceso a recursos compartidos?
La concurrencia abarca múltiples aspectos del diseño del SO donde múltiples procesos/hilos (P/H) comparten recursos.
Problema: Sin control, pueden ocurrir condiciones de carrera cuando varios P/H acceden/modifican recursos compartidos simultáneamente.
Solución: Sincronización para garantizar que solo un P/H acceda a los datos críticos a la vez.
Condición de Carrera y requisitos
Definición: Situación donde múltiples P/H manipulan datos compartidos concurrentemente, y el resultado depende del orden de ejecución.
Requisitos:
Múltiples P/H usan el mismo recurso.
Al menos uno lo modifica.
Accesos concurrentes (no sincronizados).
Nota: Solo lectura no causa condiciones de carrera.
Sección critica
Definición: Porción de código que accede a recursos compartidos.
Propiedades:
Atomicidad: Se ejecuta sin interrupciones.
Mínima duración: Debe ser lo más breve posible.
Protocolo de E/S: Rodeada por mecanismos de sincronización (ej: semáforos).
Requisitos para Soluciones a la Sección Crítica
- Mutua Exclusión: Solo un P/H en la sección crítica a la vez.
- Progreso: Si ningún P/H está en la SC, se debe permitir el acceso a uno que lo solicite.
Ejemplo:
Supongamos 3 procesos: P1, P2, y P3.
P1 y P2 quieren entrar a su SC, pero P3 está ejecutando código no crítico.
Solución correcta: El sistema elige a P1 o P2 para entrar a la SC (no espera a que P3 termine su código no relacionado).
- Ningún P/H espera indefinidamente. Debe existir un límite máximo de veces que otros P/H pueden ingresar a sus SC antes de que el P/H solicitante tenga su turno.
- Velocidad de procesos: El tiempo en que un P/H se encuentra dentro de la sección crítica debe ser finito (y el menor posible), ya que corta la multiprogramación.
Espera activa
Situación en la que un P/H ocupa activamente la CPU realizando procesamiento inútil a la espera de un evento.