Como hacer un diagrama de hilos

Como hacer un diagrama de hilos

Diagrama de secuencia de hilos

Un hilo es un flujo de ejecución a través del código del proceso, con su propio contador de programa que lleva la cuenta de la siguiente instrucción a ejecutar, registros del sistema que mantienen sus variables de trabajo actuales y una pila que contiene el historial de ejecución.
Un hilo también se denomina proceso ligero. Los hilos proporcionan una forma de mejorar el rendimiento de la aplicación a través del paralelismo. Los hilos representan un enfoque de software para mejorar el rendimiento del sistema operativo mediante la reducción de la sobrecarga El hilo es equivalente a un proceso clásico.
Cada hilo pertenece exactamente a un proceso y ningún hilo puede existir fuera de un proceso. Cada hilo representa un flujo de control independiente. Los hilos se han utilizado con éxito en la implementación de servidores de red y servidores web. También proporcionan una base adecuada para la ejecución paralela de aplicaciones en multiprocesadores de memoria compartida. La siguiente figura muestra el funcionamiento de un proceso con un solo hilo y otro con varios hilos.
En este caso, el núcleo de gestión de hilos no es consciente de la existencia de hilos. La biblioteca de hilos contiene código para crear y destruir hilos, para pasar mensajes y datos entre hilos, para programar la ejecución de hilos y para guardar y restaurar contextos de hilos. La aplicación comienza con un único hilo.

Diagrama de flujo scor

Se me ha encargado la creación de un diagrama de flujo para algunos procesos de cliente-servidor y de arranque en el software de nuestra organización. Muchos de nuestros procesos se ejecutan de forma concurrente, ya que no tienen impacto entre sí. ¿Cómo se representa esto tradicionalmente en el diagrama de flujo?
Se representa mediante una línea transversal doble con cualquier número de flechas de entrada y salida. Estos símbolos se utilizan cuando dos o más flujos de control deben funcionar simultáneamente. Los flujos de salida se activan simultáneamente, cuando todos los flujos de entrada han alcanzado el símbolo de concurrencia. Un símbolo de concurrencia con un solo flujo de entrada es una bifurcación; uno con un solo flujo de salida es una unión.
Pero esto sólo se aplicará para un tipo específico de paralelismo (¿qué pasa si no se generan todos los hilos a la vez?), y no se aplicará a un modelo multiproceso en absoluto. En el caso de un modelo multiproceso, yo simplemente haría un diagrama de flujo separado para cada proceso.

Hilo uml

Para aplicaciones de un solo hilo me gusta usar diagramas de clase para obtener una visión general de la arquitectura de esa aplicación. Este tipo de diagrama, sin embargo, no ha sido muy útil cuando se trata de entender aplicaciones fuertemente multihilo/concurrentes, por ejemplo porque las diferentes instancias de una clase “viven” en diferentes hilos (lo que significa que acceder a una instancia sólo se puede hacer desde el hilo en el que vive). En consecuencia, las asociaciones entre clases no significan necesariamente que pueda llamar a los métodos de esos objetos, sino que tengo que hacer esa llamada en el hilo del objeto de destino.
La mayor parte de la literatura que he encontrado sobre el tema, como Designing Concurrent, Distributed, and Real-Time Applications with UML de Hassan Gomaa, tiene algunas buenas ideas, como dibujar los límites de los hilos en los diagramas de objetos, pero en general parecen demasiado académicas y extensas para ser realmente útiles.
No quiero utilizar estos diagramas como una visión de alto nivel del dominio del problema, sino como una descripción detallada de mis clases/objetos, sus interacciones y las limitaciones debidas a los límites de los hilos que he mencionado anteriormente.

Diagrama del modelo de hilo

Actualización: La respuesta aceptada fue el mejor ejemplo que vi, pero deja bastante que desear. Terminé ilustrando los hilos en diagramas de secuencia separados. No estoy seguro de que el diagrama de secuencia funcione necesariamente para múltiples hilos.
El enfoque del diagrama de secuencia UML es utilizar el fragmento “par” para modelar múltiples mensajes que se procesan en paralelo. A continuación hay una descripción de texto que cuando se introduce en la herramienta PlantUML disponible en la web producirá el diagrama de abajo.
Puede utilizar un fragmento “par” para modelar múltiples llamadas sincrónicas que se ejecutan en paralelo. El fragmento consiste en un rectángulo con la etiqueta “par”. El rectángulo está dividido en múltiples cajas, cada una de las cuales representa un hilo de ejecución.

Acerca del autor

admin

Ver todos los artículos