Progress is being made within the Linux kernel for reducing the I/O wait times and system interactivity/responsiveness when dealing with large I/O operations.
One of the well known Linux kernel bugs to be talked about in the past few years has been Bug #12309 from 2008. The bug is about «Large I/O operations result in poor interactive performance and high iowait times.»
Among the example I/O operations cited in the original bug posting was backing up the user's home directory with large files, moving messages between large mail directories, running updatedb, or upgrading large numbers of packages with RPM. With these workloads and others, the wait times become very high with extremely degraded interactivity.
The bug has seen more than 600 comments and there's been many I/O improvements made to the Linux kernel over the past five years. While the bug is marked as closed, some Linux desktop users still complain of a sluggish experience when dealing with heavy I/O operations dragging down the system. Fortunately, improvements are still being made to the Linux kernel.
A new update was posted to the bug report this morning is about work that's merged into the Linux 3.9 kernel. Some of the related work includes progress on eliminating the timer-tick while running in user-space by fixing up more code to work without timer interrupts. There's also a scheduler patch to fix a «bouncing cow» problem by when running fewer processes on the system than number of processor cores, the process could be bounced around between cores and yield poor performance. This bouncing cow fix for the scheduler yields a performance boost by 15x in a worst-case scenario. More work will come to future Linux kernel releases.