{'fraction_non_alphanumeric': 0.021021021021021023, 'fraction_numerical': 0.0, 'mean_word_length': 5.5024390243902435, '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}}
A Framework to Resource Partitioning and Task Scheduling of Multiple Applications on an MPSoC

In the era of multicore dominance, multi-processor system-on-chips (MPSoCs) are now increasingly utilized as the appropriate platform in complex embedded systems. An MPSoC consists of multiple heterogeneous processing elements, a memory hierarchy, and input/output components linked together by an on-chip interconnect structure. Many embedded systems employ software-managed memories known as scratch-pad memories (SPM). Scratchpad memories, unlike caches, are software-controlled and hence the execution time of applications on such systems can be accurately predicted and controlled. Often multiple embedded applications are utilizing the system at the same time. The proper allocation of system resources to active applications and scheduling of applications tasks are two critical issues in reducing the computation times as well as the communication overhead. In this article, we present effective resource allocation techniques and a memory-aware task scheduling on an MPSoC with multiple embedded applications possibly entering and leaving the system at different times. The objective is to reduce the execution time of all the applications in the system. Results on real life benchmarks show the effectiveness of our techniques.