{'fraction_non_alphanumeric': 0.022556390977443608, 'fraction_numerical': 0.0, 'mean_word_length': 5.518367346938776, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Supporting high-performance applications on large-scale machines

This dissertation presents a study of hardware and operating system mechanisms to better support existing applications on high-performance machines. First, we describe the Cache Kernel, a supervisor that provides a more primitive interface to hardware facilities than previous designs, to give applications greater control over physical machine resources and provides better fault isolation than traditional designs. We show that it is possible to construct a kernel as a cache of primitive objects; that standard virtual memory, scheduling, IPC, and I/O systems can be built on top of it with low overhead; and that doing so yields greater control with a simpler structure. The simple structure and better fault isolation are particularly important as machines grow in scale. Second, we describe logged virtual memory, a memory system extension that generates logs of memory updates. We show that logged virtual memory can be used to improve the performance of existing systems that perform undo/redo on memory segments, a common function in high-performance database and simulation applications. Finally, we describe Borrowed Virtual Time (BVT) scheduling, a scheduler that provides low-latency dispatch to latency-sensitive threads in a mutually disinterested environment. Low-latency dispatch is important for device drivers, multimedia applications, and graphical user interfaces, and becomes more difficult and more important as a larger mix of applications share a single machine, as commonly accompanies faster processors.