Administración de procesos
Procesos concurrentes
Problemas clásicos de comunicación y sincronización
Mecanismos de comunicación y sincronización
Paso de mensajes
Aspectos de implementación de los mecanismos de sincronización
Procesos concurrentes
Plataformas:
Multiprogramación en un único procesador.
Multiprocesador.
Multicomputador (procesamiento distribuido)
Razones
Compartir recursos físicos.
Compartir recursos lógicos.
Almacenar los cálculos
Modularidad
Comodidad
Multiprogramación con un solo CPU
Multiprogramación con dos CPUs
Procesos concurrentes (2)
Tipos de procesos concurrentes
Independientes
Se ejecuta sin requerir la ayuda o cooperación de otros procesos.
Ejemplo: el shell o intérprete de mandatos.
Cooperantes
Están diseñados para trabajar conjuntamente en alguna actividad.
Deben ser capaces de comunicarse entre ellos
Ejemplo: el compilador (gcc: precompila, compila y enlaza).
Procesos concurrentes (3)
Interacción entre procesos
Los procesos comparten o compiten por el acceso a recursos físicos o lógicos.
Por ejemplo dos procesos independientes pueden competir por el acceso a disco.
El SO debe garantizar que todos los procesos accedan ordenadamente a los recursos.
Los procesos se comunican y sincronizan.
Se trata de alcanzar un objetivo común
Por ejemplo al generar código ejecutable los procesos de compilación y ensamble deben comunicarse y sincronizarse.
Problemas clásicos de comunicación y sincronización
La interacción entre procesos plantea una serie de situaciones clásicas de comunicación y sincronización:
El problema de la sección crítica
El problema del Productor-Consumidor
El problema de los Lectores-Escritores
Comunicación Cliente–Servidor
Problemas clásicos de comunicación y sincronización (2)
El problema de la sección crítica
Es el de mayor frecuencia cuando se ejecutan n procesos concurrentes.
Cada uno tiene un fragmento de código: la sección crítica.
Sólo uno de los procesos en cada instante puede ejecutar en la sección crítica
Cuando un proceso está ejecutando en la sección crítica, ningún otro puede hacerlo.
Ejemplos:
Generación de un PID en un sistema mutiprocesador.
Calcular la suma de los n primeros números naturales de forma paralela con dos hilos.
Problemas clásicos de comunicación y sincronización (3)
Ejemplo 1: Generación de un PID en un sistema multiprocesador
Si no existe sincronización se puede incurrir en el error de asignar el mismo PID a dos procesos distintos
Problemas clásicos de comunicación y sincronización (4)
Ejemplo 2: Calcular la suma de los n primeros números naturales de forma paralela con dos hilos.
Página siguiente |