Implementation and Design of Multi-core Support for Micro-kernel Operating System
|Course||Computer Software and Theory|
|Keywords||Operating System Micro-kernel Multi-Core Minix3 Cache Contention|
With the development of microprocessor technology, Multi-core processors have become more and more popular. Most PCs adopt multi-core processors nowadays. However, it is obvious that software should keep pace of the development of hardware. Therefore, how does OS, which is the most important supporting software, support for multi-core architectures becomes a research hotspot. Microkernel-based architecture is always an important research direction of operating system, which has the advantage of reliability, security flexibility and so on. Minix3is a second generation of micro-kernel operating system that has been widely developed. But Minix3does not support for multi-core architectures.In this paper, we first introduce some microkernel related knowledge, including microkernel’s development and features, and analyze the constitution of Minix3operating system, which is the research object of this paper. Then, introduce the features of multi-core technologies, and compare them with multi-processor architectures as well. We draw a conclusion that the most apparent difference of multi-process and multi-core architectures is processors in multi-core architecture share some hardware resources, i.e. LLC cache, FSB, memory controller.Processes that executed concurrently will content for the shared resources such that affect the performance of the system. We argue that the operating system should support for multi-core architectures in functional and the process of optimization for shared resources as well.Minix3does not support for multi-core architecture in functional, so in this paper, we introduce two points:1. Minix3support for multi-core architecture. We analyze the features of Intel Multi-core architecture, and study the difference between multi-core and single-core architecture in hardware. We have a detail analysis of Minix3source code and partial Linux source code and some papers that discuss how to support multi-processor architectures in microkernel operating system.And we also research the mechanism supporting for multi-core architecture from the aspect of system structure and system function. For system structure design, we adopt fine-gained lock for Minix3kernel, and separate the severs and applications from running on the same LLC group in order to ensure the quality of services. For system function design,we describe the differences between single-core and multi-core architecture from multi-core boot initialization, interrupt management, process scheduling, processor synchronization and mutex, and consistency of the kernel and cache, and then we propose a design of Minix3which supports for multi-core architecture.2. Minix3optimization for multi-core architecture. We aim to decrease processes’contention for L2cache. We analyze the advantages and disadvantages after researching the current cache management techniques. And we propose a method to decrease L2cache contention in Minix3: Controlling the cache misses of the whole system at a low level.