Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Sistemas concurrentes: programación concurrente (página 2)




Enviado por Pablo Turmero



Partes: 1, 2

Monografias.com

No determinismo
El no determinismo es una propiedad inherente a la concurrencia.
Por culpa del no determinismo, es más difícil analizar y verificar un algoritmo concurrente.
Ojo, que existan varias posibilidades de salida NO significa necesariamente que un programa concurrente sea incorrecto.

Monografias.com

Acciones atómicas
Por culpa del no determinismo, la ejecución del programa puede ser incorrecta e inesperada.

Surge la conveniencia de imponer que ciertas piezas de código se ejecuten de forma atómica.
cobegin
x := 2;
x := 65536;
coend;
¡¡el resultado podría ser x=65538!!

Monografias.com

Acciones atómicas (2)
En el análisis de algoritmos concurrentes, se permite declarar que una sentencia se ejecuta de forma atómica.
cobegin < x:=x+1> < x:=x+2> coend
Así se facilita el análisis y verificación de estos algoritmos.
No nos incumbe (por ahora) cómo se consigue la ejecución atómica.

Monografias.com

Historias / secuencias de ejecución
Una historia o la secuencia de ejecución es una secuencia temporal de acciones que ocurren durante la ejecución de un programa.
Un programa concurrente puede tener múltiples secuencias de ejecución (y todas ellas pueden ser correctas)
a -> b -> c
c -> a -> b

Monografias.com

Verificación de programas
¿Cuándo un programa (secuencial) se considera correcto?
Parcialmente correcto. Dadas unas precondiciones correctas, si el programa termina se cumplen las postcondiciones previstas.
Totalmente correcto. Dadas unas precondiciones correctas, el programa termina y se cumplen las postcondiciones.

Monografias.com

Peculiaridades de los programas concurrentes
Los programas concurrentes pueden no terminar nunca y al mismo tiempo ser correctos.
Un pr.c. puede tener múltiples secuencias de ejecución.
Cuando se dice que un pr.c. es correcto, se entiende que se refiere a todas sus posibles secuencias de ejecución.

Monografias.com

Seguridad y progreso(safety and liveness)
Dos tipos de propiedades útiles en los sistemas concurrentes
Propiedades de seguridad (safety)
una propiedad que debe ser cierta siempre
ejs. exclusión mutua, no interbloqueo
Propiedades de progreso (liveness)
una propiedad que se cumplirá con toda seguridad en algún momento de la ejecución
ejs. propiedades de justicia (fairness), evitación de inanición

Monografias.com

Ejemplos de justicia (fairness)
Justicia débil. Si un proceso realiza continuamente una petición, terminará siendo atendido.
Justicia fuerte. Si un proceso realiza una petición con frecuencia infinita, terminará siendo atendido.
Espera lineal. Si un proceso realiza una petición, ningún otro proceso puede ser atendido dos veces antes que él.
Espera FIFO. Si un proceso realiza una petición, será atendido antes que cualquier otra solicitud posterior.

Monografias.com

Análisis de algoritmos concurrentes
Usar invariantes y lógica proposicional
Usar métodos inductivos
Usar historias de ejecución (a->b)
Usar predicados posicionales: at(I), in(I), after(I)
Usar lógica temporal

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter