Académique Documents
Professionnel Documents
Culture Documents
Programacin concurrente
Consideraciones
Por qu usar hebras y procesos?
Programacin concurrente
Se entiende por programacin concurrente el conjunto de tcnicas y
notaciones que sirven para expresar el paralelismo potencial en los
programas, as como resolver problemas de comunicacin y
sincronizacin.
Un proceso es un programa en ejecucin con un estado asociado. Las
distintas aplicaciones que se ejecutan en un sistema operativo
multitarea son procesos independientes. Cada una de ellas tiene
asociado un contexto (prioridad, estado del procesador, lista de
interrupciones y seales que admite, pginas de memoria que ocupa,
etc.).
Una aplicacin concurrente est formada por un conjunto de procesos
concurrentes. En ella existen distintas hebras de control independientes,
vas simultneas de ejecucin. Dichas hebras de control pueden ser
procesos independientes en el sistema operativo o hebras dentro de un
proceso. Una aplicacin multihebra est constituida por distintas hebras
que comparten el espacio de un proceso en el sistema operativo.
Consideraciones
El diseo de aplicaciones concurrentes es ms complejo que el
de aplicaciones secuenciales, ya que hemos de descomponer
el programa en un conjunto de tareas ms o menos
independientes con el fin de aprovechar el paralelismo que
pueda existir. Si no existe ese paralelismo potencial, no tiene
sentido que intentemos descomponer nuestra aplicacin en
tareas independientes.
La implementacin de aplicaciones concurrentes es tambin
ms compleja que la de aplicaciones secuenciales
convencionales porque hemos de garantizar la coordinacin de
las distintas hebras o procesos con los mecanismos de
comunicacin adecuados, adems de velar por la integridad
de los datos con los que stas trabajan simultneamente
(para lo cual hemos de sincronizar el acceso a los mismos).
2 de 4
En la interfaz de usuario
Cuando una aplicacin tiene que realizar alguna tarea larga, su interfaz
debera seguir respondiendo a las rdenes que el usuario efecte.
Hebras o procesos independientes pueden encargarse de realizar las
operaciones costosas mientras que la hebra principal de la aplicacin
sigue gestionando los eventos procedientes de la interfaz de usuario.
3 de 4
Establecimiento de prioridades
Como es lgico, se le asigna mayor
prioridad a las tareas ms importantes
(vg: las que requieran una respuesta
ms rpida).
de
futuras
4 de 4
IMPORTANTE
El objetivo principal del uso de
paralelismo es mejorar el rendimiento
del sistema. El diseador/programador
deber decidir hasta qu punto debe
utilizarse en cada momento.
En cualquier caso, el uso de paralelismo, y de hebras en particular, es
ms comn de lo que podra pensarse en un principio (y menos de lo
que debera).