Programas: Paralelismo y Concurrencia

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
Programas: Paralelismo y Concurrencia por Mind Map: Programas: Paralelismo y Concurrencia

1. Computación vs manejo de eventos

1.1. • Con sistemas de manejo de eventos

1.1.1. como máquinas expendedoras, telefonía, servidores web y bancos, la concurrencia es inherente al problema :

1.1.2. • debe resolver conflictos inevitables entre solicitudes impredecibles.

1.1.3. El paralelismo es una parte de la solución : acelera las cosas, pero la raíz del problema es la concurrencia.

1.2. • Con sistemas computacionales

1.2.1. como cajas de regalo, gráficos, visión por computadora y computación científica, la concurrencia no es parte del problema :

1.2.2. El paralelismo es donde comienzan los problemas : acelera las cosas, pero puede introducir errores

1.2.3. • se calcula una salida de entradas conocidas de antemano, sin eventos externos.

2. PROCESOS

2.1. INTRERACCIÓN DE PROCESOS:

2.1.1. Los procesos no tienen conocimiento de los demás

2.1.2. Los procesos tienen un conocimiento indirecto de los otros: los procesos no conocen a los otros por sus identificadores de proceso, pero muestran cooperación el objeto común.

2.1.3. Los procesos tienen conocimiento directo de los otros: los procesos se comunican por el identificador de proceso y pueden trabajar conjuntamente.

2.2. Competencia entre procesos por los recursos

2.2.1. • Los procesos concurrentes entran en conflicto cuando compiten por el uso del mismo recurso

2.2.2. La ejecución de un proceso puede influir en el comportamiento de los procesos que compiten.

2.2.2.1. Por Ej. Si dos procesos desean acceder a un recurso, el sistema operativo le asignará el recurso a uno y el otro tendrá que esperar.

2.2.3. Cuando hay procesos en competencia, se deben solucionar tres problemas de control:

2.2.3.1. la necesidad de exclusión mutua.

2.2.3.2. Hacer que se cumpla la exclusión mutua provoca un interbloqueo

2.2.3.3. Y LA Inanición (STARVATION)

2.2.4. Los procesos deben cooperar para asegurar que los datos que se comparten se gestionan correctamente.

2.3. SINCRONIZACIÓN

2.3.1. La comunicación de un mensaje entre 2 procesos implica cierto nivel de sincronización entre ambos.

2.3.2. El emisor y el receptor pueden ser bloqueantes o no bloqueantes

2.3.2.1. I) Envío bloqueante, recepción bloqueante: tanto el emisor como el receptor se bloquean hasta que llega el mensaje; esta técnica se conoce como rendezvous.

2.3.2.2. II) Envío no bloqueante, recepción bloqueante: aunque el emisor puede continuar, el receptor se bloquea hasta que llega el mensaje solicitado. Es la combinación más útil.

2.3.2.3. III) Envío no bloqueante, recepción no bloqueante: nadie debe esperar

3. CONCURRENCIA

3.1. DISEÑO

3.1.1. la comunicación entre procesos

3.1.2. compartición y competencia por los recursos

3.1.3. sincronización de la ejecución de varios procesos

3.1.4. asignación del tiempo.

3.2. PUEDE PRESENTARSE EN

3.2.1. ENTORNOS

3.2.1.1. Multiprogramación:

3.2.1.1.1. consiste en la gestión de varios procesos dentro de un sistema mono-procesador.

3.2.1.2. Multiprocesamiento:

3.2.1.2.1. consiste en la gestión de varios procesos, dentro de un sistema multiprocesador

3.2.1.3. Procesamiento distribuido:

3.2.1.3.1. consiste en la gestión de varios procesos, ejecutándose en sistemas de computadores múltiples y distribuidos.

3.2.2. CONTEXTO

3.2.2.1. • Aplicaciones estructuradas:

3.2.2.1.1. como ampliación de los principios del diseño modular y la programación objetos algunas aplicaciones pueden implementarse eficazmente como un CONJUNTO DE hilos concurrentes

3.2.2.2. • Múltiples aplicaciones:

3.2.2.2.1. la multiprogramación se creó para permitir que el tiempo de procesador de la máquina fuese compartido dinámicamente entre varias aplicaciones activas.

3.2.2.3. • Estructura del sistema operativo

3.2.2.3.1. las mismas ventajas de estructuración son aplicables a los programadores de sistemas y algunos sistemas operativos están implementados como un conjunto de procesos o hilos

3.3. • Un sistema concurrente correcto es aquel en el que un conjunto de cómputos avanzar colaborativamente para lo cual esta garantizada y coordinar la secuencia de las interacciones o comunicaciones entre diferentes cómputos como así también el acceso a los recursos que se comparten

3.4. PRINCIPIOS

3.4.1. Multiprogramado

3.4.1.1. con un único procesador, los procesos se intercalan en el tiempo aparentando una ejecución simultánea

3.4.2. los problemas son consecuencia de la velocidad de ejecución de los procesos que no pueden predecirse y depende de las actividades de otros procesos, de la forma en que el sistema operativo trata las interrupciones surgen dificultades

3.4.3. Compartir recursos globales es riesgoso

3.4.3.1. El hecho de compartir recursos ocasiona problemas, por esto es necesario proteger a dichos recursos.

3.4.3.2. los resultados de un proceso deben ser independientes de la velocidad a la que se realiza la ejecución de otros procesos concurrentes

4. Paralela

4.1. • Es una forma de cómputo en la que muchas instrucciones se ejecutan simultáneamente, operando sobre el principio de que problemas grandes, a menudo se pueden dividir en unos más pequeños, que luego son resueltos simultáneamente (en paralelo)