{'fraction_non_alphanumeric': 0.023203592814371257, 'fraction_numerical': 0.0, 'mean_word_length': 5.427884615384615, '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}}
CPU Resource Reservation for Simultaneous Multi-Thread Systems

Simultaneous Multi-Thread (SMT) techniques are becoming popular because they increase the efficiency of CPU resource usage by allowing multiple threads to run on a single physical processor at a very fine granularity. Emerging real-time applications, however, may not benefit from the SMT techniques because those techniques often compromise the predictable performance characteristics of applications, which real-time applications typically need to meet their computation deadlines. In this paper, we propose a new resource reservation scheme for SMT systems. In this scheme, a task scheduler dynamically enables and disables the SMT facility while real-time applications are running by monitoring the progress of the real-time applications. In this way, real-time applications can still meet their computation deadlines, and other best-effort applications can gain a high throughput due to the SMT facility. We have implemented this scheme on a Linux kernel and evaluated it on a Hyper-Threading processor, an Intel's implementation of SMT techniques. Our experimental results have shown that, for our workload, our scheme can guarantee real-time applications to use reserved resources while best-effort applications can obtain a high throughput due to the SMT facility.