Con Kolivas's suggestion makes sense, and is mostly orthogonal to group scheduling. Clearly, the requirements for 'gcc' or 'tar' are quite different to those for interactive processes. From gcc's point of view it matters little whether it gets a second of CPU time in a single lump and is then suspended for a whole second. Throughput is important, latency is not. Even a simple flag for 'this is a batch process' would work.