PROGRAMACION

Páginas: 5 (1238 palabras) Publicado: 18 de junio de 2013
Programación concurrente I. Conceptos fundamentales y definiciones
Aunque en su principio la programación concurrente era feudo de los sistemas operativos (además de programarse a bajo nivel en ensamblador), la llegada del concepto de thread (hilo), de los lenguajes orientados a objetos que permiten la concurrencia e Internet han propiciado que este tipo de programación tenga más importancia enestos momentos.
Periódicamente se publicarán en este blog posts sobre esta temática que espero que ayuden a entender un poco más este tipo de programación tan interesante.
Empezaré en este post con algunas definiciones y conceptos fundamentales:
•Dos procesos serán concurrentes cuando la primera instrucción de uno de ello se ejecuta después de la primera del otro y antes de la última.
•Si seejecutan los dos procesos al mismo tiempo, se trata de programación paralela.
•Un programa en ejecución puede dar lugar a más de un proceso, cada uno de ellos ejecutando una parte del programa.
•Un proceso es una actividad asíncrona susceptible de ser asignada a un procesador.
•Para que los procesos puedan colaborar y competir por los recursos son necesarios mecanismos de comunicación ysincronización entre procesos.
•La concurrencia en sistemas monoprocesador hace que el S.O. alterne el tiempo de procesador entre los distintos procesos, dando lugar a la multiprogramación.
•En los sistemas multiprocesador, tenemos:
◦Sistemas multiprocesador fuertemente acoplados: tanto procesadores como memoria y otros dispositivos están conectados a un bus. Ello hace que todos los procesadorescompartan la misma memoria. En estos sistemas la sincronización y comunicación entre procesos se hace mediante variables compartidas.
◦Sistemas multiprocesador débilmente acoplados: no existe memoria compartida por los procesadores. Cada procesador tiene su memoria local y se conecta a otros procesadores mediante algún tipo de comunicación. Un ejemplo de este tipo de sistemas son los distribuidos,formados por nodos distribuidos geográficamente y conectados de alguna forma.
◦Multiproceso: gestión de varios procesos dentro de un sistema multiprocesador donde cada procesador puede acceder a una memoria común.
◦Procesamiento distribuido: gestión de varios procesos en procesadores separados, cada uno con su memoria local. La forma de comunicar y sincronizar en este caso es mediante paso demensajes.
•Programación concurrente orientada a objetos: unión de los paradigmas concurrente y objetos.
•Programa concurrente: conjunto de acciones que pueden ser ejecutadas simultáneamente.
•Programa paralelo: programa concurrente diseñado para ejecutarse en un sistema multiprocesador.
•Programa distribuido: Programa paralelo diseñado para ejecutarse en un sistema distribuido.

ConceptosFundamentales
La idea de programación concurrente siempre ha estado asociada a los sistemas operativos: Un sólo 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 hilos, java e internet.
Definición: 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.
Programación Concurrente
Para definirla correctamente, debemos diferencias entre programa y proceso.
Programa: Conjunto desentencias/instrucciones que se ejecutan secuencialmente. Se asemeja al concepto de clase dentro de la POO. 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. Se asemeja al concepto de objeto en POO.

Concurrencia
La concurrencia aparece cuando dos o más procesos son contemporáneos. Un caso particular es el...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Programación
  • Programacion
  • Programacion
  • Programación
  • Programacion
  • Programacion
  • Programacion
  • Programacion

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS