Ejercicio 1.3: Identificación de un cuello de botella de hebras

Antes de empezar, complete el Ejercicio 1.2: Recopilación de datos de hebras.

Buscar cuellos de botella de hebras mediante la vista Hebras

En la vista Hebras se muestra el estado de todas las hebras de la aplicación y se indican, explícitamente, los puntos muertos y las contiendas.

Para buscar cuellos de botella:

  1. En el Monitor de perfilado, pulse el botón derecho del ratón sobre el recurso Perfilado y, a continuación, seleccione Abrir con > Vista Hebras. Se abre la vista Hebras. Tiene un aspecto parecido al siguiente:

    Captura de pantalla de la vista Hebras, en la que se muestra el resultado la ejecución de este perfilado, tal como se describe en el texto siguiente.

    Lo que realmente nos interesa son las flechas verticales que aparecen entre las hebras. Una flecha indica que una hebra (la hebra en la que se origina la flecha) espera a que otra hebra (la hebra a la que señala la flecha) libere un bloqueo.

  2. Las flechas están demasiado juntas para que se puedan distinguir fácilmente. Para verlas mejor, conmute de la escala de tiempo lineal por omisión a una escala de tiempo ponderada pulsando el botón , Conmutar a la escala de tiempo comprimido. La escala de tiempo comprimido comprime los segmentos de tiempo durante los cuales no se genera ninguna acción de hebra significativa. El aspecto de la pantalla pasa a ser uno parecido al siguiente:

    Captura de pantalla en la que se muestra la distribución de las flechas después de haber cambiado la escala de tiempo por 'Comprimido'.

  3. Interprete la vista Hebras tal como se indica a continuación:
    1. Tenga en cuenta que, cuando se inicia el programa, se crean cuatro hebras philo*. Se ejecutan, se suspenden, y se ejecutan de nuevo brevemente. Cuando el programa finaliza, todas las hebras se han cambiado a un estado Se espera un bloqueo.
      Nota: Un estado "Suspendido" distinto no se puede visualizar en algunos sistemas.
    2. Las hebras philo* esperan un bloqueo de otras hebras philo* que también esperan un bloqueo. En este caso, tenemos un punto muerto: el programa ha llegado a un "callejón sin salida", y no puede continuar.
      Nota: Puede ver información específica sobre las peticiones de bloqueo colocando el cursor sobre el segmento de hebra que esté esperando un bloqueo. Se visualizará información sobre la herramienta en la que se especifica el nombre del bloqueo y se identifica la hebra que lo retiene (la "hebra que provoca el bloqueo").
  4. Puede ver información detallada sobre los segmentos de hebra en la vista Propiedades. Para abrir la vista, seleccione Ventana > Mostrar vista > Propiedades. Seleccione un segmento de hebra para visualizar sus propiedades.

Ahora comprende por qué se produce este punto muerto. Ya está preparado para comenzar el Ejercicio 1.4: Resolución del cuello de botella de hebras.

Condiciones de uso | Información de retorno
(C) Copyright IBM Corporation 2000, 2005. Todos los derechos reservados.