Concurrencia

Páginas: 6 (1306 palabras) Publicado: 18 de marzo de 2013
Concurrencia
Concurrencia
Procesos y hebras
Concurrencia
Programación concurrente
¿Por qué usar hebras y procesos?
Ejecución de procesos
Ejecución de hebras
Hebras vs. Procesos
Creación y ejecución de hebras
La prioridad de las hebras
Finalización de la ejecución de una hebra
Uso de recursos compartidos
Mecanismos de exclusión mutua
synchronized

Hebras e interfaces de usuarioSwingUtilities.invokeLater()
javax.swing.Timer

Más información…

Procesos
Procesos y hebras
Hoy en día, cualquier usuario espera poder hacer varias cosas a la
vez y no verse forzado a ejecutar los programas secuencialmente.
Los sistemas operativos multitarea, como Windows o UNIX,
se encargan de que varios programas se puedan ejecutar a la vez
(concurrentemente) incluso cuando sólo sedispone de una única
CPU.

Concurrencia
Dos tareas se dice que son concurrentes si transcurren durante el
mismo intervalo de tiempo.
Se entiende por programación concurrente el conjunto de
técnicas y notaciones que sirven para expresar el paralelismo
potencial en los programas, así como resolver problemas de
comunicación y sincronización.
Cuando se trabaja en entornos distribuidos o conmáquinas con
múltiples procesadores, se suele hablar de programación
distribuida o paralela, respectivamente.

NOTA:

En un PC, el sistema operativo pasa el control de la
CPU de una tarea a otra cada pocos milisegundos, algo
conocido como cambio de contexto.
Al realizar los cambios de contexto en intervalos de
tiempo muy cortos, el usuario tiene la percepción de
que las distintas tareas seejecutan en paralelo (algo
que, obviamente, sólo sucede si disponemos de un
multiprocesador o de un multicomputador).

Concurrencia

-1-

© Fernando Berzal

Cuando decidimos descomponemos un programa en varias tareas
potencialmente paralelas, estas tareas las podemos implementar
en el ordenador como procesos o como hebras:

Un PROCESO es un programa en ejecución
con un estadoasociado.
o Las distintas aplicaciones que se pueden ejecutar en un
sistema operativo multitarea son procesos independientes.
o Cada proceso ocupa un espacio de memoria independiente
(para no interferir con la ejecución de otros procesos).
o Una aplicación puede implementarse como un conjunto de
procesos que colaboren entre sí para lograr sus objetivos,
para lo que se pueden emplear distintosmecanismos de
comunicación entre procesos.

Los sistemas operativos actuales permiten un nivel adicional de
paralelismo dentro de un proceso: En un proceso pueden existir
varias HEBRAS de control independientes [threads].
o Cada hebra es una vía simultánea de ejecución dentro del
espacio de memoria del proceso.
o La comunicación entre las distintas hebras se puede realizar
a través delespacio de memoria que comparten, aunque
habrá que utilizar mecanismos de sincronización para
controlar el acceso a este recurso compartido por todas las
hebras de un proceso.

Se denomina APLICACIÓN CONCURRENTE a una aplicación que se
descompone en un conjunto de procesos y/o hebras. Del mismo
modo, una APLICACIÓN MULTIHEBRA está constituida por distintas
hebras que comparten el espacio dememoria de un proceso.
Concurrencia

-2-

© Fernando Berzal

Programación concurrente
Independientemente de si utilizamos procesos o hebras, el
desarrollo de aplicaciones concurrentes involucra el uso de
técnicas específicas y la superación de dificultades que no se
presentan en la implementación de programas secuenciales.
A la hora de crear aplicaciones concurrentes, distribuidas oparalelas, deberemos tener en mente ciertas consideraciones:
El diseño de aplicaciones concurrentes es más complejo que
el de aplicaciones secuenciales, ya que hemos de
descomponer el programa en un conjunto de tareas con el
fin de aprovechar el paralelismo que pueda existir. Si no
existe ese paralelismo potencial, no tiene sentido que
intentemos descomponer nuestra aplicación en tareas...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Concurrencia
  • Concurrente
  • concurrencia
  • Concurrencia
  • Concurrente
  • Concurrencia
  • CONCURRENCIA
  • Concurrencia

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS