Programación Concurrente y Distribuida
24 Questions
8 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

¿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?

  • Sincronización
  • Equitatividad
  • Exclusión mutua (correct)
  • No Deadlock
  • ¿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?

    <p>Los procesos solo realizan operaciones inútiles. (C)</p> Signup and view all the answers

    ¿Qué propiedad se relaciona con el avance constructivo en un sistema concurrente?

    <p>No Livelock (D)</p> Signup and view all the answers

    ¿Cuál es un efecto negativo de la Starvation en un sistema concurrente?

    <p>Algunos procesos no reciben atención sistemáticamente. (D)</p> Signup and view all the answers

    Entre las siguientes opciones, ¿cuál no es un problema de programación concurrente?

    <p>Sincronización efectiva (A)</p> Signup and view all the answers

    ¿Cuál de las siguientes no es una propiedad de seguridad de los sistemas concurrentes?

    <p>Equitatividad (D)</p> Signup and view all the answers

    ¿Qué caracteriza a la computación concurrente?

    <p>No hay comunicación ni coordinación entre procesos. (A)</p> Signup and view all the answers

    ¿Cuál es la principal diferencia entre computación paralela y concurrente?

    <p>La computación paralela requiere múltiples CPUs. (C)</p> Signup and view all the answers

    En el contexto de sistemas distribuidos, ¿qué implica la computación distribuida?

    <p>Se ejecutan múltiples programas que interactúan para un cómputo colectivo. (C)</p> Signup and view all the answers

    ¿Qué no es cierto acerca de la computación concurrente?

    <p>Todos los procesos requieren comunicación constante entre ellos. (C)</p> Signup and view all the answers

    ¿Qué proceso requiere comunicación entre los distintos programas?

    <p>Computación distribuida. (C)</p> Signup and view all the answers

    En la programación concurrente, ¿cómo se gestionan los recursos de CPU?

    <p>Los procesos compiten por el acceso a una única CPU. (C)</p> Signup and view all the answers

    ¿Cuál de las siguientes opciones describe mejor a la computación paralela?

    <p>Permite ejecutar más de un proceso al mismo tiempo en múltiples CPUs. (D)</p> Signup and view all the answers

    En computación concurrente, ¿qué sucede cuando varios procesos son ejecutados?

    <p>Cada proceso recibe una porción de tiempo de procesamiento. (A)</p> Signup and view all the answers

    ¿Cuál es una característica de la programación concurrente?

    <p>Las tareas no deben bloquearse, excepto para esperar el final de las subtareas. (D)</p> Signup and view all the answers

    En un sistema secuencial, ¿cuál de las siguientes afirmaciones es correcta?

    <p>El comportamiento es determinista y reproducible. (A)</p> Signup and view all the answers

    ¿Qué define mejor el indeterminismo en la programación concurrente?

    <p>La ejecución puede dar resultados diferentes en cada ejecución con el mismo conjunto de datos. (C)</p> Signup and view all the answers

    En qué aspecto difiere un sistema concurrente de uno secuencial?

    <p>Los sistemas concurrentes tienen incertidumbre sobre el orden de ejecución. (A)</p> Signup and view all the answers

    ¿Cuál de las siguientes afirmaciones es incorrecta sobre los sistemas concurrentes?

    <p>La programación concurrente siempre garantiza que no habrá errores. (C)</p> Signup and view all the answers

    ¿Qué implica la sentencia 'fork' en programación concurrente?

    <p>El inicio de una sub-tarea que se ejecuta independiente de la tarea principal. (B)</p> Signup and view all the answers

    Las sub-tareas en programación concurrente deben:

    <p>Ser capaces de ejecutarse de manera independiente. (A)</p> Signup and view all the answers

    Una de las siguientes características NO corresponde a un sistema concurrente:

    <p>Es predecible y sigue un orden fijo de ejecución. (B)</p> Signup and view all the answers

    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.

    Quiz Team

    Related Documents

    Description

    Este cuestionario explora los conceptos de programación concurrente y distribuida, incluyendo diferencias clave entre concurrencia, paralelismo y computación distribuida. Aprende cómo se ejecutan múltiples tareas y cómo interactúan diferentes sistemas. Ideal para estudiantes de informática y programación avanzada.

    More Like This

    Nichtsequentielle Programmierung
    40 questions

    Nichtsequentielle Programmierung

    IrreplaceableEmerald6900 avatar
    IrreplaceableEmerald6900
    Semaphores in Concurrent Programming
    15 questions
    Programación Concurrente y Distribuida
    42 questions
    Use Quizgecko on...
    Browser
    Browser