{'fraction_non_alphanumeric': 0.010911424903722721, 'fraction_numerical': 0.0, 'mean_word_length': 5.495833333333334, '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}}
Operating System Structures for Multiprocessor Systems on Programmable Chip

Chips are moving from single-core systems to much more complex, heterogeneous many core systems. While heterogeneous architectures promise high performance, they are also challenging our ability to port our existing operating systems to abstract the heterogeneous components into a unified architecture. Baseline solutions to resolve heterogeneity issues within many cores use Remote Procedure Calls (RPC) for applications running on slave processors to access a traditional monolithic kernel running on a common master node. Micro kernels are once again re-emerging to eliminate the central bottleneck of the monolithic kernel. In both cases the RPC methods used for communications increase the overhead of system services, counter to the desire of breaking threads up into finer grained services to match and scale with increasing numbers of processors. In this paper we show how new invocation mechanisms built as hardware primitives in combination with new a new hw/sw co-designed micro kernel can resolve heterogeneity issues in a framework that supports the level of scalability required for next generation systems. We present experimental results as well as a new queuing model to show how both monolithic and micro kernels that rely historical interrupt mechanisms cannot support scalability beyond small numbers of processors. We also show through these results the potential scalability of a hardware kernel based micro kernel with new lightweight invocation mechanisms.