ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Concurrencia

Ritzud27 de Octubre de 2013

615 Palabras (3 Páginas)361 Visitas

Página 1 de 3

INTRODUCCION A LA CONCURRENCIA.

La idea de programación concurrente siempre ha estado asociada a los sistemas operativos: Un solo procesador de gran capacidad debía repartir su tiempo entre muchos usuarios.

La programación de estos sistemas se hacía a bajo nivel (ensamblador. Posteriormente aparecerían lenguajes de alto nivel con soporte para este tipo de programación.

Su utilización y potencial utilidad se apoya en: threads o hijos, java e internet.

Definición Real Academia Española:

<<Acaecimiento o concurso de varios sucesos en un

mismo tiempo>>

DEFINICION: Se habla de concurrencia cuando ocurren varios sucesos de manera contemporánea. En base a esto, la concurrencia en computación está asociada a la “ejecución” de varios procesos que coexisten temporalmente.

- Una forma de ver la concurrencia es como un conjunto de actividades que se desarrollan de forma simultánea. En informática, cada una de esas actividades se suele llamar proceso.

- En Informática, se habla de concurrencia cuando hay una existencia simultánea de varios procesos en ejecución.

- Dos procesos serán concurrentes cuando la primera instrucción de uno de ellos se ejecuta después de la primera instrucción del otro y antes de la última.

PROGRAMACIÓN CONCURRENTE:

Para definirla correctamente, debemos diferencias entre programa y proceso.

Programa: Conjunto de sentencias/instrucciones que se ejecutan secuencialmente. Es por tanto un concepto estático.

Proceso: Básicamente, se puede definir como un programa en ejecución. Líneas de código en ejecución de manera dinámica.

CONCURRENCIA.

La concurrencia aparece cuando dos o más procesos son contemporáneos. Un caso particular es el paralelismo (programación paralela).

Los procesos pueden “competir” o colaborar entre sí por los recursos del sistema. Por tanto, existen tareas de colaboración y sincronización.

Los programación concurrente se encarga del estudio de las nociones de ejecución concurrente, así como sus problemas de comunicación y sincronización.

Beneficios.

*Velocidad de ejecución. Al subdividir un programa en procesos, éstos se pueden “repartir” entre procesadores o gestionar en un único procesador según importancia.

*Solución a problemas de esta naturaleza. Existen algunos problemas cuya solución es más fácil utilizando esta metodología.

- Sistemas de control: Captura de datos, análisis y actuación (p.ej. sistemas de tiempo real).

- Tecnologías web: Servidores web que son capaces de atender varias peticiones concurrentemente, servidores de chat, email, etc.

- Aplicaciones basabas en GUI: El usuario hace varias peticiones a la aplicación grafica (p.ej. Navegador web).

- Simulación: Programas que modelan sistemas físicos con autonomía.

- Sistemas Gestores de Bases de Datos: Cada usuario un proceso.

Concurrencia y hardware

Hasta ahora solo hemos hablado del software, aunque el hardware y su topología es importante para abordar cualquier tipo de problema.

● Sistemas monoprocesador. Podemos tener concurrencia, gestionando el tiempo de procesador para cada proceso.

• Sistemas multiprocesador. Un proceso en cada procesador.

Estos pueden ser de memoria compartida (fuertemente acoplados) o con memoria local a cada procesador (débilmente acoplados).

Un ejemplo muy conocido y util son los sistemas distribuidos.

En relación a la concurrencia se pueden clasificar en aquellos que funcionan con variables/memoria compartida o paso de mensajes.

En resumen:

● Programa concurrente:

...

Descargar como (para miembros actualizados) txt (5 Kb)
Leer 2 páginas más »
Disponible sólo en Clubensayos.com