my latest scheduler patches include support for SCHED_BATCH, which is a replacement for SCHED_IDLE - a new way to run lowprio, CPU-intensive, non-interactive processes, without affecting any other process in the system. SCHED_BATCH processes utilize 'CPU idle time', without taking away CPU time from any other process. - for 2.4, it's in the sched-2.4.19-pre10-ac2-B3 patch and upwards. - for 2.5, it's in the sched-2.5.24-D3 patch and upwards. the setbatch.c utility enables you to set an existing process to idle priority. Eg. to change a shell's scheduling policy to SCHED_BATCH: ./setbatch $$ all subsequently started commands will run under SCHED_BATCH priority.