Corey is an experimental operating system designed to give applications control of sharing kernel data structures. Multiprocessor application performance can be limited by the operating system when the application uses the operating system frequently and the operating system services use data structures shared and mofified by multiple processing cores. If the application does not need the sharing, then the operating system will become an unnecessary bottleneck to the applications' performance.

Corey arranges each kernel data structure so that only a single processor need update it, unless directed otherwise by the application. Corey implements three new operating system absractions that allow applications to control inter-core sharing and to take advantage of the likely abundance of cores by dedicating cores to specific operating system functions. Measurements of microbenchmarks and application benchmarks, show how control over sharing can improve performance.



Corey kernel code is avaliable at:
Corey only runs on x86-64 bit CPUs. To compile Corey, you may need to set up a cross-build environment. You will need to install the GNU binutils and GCC packages. See the file README in the top-level directory of the Corey source tree for the appropriate ./configure arguments.

The Linux benchmarks described in the paper are avaliable at:

MIT CSAIL Parallel & Disributed Operating Systems Group