Want to make creations as awesome as this one?

Transcript

CONCURRENCIAEN LOS PROCESOS

Comenzar

Este fenómeno es crucial para mejorar la eficiencia y el rendimiento del sistema, especialmente en entornos multiprocesador.

QUE ES LA CONCURRENCIA

La concurrencia se refiere a la capacidad de un sistema para manejar múltiples procesos al mismo tiempo. Esto puede lograrse de dos maneras: Ejecución simultánea: En sistemas multiprocesador, donde varios procesadores pueden ejecutar diferentes procesos al mismo tiempo. Intercalado de procesos: En sistemas de un solo procesador, donde el sistema operativo alterna rápidamente entre procesos, dando la impresión de que se ejecutan simultáneamente.

Problemas asociados a la concurrencia

- Condiciones de carrera: Ocurren cuando dos o más procesos acceden a un recurso compartido sin una adecuada sincronización, lo que puede llevar a resultados inesperados. Por ejemplo, si dos procesos intentan actualizar el mismo valor en una variable simultáneamente, el resultado final dependerá del orden de ejecución, lo que puede ser indeseable[3][4].- Inconsistencias de datos: Si un proceso modifica datos mientras otro los está leyendo, se puede obtener información errónea.- Bloqueo mutuo: Situación en la que dos o más procesos esperan indefinidamente por recursos que están siendo utilizados por otros procesos.

+INFO

Permite que los procesos se comuniquen enviando y recibiendo mensajes, lo que puede ser útil en sistemas distribuidos.

PASO DE MENSAJES

MONITORES

SEMAFOROS

MECANISMOS DESINCRONIZACION

Para mitigar los problemas de la concurrencia, los sistemas operativos implementan diversos mecanismos de sincronización:

EXCLUSION MUTUA

Asegura que solo un proceso a la vez pueda acceder a un recurso compartido. Esto se puede implementar a través de semáforos o monitores

Son variables que permiten controlar el acceso a recursos compartidos. Se utilizan dos operaciones principales: `wait` (esperar) y `signal` (señalizar).

Son estructuras que encapsulan datos y operaciones que pueden ser ejecutadas por procesos, asegurando que solo un proceso a la vez pueda ejecutar una operación dentro del monitor.

Ejemplos de problemas de concurrencia

Uno de los ejemplos clásicos es el problema del productor-consumidor, donde un proceso (productor) genera datos y los coloca en un buffer, mientras que otro proceso (consumidor) los retira.

La sincronización es esencial para asegurar que el productor no intente añadir datos a un buffer lleno y que el consumidor no intente retirar datos de un buffer vacío

+INFO