Multi-core processors suggested for solving processor's heating and power consumption problems are getting widely used even in general PCs and mobile devices beyond high-end server systems. However, modern operating systems are yet to utilize multi-co...
Multi-core processors suggested for solving processor's heating and power consumption problems are getting widely used even in general PCs and mobile devices beyond high-end server systems. However, modern operating systems are yet to utilize multi-core processors in a very efficient way with respect to system throughput and resource utilization. To cope with this issue, we suggest a dynamic scheduling of I/O processes for multi-core system which decides an optimal processor affinity based on the processor cache layout, I/O intensiveness and processor loads. In this thesis, we especially focus on the networking I/O but the basic idea can be easily extended for disk I/O as well. In case of networking I/O, its performance can be optimized by placing networking processes on a core that runs the network protocol stacks due to cache effect. The recent releases of Linux kernel has a similar approach, but it does not consider ambiguous system states caused by competing between networking processes on the same core and using multiple network interfaces. We have measured the performance of suggested scheduling scheme on both SMP and NUMA systems. The experimental results present that the dynamic scheduling of networking processes implemented in the Linux kernel can improve the effectiveness of processor utilization more than 50%. Also it has shown that the scheduling scheme can improve network throughput more than 20% with less processor resources.