Simple Tech Presentation
SANTIAGO VARGAS ACEVES
Created on September 5, 2024
More creations to inspire you
TALK ABOUT DYS WITH TEACHER
Presentation
CIRQUE DU SOLEIL
Presentation
LAYOUT ORGANIZATION
Presentation
TALK ABOUT DYS TEACHER-TEACHER
Presentation
PRODUCT MANAGEMENT IN MOVIES & TV SHOWS
Presentation
ESSENTIAL OILS PRESENTATION
Presentation
VEGETARIANISM
Presentation
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