{'fraction_non_alphanumeric': 0.014160485502360081, 'fraction_numerical': 0.0, 'mean_word_length': 5.106995884773663, '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}}
Sleeping Threads: A Kernel Mechanism for Support of Efficient User Level Threads

The rapid development of modern parallel computers in the last years allows-from hardware point of view-a finer granularity of parallel algorithms. Besides faster low latency networks for message passing based architec-tures the development of shared memory systems was enforced. But particularly for these systems there is a lack of sophisticated system software. The very efficient communication via shared memory can't be used in a comfortable way. The threads of the operating system (kernel threads) suffer from high system overhead and can't be used for applications with fine grain parallelism. In most cases they only build the base for an efficient thread management on user level. On the other side efficient user level threads suffer from insufficient system integration which causes problems and low performance. However, the insufficient system integration of the user level threads is not a problem of the thread libraries themselves but of the operating systems. Most of them allow multiple kernel threads per address space as the only support for parallel programming. A well integrated user level scheduling needs more support and for example information about the thread states in kernel. In this paper we describe a method to achieve better system integration without many changes in the operating system kernel. This ensures a unproblematic port of this mechanism to other systems.