Balanced allocation of compute time in hardware-accelerated systems
Wenyin Fu, Katherine Compton · 2008
Most modern multitasking operating systems assume that, in order to be fair, CPU time should be allocated equally to processes of the same priority. However, this assumption is no longer valid in a system with acceleration hardware, such as reconfigurable hardware (RH), if the goal is equal computation ability for the processes. A process that uses acceleration hardware such as RH can accomplish far more work in a set span of time than a process that only executes on the CPU for that same time. When both accelerated and non-accelerated processes run concurrently, an equal time-slice allocation of CPU resources will not result in equal amounts of work performed. In this paper we present a new allocation technique that distributes computation ability, either equally or with parameterized bias. This technique allows all processes to benefit from RH acceleration—even those that are not specifically designed for it. We demonstrate different possible balancing methods using a custom built Linux kernel with this new scheduler, running on a full-system cycle-accurate simulation platform.