This project presents optimizations to game engines components using low level access provided by exokernels. The two components considered for the project are file system and memory. The investigation attempts to create an exokernel interface for the components to improve their performance. This is done by providing applications access to a memory mapped region as data is being transferred from disk to memory, to allow for faster processing a technique termed super asynchronous I/O. For the memory component, a page aligned memory allocator is implemented with manual defragmenting capabilities.
The results of the project demonstrated a large improvement for the exokernel file transfer technique. The exokernel also provided a much desirable low level interface.
An exokernel, unlike monolithic or hybrid kernels, aims to separate protection from management. The exokernel securely multiplexes the resources while the applications manage it.
Super aysnchronous I/O allows the application to process the contents of a file as it is being transferred into memory. This speeds up processing and wait times especially for large asset files.