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

The goal of this thesis is to show that it is possible to achieve a better parallel application perfor-mance in multiprocessor operating environments when the kernel and the application cooperate in the resource management. The study includes the whole application, in addition to the components whose manage-ment is mainly supported by the operating system. The selected applications for study are medium grain parallelism applications (ie. servers, subsystems, virtual machines,...). Our work includes a design and implementation of an operating environment in the micro-kernel technology with a new scheduling approach. We have implemented space sharing scheduling policies to isolate applications inside machine partitions; each partition has its own scheduling policy and the user can modify priorities, quantums and policies in his application partition. This approach allows each application to adjust and tune its own scheduling to achieve the better performance it would. Also it permits to protect applications from the other applications faults. We propose a new abstraction: the eXecution context (eXc) as the processor virtual object that allows the application to manage its threads. The eXc are offered by the kernel to the application to run threads in the physical processors that the kernel gives to the application. The kernel communicates to the application, in an asynchronous way, the events that could lead to a rescheduling of its threads. This events are: thread blocked/unblocked, physical processor allocated/deallocated and the clock, to have the possibility of timeouts at application level. New synchronization primitives prevent the deadlock problem when there may be a thread preemption in a mutex area. Our implementation overcomes throughput in one order of magnitude and also has a gain in the execution time for the other application threads. This work has been implemented in a shared memory multiprocessor. We have modified the Mach 3.0 microkernel, the OSF/1 MK operating environment and the CThreads library. This library has been also modified to offer more complete scheduling policies and synchronization mechanisms.