Tabla de contenido
¿Qué es concurrencia y sincronización?
La concurrencia es la simultaneidad de hechos. Un programa concurrente es aquel en el que ciertas unidades de ejecución internamente secuenciales (procesos o threads), se ejecutan paralela o simultáneamente. – sincronización de la ejecución de varios procesos. – asignación del tiempo de procesador a los procesos.
¿Qué características deben cumplirse para que exista la sincronización de procesos?
Debe haber un proceso que retenga por lo menos un recurso y que este esperando un recurso que tiene otro proceso retenido. El recurso debe ser liberado voluntariamente por el proceso que lo retiene cuando completa su tarea.
¿Qué procesos se comunican entre sí?
Los procesos pueden comunicarse entre sí a través de compartir espacios de memoria, ya sean variables compartidas o buffers, o a través de las herramientas provistas por las rutinas de IPC.
¿Qué significa una buena sincronización en la comunicación?
Sincronizar es satisfacer las restricciones en el entrelazado de las acciones de diferentes procesos. El paso de mensajes implica el intercambio explícito de datos entre dos procesos mediante un mensaje que pasa de un proceso a otro siguiendo algún mecanismo.
¿Cómo funciona concurrencia?
Concurrencia es la habilidad que tiene un computador de realizar varias tareas a la vez. Si tu computador sólo tiene un procesador, el sistema operativo simula que está haciendo todo al mismo tiempo, pero lo que realmente hace es darle, a las aplicaciones, acceso al procesador por turnos cortos de tiempo.
¿Cuándo y por qué se deben sincronizar los procesos computacionales que son manejados con hilos?
La razón más común para la sincronización es cuando dos o más hilos necesitan acceso a un recurso compartido que solo puede ser utilizado por un hilo a la vez. Por ejemplo, cuando un hilo está escribiendo en un archivo, se debe evitar que un segundo hilo lo haga al mismo tiempo.