Cooperación entre la aplicación y el kernel para la planificación de flujos, en sistemas multiprocesadores, como soporte al paralelismo

  1. Gil Gómez, Maria Luisa
Dirigida por:
  1. Josep Ignasi Navarro Mas Director/a

Universidad de defensa: Universitat Politècnica de Catalunya (UPC)

Fecha de defensa: 21 de junio de 2001

Tribunal:
  1. José María Llaberia Griño Presidente/a
  2. Clemente Rodríguez Lafuente Secretario/a
  3. Fernando J. Nuñez Vocal
  4. Jesús José Labarta Mancho Vocal
  5. Ana María Ripoll Aracil Vocal

Tipo: Tesis

Teseo: 45372 DIALNET lock_openTDX editor

Resumen

El objetivo de nuestro trabajo ha sido defender la tesis de que, para los entornos de trabajos actuales, multiprocesador, una opción válida para obtener el mejor rendimiento de las aplicaciones paralelas de propósito general es conseguir que el kernel y la propia aplicación cooperen en la gestión de los recursos. El estudio abarca a la aplicación en su conjunto, con todas sus partes, en cuya ejecución el sistema operativo toma una parte activa y decisoria. Y nos hemos centrado en aplicaciones paralelas multiflujo de granularidad media. Hemos diseñado y realizado un entorno de trabajo basándonos en la tecnología microker-nel en el que ofrecemos un nuevo sistema de planificación. A partir de políticas de planificación de particionado de la máquina, hemos aislado a las aplicaciones, unas de otras, y hemos habilitado que en cada partición el usuario pueda decidir qué política de planificación y qué quantums y recálculo de prioridades quiere. Con ello conseguimos, por un lado, que cada aplicación pueda ajustar la planificación que mejor rendimiento le suponga. Por otro, que no queden afectadas unas por el funcionamiento de otras. A partir de la abstracción de procesador virtual, dotamos a la aplicación de la capacidad de gestionar la planificación de sus propios flujos, mediante la nueva abstracción contexto de eje-cución (eXc) que el kernel ofrece a la aplicación para que pueda ejecutar un flujo en cada uno de los procesadores físicos que le ha asignado. En este nuevo entorno el kernel puede comunicar de manera asíncrona con la aplicación, transmitiéndole los eventos que puedan afectar a ésta para decidir una replanificación en sus flujos. En concreto, el bloqueo/desbloqueo de flujos, la asigna-ción/desasignación de procesadores físicos y un temporizador para poder disponer del dispositivo reloj a nivel de aplicación. Se han resuelto los problemas de desbanque de flujos dentro de exclusiones mutuas gracias a unas nuevas primitivas de sincronización que evitan el abrazo mortal. Con nuestra realización de paso de gestión de flujos del kernel a la aplicación, además de aumentar el throughput en un orden de magnitud, ganamos tiempo de ejecución para otros flujos de la aplicación. La plataforma de desarrollo ha sido un multiprocesador de memoria compartida sobre el que hemos modificado el microkernel Mach 3.0, con el entorno operativo OSF/1 MK y la librería de threads de usuario CThreads, modificada igualmente para enriquecer y potenciar la parte de planificación de flujos.