2.-Programación multiproceso Flashcards
2.1.- Programación concurrente, paralela y distribuida
Concurrencia. Definición
Propiedad - Sistemas - Ejecutar - Tiempo
La concurrencia es una propiedad que permite que los sistemas puedan ejecutar diferentes procesos en un mismo tiempo.
2.1.- Programación concurrente, paralela y distribuida
Proceso. Definición
Proceso - Instrucciones
Un proceso comprende todas las instrucciones que se llevarán a cabo.
2.1.- Programación concurrente, paralela y distribuida
Programación concurrente. Definición
Programación concurrente - Tareas - Ejecutar
La programación concurrente es la que se encarga de ejecutar las tareas simultáneamente.
2.1.- Programación concurrente, paralela y distribuida
Programación concurrente. Características especiales
Hay que tener en cuenta que toda ejecución simultanea debe tener unas características especiales
Hay que tener en cuenta que toda ejecución simultanea debe tener unas características especiales, como, por ejemplo, la secuencia de ejecución, las comunicaciones entre los procesos y el acceso coordinado a los recursos.
2.1.- Programación concurrente, paralela y distribuida
Programación concurrente. Ventajas
Ventajas de la programación concurrente
Ventajas de la programación concurrente:
* Facilita el diseño orientado a objetos.
* Posibilita la compartición de recursos.
* Facilita la programación de aplicaciones en tiempo real.
* Reduce los tiempos de ejecución.
2.1.- Programación concurrente, paralela y distribuida
Programas. Tipo de instrucciones
Cada programa se compone de diferentes instrucciones que pueden ser ejecutadas o no simultáneamente - Bernstein
Cada programa se compone de diferentes instrucciones que pueden ser ejecutadas o no simultáneamente. Bernstein dividió las instrucciones en dos tipos, dependiendo de la operación realizada sobre ellas: de lectura y de salida.
2.1.- Programación concurrente, paralela y distribuida
Instrucciones concurrentes. Condiciones
Para que dos instrucciones se puedan ejecutar concurrentemente, es necesario que se cumplan estas tres condiciones:
Para que dos instrucciones se puedan ejecutar concurrentemente, es necesario que se cumplan estas tres condiciones:
* L(Si) ∩ E(Sj) = Ø
* E(Si) ∩ L(Sj) = Ø
* E(Si) ∩ E(Sj) = Ø
- L –> Lectura / E –> Escritura
- El conjunto de lectura de una instrucción y el conjunto de lectura de la otra instrucción no pueden solaparse.
- El conjunta de escritura de ambas instruccionesno puede solaparse
2.1.- Programación concurrente, paralela y distribuida
Programación concurrente. Problemas
Problemas de la programación concurrente
Problemas de la programación concurrente:
* Exclusión mutua
* Abrazo mortal
* Inanición
2.1.- Programación concurrente, paralela y distribuida
Programación concurrente. Problemas. Exclusión mutua. Definición
Resultado - Procesos
Es el resultado de que dos procesos intenten acceder a la misma variable.
2.1.- Programación concurrente, paralela y distribuida
Programación concurrente. Problemas. Exclusión mutua. Problema y solución
Inconsistencia - Procesos - Recurso
Esto puede producir inconsistencia, puesto que un proceso puede estar actualizando una variable, mientras que otro proceso está leyendo la misma. Para evitar este problema, en la programación concurrente se utiliza la región crítica, que controla el número de procesos que se encuentra utilizando el recurso.
2.1.- Programación concurrente, paralela y distribuida
Programación concurrente. Problemas. Abrazo mortal. Definición
Procesos - Recursos
Dos procesos se quedan bloqueados porque están esperando a los recursos que tiene el otro proceso. También es denominado DeadLock o interbloqueo.
2.1.- Programación concurrente, paralela y distribuida
Programación concurrente. Problemas. Inanición. Definición
Procesos - Recursos
Un proceso se queda esperando a un recurso compartido, que siempre se le deniega. Sin este recurso el proceso no puede finalizar.
2.2.- Paradigmas de programación paralela y distribuida
Programación paralela. Definción
Tecnica - Programación
Es una técnica de programación en la que muchas instrucciones se ejecutan simultáneamente.
2.2.- Paradigmas de programación paralela y distribuida
Programación paralela. Solución a problemas
Tipo programación - Problemas grandes - Problemas pequeños
Este tipo de programación permite dar solución a problemas de grandes dimensiones, para ello, divide en pequeños problemas uno más grande. Estas partes se pueden resolver de forma paralela, por lo que podrán ser ejecutadas a la vez que otras.
2.2.- Paradigmas de programación paralela y distribuida
Programación paralela. Equipos multiprocesadores
Técnica - Equipos - Tareas
Esta técnica se utiliza en equipos multiprocesadores en los que cada uno de ellos es el encargado de resolver una tarea. Todos los procesos que se encuentran en ejecución deben estar comunicados entre sí.
2.2.- Paradigmas de programación paralela y distribuida
Programación paralela. Ventajas
Ventajas de la programación paralela
Ventajas de la programación paralela:
* Permite la ejecución de tareas de manera simultánea.
* Permite resolver problemas complejos.
* Disminuye el tiempo en ejecución.
2.2.- Paradigmas de programación paralela y distribuida
Programación paralela. Inconvenientes
Inconvenientes de la programación paralela
Inconvenientes de la programación paralela:
* Mayor dificultad en la programación.
* Mayor complejidad en el acceso a los datos.
2.2.- Paradigmas de programación paralela y distribuida
Programación paralela. Modelos. Definición
Mecanismos - Información
Existen diferentes mecanismos de intercambio de información, denominados modelos.
2.2.- Paradigmas de programación paralela y distribuida
Programación paralela. Modelos. Clasificación
Según su forma se pueden clasificar en
Según su forma se pueden clasificar en:
* Modelo de memoria compartida
* Modelo de paso de mensaje
2.2.- Paradigmas de programación paralela y distribuida
Programación paralela. Modelos. Modelo de memoria compartida. Definición
Tipo - Eficaz - Transferencia - Procesos - RAM
Este tipo de memoria permite ser accedida por múltiples programas, por lo que es un modo eficaz de transferencia de datos. Esto se consigue creando un espacio de acceso común por parte de cada uno de los procesos en la memoria RAM.
2.2.- Paradigmas de programación paralela y distribuida
Programación paralela. Modelos. Modelo de memoria compartida. Secciones criticas
Problemas - Punto acceso
Hay que tener en cuenta que uno de los mayores problemas se da cuando existe un punto de acceso en común, como son las secciones críticas.
.
2.2.- Paradigmas de programación paralela y distribuida
Programación paralela. Modelos. Modelo de memoria compartida. Controles
Controles - Punto acceso - Lectura - Escritura
Es necesario establecer una serie de controles dentro de un punto de acceso a datos común, puesto que estos procesos intentarán realizar lectura y escritura de datos a la vez, dando lugar a datos incoherentes.
2.2.- Paradigmas de programación paralela y distribuida
Programación paralela. Modelos. Modelo de memoria compartida. Mecanismos de control
Existen diversos mecanismos de control
Existen diversos mecanismos de control como son: semáforos, tuberías, monitores, etc
2.2.- Paradigmas de programación paralela y distribuida
Programación paralela. Modelos. Modelo de memoria compartida. Operaciones atómicas
Acceso - Hilos - Operaciones - Memoría
Estos permitirán el acceso de los hilos de manera individual, asegurando que las operaciones realizadas son de forma atómica, es decir, hasta que un hilo no termina, otro no puede acceder al mismo espacio de memoria.