User applications that move a lot of data across the user-kernel boundary suffer from a serious performance penalty. We provide a framework, Compound System Calls (CoSy), to enhance the performance of such userlevel applications. Cosy provides a user-friendly mechanism to execute the data-intensive code segment of the application from the kernel. This is achieved by aggregating the data-intensive system calls and the intermediate code into a compound. This compound is executed in the kernel, which avoids redundant data copies. The formation of a Cosy compound is made trivial by using a Cosy version of gcc. Cosy-gcc automatically converts user-defined code segments into compounds. To ensure security of the kernel we use a combination of static and dynamic checks. We limit the execution time of the application in the kernel by using a modified preemptible kernel. Kernel data integrity is assured by performing necessary dynamic checks. Static checks are enforced by Cosy-gcc. To study t...
Amit Purohit, Charles P. Wright, Joseph Spadavecch