Resumen de Procesos y Hilos en Sistemas Operativos

Procesos y Hilos en Sistemas Operativos: Guía Completa para Estudiantes

Introducción

Los sistemas operativos gestionan la ejecución de programas transformándolos en procesos y hilos que comparten recursos del hardware. Este material explica conceptos clave de procesos, planificación, sincronización y comunicación entre hilos, con ejemplos y comparaciones prácticas para facilitar el autoaprendizaje.

Unidad: Procesos e Hilos

¿Qué es un proceso?

Un proceso es una abstracción de un programa en ejecución que incluye su espacio de direcciones de memoria, registros del procesador, contador de programa, pila y recursos asignados por el sistema.

  • Un proceso contiene: segmento de texto (código), segmento de datos, pila (stack) y montón (heap).
  • Ejemplo práctico: ejecutar un editor de texto crea un proceso con su propio espacio de memoria independiente de otros programas.

Estados de un proceso

Un proceso puede encontrarse en tres estados esenciales: En ejecución (Running), Listo (Ready) o Bloqueado (Blocked).

  • Running: ocupa la CPU en ese instante.
  • Ready: puede ejecutarse pero espera a que la CPU esté libre.
  • Blocked: espera un evento externo (p. ej. fin de E/S).

Cambios de contexto (context switch)

Un cambio de contexto ocurre cuando el sistema operativo suspende la ejecución del proceso activo, guarda su estado en el PCB y carga el estado de otro proceso.

  • El PCB (Bloque de Control de Proceso) almacena registros, contador de programa, estado y otros datos.
  • Ejemplo: al recibir una interrupción de reloj, el scheduler puede provocar un cambio de contexto.

Planificación de procesos

¿Quién decide la siguiente ejecución?

El planificador de procesos (Scheduler) del sistema operativo decide cuál proceso en estado Ready ocupará la CPU.

Tipos de planificación

  • Apropiativa (preemptive): el SO puede interrumpir un proceso en ejecución y retirarle la CPU.
  • No apropiativa (non-preemptive): el proceso mantiene la CPU hasta que termina o se bloquea.

Algoritmo Round Robin

Round Robin es un algoritmo apropiativo para sistemas de tiempo compartido que asigna a cada proceso un cuanto de tiempo (quantum) cíclico de CPU.

  • Métrica central: el tamaño del quantum, que equilibra latencia y coste en cambios de contexto.
  • Ejemplo: con quantum de 10 ms, cada proceso activo obtiene 10 ms por turno.

Concurrencia y sincronización

Hilos vs procesos

Los procesos tienen espacios de direcciones aislados; los hilos dentro del mismo proceso comparten el espacio de direcciones y archivos abiertos.

  • Hilo individual posee su propio contador de programa, pila y registros, pero comparte memoria global y descriptores de archivos.
  • Hilos en espacio de usuario (user-level threads) se gestionan mediante bibliotecas sin intervención del núcleo.

Exclusión mutua y regiones críticas

La exclusión mutua evita que dos procesos entren simultáneamente en su región crítica.

  • Condiciones para una solución correcta (resumen):

    1. Exclusión mutua: dos procesos no pueden estar a la vez en la región crítica.
    2. Progreso: si ningún proceso está en la región crítica, la decisión de entrar debe ser tomada por los procesos en lista de espera.
    3. Espera limitada (ausencia de hambruna): ningún proceso debe esperar indefinidamente.
    4. Independencia de velocidades: no asumir velocidades específicas ni número de CPUs.
  • Enfoques para exclusión mutua:

    1. Soluciones por hardware (deshabilitar interrupciones, instrucciones atómicas como Test-and-Set).
    2. Soluciones por software (algoritmo de Peterson).
    3. Primitivas del kernel (semáforos, mutexes, monitores).

Semáforos y mutex

Semáforos: primitivas de sincronización formalizadas por Edsger Dijkstra; permiten señales y esperas para recursos contables. Mutex: cerrojo para asegurar que un solo hilo acceda a la región crítica.

  • Ejemplo: semáforo con contador inicial 3 permite que 3 hilos accedan simultáneamente a un recurso.

Monitores

Un monitor agrupa variables y procedimientos en un paquete donde el compilador o

Regístrate para el resumen completo
TarjetasTest de conocimientosResumenPodcastMapa mental
Empezar gratis

¿Ya tienes cuenta? Iniciar sesión

Sistemas Operativos - Procesos

