Podcast
Questions and Answers
¿Cuál de las siguientes afirmaciones describe mejor un programa secuencial?
¿Cuál de las siguientes afirmaciones describe mejor un programa secuencial?
- Ejecuta múltiples procesos simultáneamente.
- Es un programa que siempre produce resultados inesperados.
- Es correcto si produce el resultado esperado al finalizar. (correct)
- No necesita propiedades de seguridad.
¿Qué propiedad garantiza que las secciones críticas se ejecuten de forma indivisible?
¿Qué propiedad garantiza que las secciones críticas se ejecuten de forma indivisible?
- Sincronización
- Equitatividad
- Exclusión mutua (correct)
- No Deadlock
¿Qué describe mejor la vivacidad parcial?
¿Qué describe mejor la vivacidad parcial?
- Algunos procesos están estancados indefinidamente. (correct)
- Los procesos finalizan sin esperar.
- El sistema se paraliza indefinidamente.
- Todo el sistema realiza operaciones útiles.
¿Cuál de las siguientes situaciones representa un caso de Livelock?
¿Cuál de las siguientes situaciones representa un caso de Livelock?
¿Qué propiedad se relaciona con el avance constructivo en un sistema concurrente?
¿Qué propiedad se relaciona con el avance constructivo en un sistema concurrente?
¿Cuál es un efecto negativo de la Starvation en un sistema concurrente?
¿Cuál es un efecto negativo de la Starvation en un sistema concurrente?
Entre las siguientes opciones, ¿cuál no es un problema de programación concurrente?
Entre las siguientes opciones, ¿cuál no es un problema de programación concurrente?
¿Cuál de las siguientes no es una propiedad de seguridad de los sistemas concurrentes?
¿Cuál de las siguientes no es una propiedad de seguridad de los sistemas concurrentes?
¿Qué caracteriza a la computación concurrente?
¿Qué caracteriza a la computación concurrente?
¿Cuál es la principal diferencia entre computación paralela y concurrente?
¿Cuál es la principal diferencia entre computación paralela y concurrente?
En el contexto de sistemas distribuidos, ¿qué implica la computación distribuida?
En el contexto de sistemas distribuidos, ¿qué implica la computación distribuida?
¿Qué no es cierto acerca de la computación concurrente?
¿Qué no es cierto acerca de la computación concurrente?
¿Qué proceso requiere comunicación entre los distintos programas?
¿Qué proceso requiere comunicación entre los distintos programas?
En la programación concurrente, ¿cómo se gestionan los recursos de CPU?
En la programación concurrente, ¿cómo se gestionan los recursos de CPU?
¿Cuál de las siguientes opciones describe mejor a la computación paralela?
¿Cuál de las siguientes opciones describe mejor a la computación paralela?
En computación concurrente, ¿qué sucede cuando varios procesos son ejecutados?
En computación concurrente, ¿qué sucede cuando varios procesos son ejecutados?
¿Cuál es una característica de la programación concurrente?
¿Cuál es una característica de la programación concurrente?
En un sistema secuencial, ¿cuál de las siguientes afirmaciones es correcta?
En un sistema secuencial, ¿cuál de las siguientes afirmaciones es correcta?
¿Qué define mejor el indeterminismo en la programación concurrente?
¿Qué define mejor el indeterminismo en la programación concurrente?
En qué aspecto difiere un sistema concurrente de uno secuencial?
En qué aspecto difiere un sistema concurrente de uno secuencial?
¿Cuál de las siguientes afirmaciones es incorrecta sobre los sistemas concurrentes?
¿Cuál de las siguientes afirmaciones es incorrecta sobre los sistemas concurrentes?
¿Qué implica la sentencia 'fork' en programación concurrente?
¿Qué implica la sentencia 'fork' en programación concurrente?
Las sub-tareas en programación concurrente deben:
Las sub-tareas en programación concurrente deben:
Una de las siguientes características NO corresponde a un sistema concurrente:
Una de las siguientes características NO corresponde a un sistema concurrente:
Flashcards
Programación secuencial
Programación secuencial
Un programa donde las instrucciones se ejecutan en secuencia y de forma ordenada. Cada paso del programa solo se ejecuta cuando el anterior ha terminado.
Programación concurrente
Programación concurrente
Un programa donde las instrucciones se ejecutan de forma no secuencial, es decir, hay múltiples tareas ejecutándose simultáneamente o entrelazadas.
Propiedades de seguridad
Propiedades de seguridad
Conjunto de propiedades que garantizan que el sistema concurrente funcione correctamente y no llegue a un estado indeseable. Algunos ejemplos son la exclusión mutua y la sincronización.
Propiedades de vivacidad
Propiedades de vivacidad
Signup and view all the flashcards
Deadlock
Deadlock
Signup and view all the flashcards
Livelock
Livelock
Signup and view all the flashcards
Equitatividad o Starvation
Equitatividad o Starvation
Signup and view all the flashcards
Exclusión mutua
Exclusión mutua
Signup and view all the flashcards
Computación concurrente
Computación concurrente
Signup and view all the flashcards
Computación paralela
Computación paralela
Signup and view all the flashcards
Computación distribuida
Computación distribuida
Signup and view all the flashcards
Paralelismo
Paralelismo
Signup and view all the flashcards
Hilos de ejecución
Hilos de ejecución
Signup and view all the flashcards
Colaboración
Colaboración
Signup and view all the flashcards
Computación concurrente y distribuida: ¿cuál es la diferencia?
Computación concurrente y distribuida: ¿cuál es la diferencia?
Signup and view all the flashcards
Gráfico de precedencia: la representación del flujo
Gráfico de precedencia: la representación del flujo
Signup and view all the flashcards
Sentencias 'fork' y 'join': creación y sincronización de tareas
Sentencias 'fork' y 'join': creación y sincronización de tareas
Signup and view all the flashcards
Independencia de los subcálculos
Independencia de los subcálculos
Signup and view all the flashcards
Creación dinámica de tareas
Creación dinámica de tareas
Signup and view all the flashcards
No bloqueo de las tareas (excepto para espera)
No bloqueo de las tareas (excepto para espera)
Signup and view all the flashcards
Diferencias entre sistemas secuenciales y concurrentes
Diferencias entre sistemas secuenciales y concurrentes
Signup and view all the flashcards
Indeterminismo en la programación concurrente
Indeterminismo en la programación concurrente
Signup and view all the flashcards
Study Notes
Programación Concurrente y Distribuida
- La programación concurrente implica ejecutar múltiples secuencias de operaciones en momentos superpuestos.
- Se diferencia del paralelismo, que requiere múltiples CPUs para ejecutar las operaciones simultáneamente.
- La concurrencia, a diferencia del paralelismo, no requiere múltiples CPUs.
- Los procesos concurrentes se ejecutan en la misma instancia de tiempo y utilizan la CPU de forma intercalada.
Computación en Sistemas Distribuidos
- La computación concurrente, paralela y distribuida son conceptos relacionados pero distintos en programación.
- La computación concurrente trata de ejecutar múltiples tareas de forma superpuesta.
- La computación paralela lo hace de manera simultánea, usualmente en máquinas con múltiples CPUs.
- La computación distribuida ejecuta tareas en múltiples computadoras, comunicándose a través de una red.
Diferencia entre computación concurrente y distribuida
- La computación concurrente se da en un mismo intervalo de tiempo, generalmente en un único procesador.
- La computación distribuida ocurre en múltiples procesadores, conectadas a través de una red.
Computación Paralela
- Los procesos paralelos se ejecutan simultáneamente.
- La computación paralela por definición requiere múltiples CPUs.
- En esta situación, más de un proceso concurrente puede ejecutarse simultáneamente.
- No hay comunicación ni coordinación entre los avances de los procesos.
Concepto de Concurrencia
- Un programa secuencial se caracteriza por ejecutar instrucciones de forma una tras otra.
- Un programa concurrente se compone de dos o más programas secuenciales que se ejecutan simultáneamente o superpuestos.
Computación Concurrente vs. Computación Secuencial
- En un programa secuencial, las instrucciones se ejecutan en un orden predefinido.
- En un programa concurrente, el resultado final depende de la velocidad del código.
- El comportamiento de un programa concurrente no es reproducible, debido a la indeterminación de la ejecución de instrucciones.
Condiciones de Bernstein
- Las condiciones de Bernstein ayudan a determinar si dos conjuntos de instrucciones ($S$ y $S_1$) pueden ejecutarse concurrentemente sin que haya conflicto.
- Las tres condiciones de Bernstein son:
- $R(S) \cap W(S1) = \emptyset$
- $W(S) \cap R(S1) = \emptyset$
- $W(S) \cap W(S1) = \emptyset$
Grafos de Precedencia
- Los grafos de precedencia muestran la dependencia entre sentencias en un programa concurrente.
- Usan sentencias como par begin y par end, co begin y co end, fork y join para representar las relaciones entre tareas.
- Las instrucciones con fork comienzan una tarea, y las con join esperan que las subtareas terminen.
Características de los Sistemas Concurrentes
-
Los sistemas concurrentes permiten que los sub-cómputos sean independientes, permitiendo una ejecución en paralelo.
-
Las subtareas se pueden crear en cualquier momento.
-
Los sistemas concurrentes son diferentes de los sistemas secuenciales. En los sistemas secuenciales, las instrucciones se ejecutan en un orden especifico. En los sistemas concurrentes el orden en que se ejecutan es indeterminado.
-
Son no deterministas, lo que significa que las ejecuciones repetidas sobre el mismo conjunto de datos pueden producir resultados diferentes.
Problemas en la Programación Concurrente
-
En la programación concurrente hay que considerarse:
- Seguridad: las secciones críticas deben ejecutarse de forma indivisible (exclusión mutua).
- Vivacidad: se deben evitar situaciones como deadlock (interbloqueo) y livelock (bucles).
-
Deadlock: ocurre cuando dos o más procesos se bloquean esperando un recurso que otro proceso posee.
-
Livelock: ocurre cuando dos o más procesos se bloquean aunque no están esperando por recursos.
-
Equitatividad (Starvation): procesos pueden ser discriminados sistemáticamente, impidiendo su avance.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.