Resumen:
|
En los últimos tiempos, los sistemas multiprocesador han proliferado. En los sistemas multiprocesador, diferentes núcleos del procesador compiten por el acceso al bus de memoria
cuando deben acceder a datos que no están ...[+]
En los últimos tiempos, los sistemas multiprocesador han proliferado. En los sistemas multiprocesador, diferentes núcleos del procesador compiten por el acceso al bus de memoria
cuando deben acceder a datos que no están disponibles en memoria caché, debido a que el acceso a memoria principal se realiza en serie. Esto es un importante cuello de botella arquitectural que puede hacer que el rendimiento se vea afectado.
El planificador de procesos es un elemento esencial en los sistemas operativos multiprogramados, el cual decide qué proceso debe pasar a CPU de entre los que se encuentran preparados para ejecución. En los planificadores de tiempo compartido actuales, se planifica por prioridad y afinidad de los procesos. La afinidad de los procesos trata de evitar dentro de lo posible las migraciones de procesos entre unidades de ejecución de la CPU para mantener el estado que el proceso tiene en la caché y no tener que afrontar el coste que supone generarlo. Sin embargo, los planificadores actuales no abordan directamente las limitaciones del ancho de banda del bus. Como puede verse los estudios anteriores [1] y [2], planificar teniendo en cuenta el ancho de banda del bus de la memoria puede significar una mejora en el rendimiento de los sistemas multiprocesador.
En los procesadores modernos, existen contadores de monitorización del rendimiento, que
permiten obtener información precisa de cómo se comporta el sistema. Los sistemas operativos
actuales permiten tener acceso a estos contadores siempre y cuando sean ofrecidos por la
arquitectura hardware. Basándose en estos datos, es posible caracterizar el comportamiento de las aplicaciones a lo largo del tiempo, y guiar a un planificador de procesos de modo que planifique teniendo en cuenta las limitaciones del ancho de banda del bus. Para ello, previamente es necesario comprender el funcionamiento de los contadores y diseñar métodos para recoger los datos, tratarlos e interpretarlos. Todo esto es posible con la ayuda de programas de prueba llamados benchmarks, que se comportan de forma predecible y permiten comparar los resultados entre ejecuciones.
[-]
|