Performance Bottleneck Analysis and Solution of Shared Memory Operating System on a Multi-Core Platform
-
Graphical Abstract
-
Abstract
The shared memory operating system provides a lot of shared data structures protected by different locks. Contentions on these locks are relative to the number of active progresses (system call, kernel thread and interrupt handler) which depend on the number of processing elements. As more cores are integrated into a package, there are more and more processing elements available to the operating system. Therefore, contentions on the locks will decrease the performance of the whole system and even become a bottleneck. On the other hand, kernel runs on the same core with some application. Limited by the capability of hardware cache, the kernel code and data of the operating system may replace those of the application in the cache. Once the application gets opportunity to run, it will retrieve data from the slower cache or even from the memory subsystem to continue its execution. In such way, the performance of the application will be decreased greatly. This paper proves the existence of the above problems through several experiments on a 16-core AMD platform. Then, we propose a heterogeneous operating system focusing on these problems. In our opinion, the application and the operating system kernel run on different processing cores in order to decrease the possibility of contention and the pollution to the cache.
-
-