Trying to attack the problem of resource contention, created by multiple parallel applications running simultaneously, we propose a space-sharing, two-level, adaptive scheduler for the Barrelfish operating system. The first level is system-wide, existing inside the OS, and has knowledge of the available resources, while the second level is aware of the parallelism in the application. Feedback on efficiency from the second-level to the first-level, allows the latter to adaptively modify the allotment of cores (domain) thus intelligently avoiding time-sharing. In order to avoid excess inter-core communication, the first-level scheduler is designed as a distributed service, taking advantage of the message-passing nature of Barrelfish. The processor topology is partitioned so that each instance of the scheduler handles an appropriately sized subset of cores. Malleability is achieved by suspending worker-threads. Two different methodologies are introduced and explained, each ideal for different situations.
[1]
Karl-Filip Faxén,et al.
Wool-A work stealing library
,
2008,
CARN.
[2]
Bradley C. Kuszmaul,et al.
Cilk: an efficient multithreaded runtime system
,
1995,
PPOPP '95.
[3]
Adrian Schüpbach,et al.
The multikernel: a new OS architecture for scalable multicore systems
,
2009,
SOSP '09.
[4]
Mary K. Vernon,et al.
Dynamic vs. Static Quantum-Based Parallel Processor Allocation
,
1996,
JSSPP.
[5]
Scott A. Brandt,et al.
Dynamic integrated scheduling of hard real-time, soft real-time, and non-real-time processes
,
2003,
RTSS 2003. 24th IEEE Real-Time Systems Symposium, 2003.