Opportunities

 Throughput of streaming I/O applications depends in large part on efficiency of data transfer between devices, kernel and applications. Such communication always crosscuts the traditional OS layering shown in Figure 2.2Layered Operating System Architecture , where it can introduce significant cost in the form of task switches, kernel mode switches, cache and TLB misses, interrupts and page faults (to name only the most important). The actual bottlenecks depend on computer system details, which vary from one machine to another: systems are increasingly diverse, heterogeneous, parallel and memory constrained, we argue in Appendix AComputer System Evolution. Before looking into specific cost saving opportunities, we observe where layered I/O leaves room for improvement. We present six common situations that witness avoidable transport cost. All are present in Linux at least up to version 2.6.30, but they are not necessarily limited to that OS. In each case, we identify specific cost saving opportunities. Afterward, we extract the root causes and identify opportunities for improvement.

Figure 2.2: Layered Operating System Architecture 
\includegraphics[width=0.6\linewidth]{figpriv/newtriarch.eps}

false Encountered obstructions are not even necessarily due primarily to physical limitations: boundaries may be reached because of how software unduly stresses components. What is an insignificant burden on one machine not worthy of optimization, can prove to be the major cause of delay on others - as the memory wall demonstrates.



Subsections
willem 2010-02-03