A Performance Analysis of the Linux Scheduler on ARM-based Systems
Stichworte: Linux Kernel, Scheduler
A key functionality of modern operating systems is the scheduler. It is responsible for managing the different threads and processes running in the system. With the increasing core count of modern processors and each application using multiple threads to distribute its workload, the performance of the scheduler has come under the spotlight. More cores and more threads result in more work for the scheduler, as it should provide each thread with a fair share of computing time to guarantee smooth operation.
This work focuses on highlighting the different task and steps the scheduler of the Linux operating system is required to do, which include putting threads to sleep or migrating them to other cores. With the help of the full system gem5 simulator a performance analysis of these steps should be conducted. This includes coming up with an appropriate test strategy, writing microbenchmarks and extracting relevant data from the simulator.
good knowledge of C and Python
basic experience with Linux
knowledge about scheduling in OSes would be beneficial
Interproccess communication is a vital mechanism for distributing and coordinating multithreaded applications on modern CPUs. Application that can take advantage of an ever increasing core count on modern CPUs benefit greatly form the available parallelism. Therefore, many are divided into multiple threads or processes, with each dedicated to perform a certain sub-task. Coordinating this parallelism requires communication among the different threads and processes, especially when multiple entities try to access shared resources. However, the overhead for this communication should be kept at a minimum, as the system should focus on performing computing tasks. IPC has become an ever greater contributor to the overall execution time of an application. A popular method to synchronize different threads are semaphores, these allow the programmer to guarantee a certain workflow for the application. Various shared libraries with different semaphore implementations are available.
The goal of this work should be, to highlight the differences between the POSIX semaphore and System V semaphore implementations. Hereby, a special focus should be put on how the different implementations interact with the underlying kernel and what their respective overhead is. The performance analysis will be conducted with the help of the gem5 full system simulator.
basic knowledge of C and Python
basic knowledge of interprocess communication
Sven Rheindt, Andreas Fried, Oliver Lenke, Lars Nolte, Temur Sabirov, Tim Twardzik, Thomas Wild, Andreas Herkersdorf: X-CEL: A Method to Estimate Near-Memory Acceleration Potential in Tile-based MPSoCs. ARCS 2020 - 33rd International Conference on Architecture of Computing Systems, 2020 mehr…BibTeX