3.11. RENDIMIENTO DE LOS HILOS.

El estándar POSIX Threads sugiere un conjunto de métricas de rendimiento basadas en un conjunto de rutinas definidas en la interfaz. A continuación se muestran algunas medidas que intentarn mostrar el rendimiento de los hilos, extraídas de [MUE93]. Estas medidas fueron tomadas en una Sun SPARC 1+ y en una Sun SPARC IPX bajo el sistema operativo SunOS 4.1 empleando análisis de tiempo doble. El paquete de hilos para el que fueron tomadas las medidas es el paquete Pthreads de Frank Mueller, que es una implementación de nivel usuario. Algunas medidas son comparadas con las obtenidas para el sistema SunOS con una arquitectura Multihilo, mientras que otras son comparadas con una versión previa del sistema LynxOS baja una Sun SPARC IPX.

Tiempo [microsegundos]
Métrica de rendimiento
SPARC 1+
SPARC IPX
SunOS
PThreads de Frank Mueller
LynxOS
Entrar y Salir del modo protegido.
0.4
7.5
Entrar y Salir del kernel del sistema.
18
Bloquear/Liberar mútex, sin espera.
1
5
Bloquear/Liberar mútex, con espera.
51
Sincronización de semáforo.
158
101
55
75
Creación de hilos, sin cambio de contexto.
56
25
12
Par setjmp/longjmp
59
49
29
cambio de contexto sugerido.
37
38
Cambio de contexto de proceso.
123
41
gestor de señales del hilo (internas).
52
gestor de señales del hilo (externas).
250
gestor de señales del sistema.
154

Figura 3-14 Ejemplo de rendimiento de un paquete de hilos.

Como se puede observar los beneficios de la biblioteca de hilos de nivel usuario se deben al hecho de que entrar y salir del modo protegido de la biblioteca es mucho más rápido que entrar y salir del modo kernel del sistema. Además el cambio de contexto de hilos es más rápido que el cambio de contexto de procesos.

Las métricas incluyen una pareja de bloqueo/desbloqueo de mútex, primero bajo la suposición de que el mútex es solicitado cuando está desbloqueado, y después suponiendo el intervalo entre un desbloqueo de un hilo A y el retorno de la operación de bloqueo del hilo B (que fue suspendido mientras el hilo A poseía el mútex). La sincronización de semáforos se refiere a una operación P o WAIT más una operación V o SIGNAL, implementadas sobre mútex y variables de condición.

También se tomaron medidas durante la creación de un nuevo hilo (excluyendo el tiempo empleado en el cambio de contexto).