Klíčové pojmy: Proceso: programa en ejecución con PCB y espacio de direcciones, Estados básicos: Running, Ready, Blocked, Context switch guarda PCB y carga otro proceso, Round Robin asigna quantum cíclico; quantum es su métrica, Apropiativa vs no apropiativa: interrupción forzada de CPU, Semáforos y mutexes protegen regiones críticas, Deadlock: ciclo de espera por recursos; prevenir con orden de adquisición, Inversión de prioridad mitigada por prioridad heredada, Spin locks son espera activa; útiles solo para esperas muy cortas, fork() crea proceso hijo clonando contexto (copy-on-write), E/S asincrónica devuelve control y requiere notificación final, Productor-Consumidor: ejemplo clásico de búfer limitado

## Introducción Los sistemas operativos gestionan la ejecución de programas transformándolos en procesos y hilos que comparten recursos del hardware. Este material explica conceptos clave de procesos, planificación, sincronización y comunicación entre hilos, con ejemplos y comparaciones prácticas para facilitar el autoaprendizaje. ## Unidad: Procesos e Hilos ### ¿Qué es un proceso? > Un proceso es una abstracción de un programa en ejecución que incluye su espacio de direcciones de memoria, registros del procesador, contador de programa, pila y recursos asignados por el sistema. - Un proceso contiene: segmento de texto (código), segmento de datos, pila (stack) y montón (heap). - Ejemplo práctico: ejecutar un editor de texto crea un proceso con su propio espacio de memoria independiente de otros programas. ### Estados de un proceso > Un proceso puede encontrarse en tres estados esenciales: En ejecución (Running), Listo (Ready) o Bloqueado (Blocked). - Running: ocupa la CPU en ese instante. - Ready: puede ejecutarse pero espera a que la CPU esté libre. - Blocked: espera un evento externo (p. ej. fin de E/S). ### Cambios de contexto (context switch) > Un cambio de contexto ocurre cuando el sistema operativo suspende la ejecución del proceso activo, guarda su estado en el PCB y carga el estado de otro proceso. - El PCB (Bloque de Control de Proceso) almacena registros, contador de programa, estado y otros datos. - Ejemplo: al recibir una interrupción de reloj, el scheduler puede provocar un cambio de contexto. ## Planificación de procesos ### ¿Quién decide la siguiente ejecución? > El planificador de procesos (Scheduler) del sistema operativo decide cuál proceso en estado Ready ocupará la CPU. ### Tipos de planificación - Apropiativa (preemptive): el SO puede interrumpir un proceso en ejecución y retirarle la CPU. - No apropiativa (non-preemptive): el proceso mantiene la CPU hasta que termina o se bloquea. ### Algoritmo Round Robin > Round Robin es un algoritmo apropiativo para sistemas de tiempo compartido que asigna a cada proceso un cuanto de tiempo (quantum) cíclico de CPU. - Métrica central: el tamaño del quantum, que equilibra latencia y coste en cambios de contexto. - Ejemplo: con quantum de 10 ms, cada proceso activo obtiene 10 ms por turno. ## Concurrencia y sincronización ### Hilos vs procesos > Los procesos tienen espacios de direcciones aislados; los hilos dentro del mismo proceso comparten el espacio de direcciones y archivos abiertos. - Hilo individual posee su propio contador de programa, pila y registros, pero comparte memoria global y descriptores de archivos. - Hilos en espacio de usuario (user-level threads) se gestionan mediante bibliotecas sin intervención del núcleo. ### Exclusión mutua y regiones críticas > La exclusión mutua evita que dos procesos entren simultáneamente en su región crítica. - Condiciones para una solución correcta (resumen): 1. Exclusión mutua: dos procesos no pueden estar a la vez en la región crítica. 2. Progreso: si ningún proceso está en la región crítica, la decisión de entrar debe ser tomada por los procesos en lista de espera. 3. Espera limitada (ausencia de hambruna): ningún proceso debe esperar indefinidamente. 4. Independencia de velocidades: no asumir velocidades específicas ni número de CPUs. - Enfoques para exclusión mutua: 1. Soluciones por hardware (deshabilitar interrupciones, instrucciones atómicas como Test-and-Set). 2. Soluciones por software (algoritmo de Peterson). 3. Primitivas del kernel (semáforos, mutexes, monitores). ### Semáforos y mutex > Semáforos: primitivas de sincronización formalizadas por Edsger Dijkstra; permiten señales y esperas para recursos contables. Mutex: cerrojo para asegurar que un solo hilo acceda a la región crítica. - Ejemplo: semáforo con contador inicial 3 permite que 3 hilos accedan simultáneamente a un recurso. ### Monitores > Un monitor agrupa variables y procedimientos en un paquete donde el compilador o