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.
SunOS | LynxOS | |||
Entrar y Salir del modo protegido. | ||||
Entrar y Salir del kernel del sistema. | ||||
Bloquear/Liberar mútex, sin espera. | ||||
Bloquear/Liberar mútex, con espera. | ||||
Sincronización de semáforo. | ||||
Creación de hilos, sin cambio de contexto. | ||||
Par setjmp/longjmp | ||||
cambio de contexto sugerido. | ||||
Cambio de contexto de proceso. | ||||
gestor de señales del hilo (internas). | ||||
gestor de señales del hilo (externas). | ||||
gestor de señales del sistema. |
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).