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 user-level applications. Cosy provides a user-friendly mechanism to execute the data-intensive code segment of the application in 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, avoiding redundant data copies.
A Cosy version of GCC makes the formation of a Cosy compound simple. Cosy-GCC automatically converts user-defined code segments into compounds. To ensure the 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 usinga modified preemptible kernel. Kernel data integrity is assured by performing necessary dynamic checks. Static checks are enforced by Cosy-GCC. To study the performance benefits of our Cosy prototype, we instrumented applications such as grep and ls. These application showed an improvement of 20-80%. Our current work focuses on faster and secure execution of entire programs in the kernel without source code modification.
[1]
Tzi-cker Chiueh,et al.
Integrating segmentation and paging protection for safe, efficient and transparent software extensions
,
1999,
SOSP.
[2]
Andrea C. Arpaci-Dusseau,et al.
Semantically-Smart Disk Systems
,
2003,
FAST.
[3]
Ray Bryant,et al.
PenguinOMeter: A New File-I/O Benchmark for Linux
,
2001,
Annual Linux Showcase & Conference.
[4]
Dawson R. Engler,et al.
Fast and flexible application-level networking on exokernel systems
,
2002,
TOCS.
[5]
Robert Wahbe,et al.
Efficient software-based fault isolation
,
1994,
SOSP '93.
[6]
Erez Zadok,et al.
Extending File Systems Using Stackable Templates
,
1999,
USENIX Annual Technical Conference, General Track.
[7]
David Robinson,et al.
NFS version 4 Protocol
,
2000,
RFC.
[8]
Toshiyuki Maeda.
SAFE EXECUTION OF USER PROGRAMS IN KERNEL MODE USING TYPED ASSEMBLY LANGUAGE by
,
2002
.
[9]
Brian N. Bershad,et al.
Extensibility safety and performance in the SPIN operating system
,
1995,
SOSP.
[10]
Tzi-cker Chiueh,et al.
I/O-Conscious Volume Rendering
,
2001,
VisSym.