Time-slice Donation Technique for Improving the Performance of IPC in Linux

Linux의 IPC 성능 향상을 위한 타임 슬라이스 공여 기법

  • 이지훈 (성균관대학교 전자전기컴퓨터공학과) ;
  • 윤희용 (성균관대학교 전자전기컴퓨터공학과)
  • Received : 2010.08.17
  • Accepted : 2010.09.20
  • Published : 2010.12.15

Abstract

Inter-process communication (IPC), which is a technique that enables exchanging data among multiple processes, is commonly used not only in user applications but also in system processes. For this reason, the performance of IPC highly influences the performance of whole computer system. Especially, heavy overload on a single server process caused by IPC requests from multiple client processes, easily results overall slowdown of IPC response time. Here, to deal with the problem stated above, the time-slice donation technique which is adapted in L4 microkernel is analyzed and enhanced for reducing latency of IPC response time and implemented on linux kernel for actual performance evaluation. While trying to maintain the additional overhead as least as possible, the experiment shows that the use of this technique enhances the performance of IPC multiple times of existing technique under certain circumstances.

프로세스간 통신(Inter-process Communication, IPC)은 동일 시스템 내의 프로세스간 상호통신을 가능하게 하는 기술로써, 이는 사용자 어플리케이션 뿐만이 아니라 운영체제의 시스템 프로세스들에서도 매우 빈번하게 사용된다. 이에 따라. IPC의 성능은 전체 컴퓨터 시스템 성능에 큰 영향을 끼치게 되며, 한 서버 프로세스로의 집중된 IPC 요청은 종종 해당 서버 프로세스의 과부하를 야기하여 IPC 클라이언트 프로세스의 전반적인 응답속도 저하를 초래하곤 한다. 본 논문에서는 이러한 현상을 해결하기 위하여, L4 마이크로 커널에서 제공하고 있는 타임 슬라이스 공여 기법을 개선 및 적용하여 제시된 문제 상황에서의 IPC 응답속도를 높일 수 있는 방법을 강구한다. 실제적으로 구현 완료 후 수행된 테스트 결과에서는 해당 제시 방법이 기존의 일반 IPC 방식에서보다 추가적인 부하는 최소한으로 유지하면서도, 특정 상황에 따라 수 배 이상의 성능개선 효과를 가져올 수 있음을 보여주고 있다.

Keywords

References

  1. L4Ka Team. L4Ka::Pistachio kernel. http://l4ka.org/projects/pistachio/.
  2. J. Liedtke, K Elphinstone, S. Sch"onberg, H. H'artig, G. Heiser, N. Islam, and T. Jaeger, "Achieved IPC performance (still the foundation for extensibility)," In 6th Workshop on Hot Topics in Operating Systems (HotOS), pp.28-31, Chatham (Cape Cod), MA, May 1997.
  3. J. Liedtke, "Improving IPC by kernel design," Proceedings of the fourteenth ACM symposium on Operating systems principles (SOSP '93), pp.175-188, 1993.
  4. S. Ruocco., "Real-time programming and L4 micro-kernels," In Proceedings of the 2006 Workshop on Operating System Platforms for Embedded Real-Time Applications, Dresden, Germany, July 2006.
  5. Bryan Ford, Sai Susarla, "CPU inheritance scheduling," Proceedings of the second USENIX symposium on Operating systems design and implementation, pp.91-105, October 29-November 01, 1996, Seattle, Washington, United States.
  6. Elphinstone, K, Greenaway, D., Ruocco, S., "Lazy scheduling and direct process switch - merit or myths?," Workshop on Operating System Platforms for Embedded Real-Time Applications, Pisa, Italy (2007).
  7. Erik Stenman, Konstantinos Sagonas, "On reducing interprocess communication overhead in concurrent programs," Proceedings of the 2002 ACM SIGPLAN workshop on Erlang, pp.58-63, October 07-07, 2002, Pittsburgh, Pennsylvania [doi> 10.1145/592849.592857]
  8. U. Steinberg, J. Wolter, and H. H'artig, "Fast component interaction for real-time systems," In Proc. 17th Euromicro Conference on Real-Time Systems (ECRTS'05), Palma de Mallorca, Spain, July 2005.
  9. Marzi, H., Hughes, L., Yanting Lin, "Embedded systems with improved Interprocess Communication design," Industrial Informatics, 2009. INDIN 2009. 7th IEEE International Conference on 23-26 June 2009, pp.200-203.
  10. Tabata, T., Fukutomi, K, Taniguchi, H., "Proposal of Instant Synchronous Interprocess Communication," Convergence and Hybrid Information Technology, 2008. ICCIT '08. Third International Conference on vol.2, 11-13 Nov. 2008, pp.146-149.
  11. Mirtaheri, S.L., Khaneghah, E.M., Sharifi, M., "A Case for Kernel Level Implementation of Inter Process Communication Mechanisms," Information and Communication Technologies: From Theory to Applications, 2008. ICTTA 2008. 3rd International Conference on 7-11 April 2008, pp.1-7.