DOI QR코드

DOI QR Code

Design and Implementation of Real-time Implanted Kernel, RTiK to Support Real-time for a Test Set based on Windows

윈도우 기반의 점검장비에 실시간성을 지원하는 실시간 이식 커널의 설계 및 구현

  • Received : 2010.09.15
  • Accepted : 2010.10.25
  • Published : 2010.10.28

Abstract

Recently, as new weapons are being developed, test equipments to test their functions inevitably require real-time features. However, since test equipments based on Windows can not support real-time requirements, we have no choice but to use third-party solutions such as RTX or INtime. This leads to increase the development cost of each test equipment. This paper suggests an real-time implemented kernel(RTiK) which operates as a device driver on Windows. RTiK provides another timer using the Local APIC of x86 microprocessors. It supports real-time requirements by periodically executing the required services using Windows-independent timer interrupts to guarantee task deadlines. To reduce the interrupt latency, we used deferred procedure calls provided by Windows. We also used the export driver to implement and modify user-defined functions without accessing the RTiK internals. Using an oscilloscope, we prove that the RTiK kernel proposed in this paper guarantees up to 0.1ms periods.

최근 다양한 신무기가 개발됨에 따라 개발된 무기들을 시험하기 위한 점검장비의 실시간성이 필수적으로 요구되고 있다. 하지만 윈도우 기반의 점검장비는 실시간성을 지원하지 못하기 때문에 RTX나 INtime같은 고가의 서드파티 운영체제를 사용함으로써 실시간성을 지원하며, 이는 점검장비 프로그램 개발비용의 증가를 초래하고 있다. 본 논문은 윈도우에 디바이스 드라이버 형태로 이식되어 동작하는 실시간 이식 커널인 RTiK을 제안한다. RTiK은 x86 하드웨어에서 제공하는 Local APIC를 이용하여 윈도우 별도의 타이머를 제공한다. 윈도우 독립적인 타이머 인터럽트의 발생으로 실시간성이 필요한 서비스를 주기적으로 동작시켜주며 마감시한을 보장해줌으로써 윈도우에 실시간성을 제공해준다. 또한 인터럽트 지연시간을 줄이기 위해 윈도우에서 제공하는 지연처리호출(Deferred Procedure Call)을 사용하였으며 지연처리호출에서 실행시켜줄 개발자 정의 함수를 실시간 이식커널 내부에 접근하지 않고 구현 및 수정할 수 있도록 Export Driver를 사용했다. 본 논문에서는 x86하드웨어에서 동작하는 윈도우 기반의 점검장비에 실시간성을 지원하는 실시간 이식커널을 설계 및 구현하고, 0.1ms 주기성 보장에 대해 오실로스코프로 검증한다.

Keywords

References

  1. Intel, Intel 64 and IA-32 Architectures Software Developer's Manual Volume 1 : Basic Architecture, September, 2009.
  2. Intel, Intel 64 and IA-32 Architectures Software Developer's Manual Volume 3 : System Programming Guide, September, 2009.
  3. David A. Solomon, Mark E. Russinovich, Inside Windows 2000, Third Edition, Microsoft, 2000.
  4. http://msdn.microsoft.com/en-us/library/ms685 100(v=VS.85).aspx
  5. 정덕영, Windows 구조와 원리, 한빛미디어, 2009.
  6. Mark E. Russinovich and David A. Solomon, Microsoft Windows Internals 4th Edition, Microsoft Press, 2006.
  7. http://msdn.microsoft.com/en-us/library/ms8100 29.aspx.
  8. http://www.microsoft.com/whdc/driver/tips/Km DLL.mspx
  9. http://msdn.microsoft.com/en-us/library/ff54289 1(VS.85).aspx
  10. 이봉석, 윈도우 디바이스 드라이버, 한빛미디어, 2009.
  11. Walter Oney, Programming the Microsoft Windows Driver Model 2nd Edition, 정보문화사, 2004.
  12. 노재현, 개발자를 위한 나만의 운영체제 만들기, 정보문화사, 2007.
  13. 임재석, Windows 상에서의 지능형 서비스 로봇을 위한 실시간성 지원에 대한 연구, 제어로봇시스템학회, pp213-216, 2010.
  14. John Robbins, DEBUGGING APPLICATIONS For Microsoft .NET And Microsoft WINDOWS, Microsoft, 2003.
  15. Intel, Intel 64 and IA-32 Architectures Software Developer's Manual Volume 2 : Instruction Set Reference, September, 2009.
  16. Johnson M.Hart, Windows System Programming 3rd Edition, Addison Wesley, 2005.
  17. http://technet.microsoft.com/en-us/sysinternals /default.aspx
  18. Intel, Intel I/O Controller Hub 6(ICH6) Family Datasheet, January, 2005.
  19. Macmillan Technical Publishing Staff, Windows NT/2000 Native API Reference, NewRiders Publishing, 2000.
  20. http://msdn.microsoft.com/en-us/library/ff5420 78.aspx.
  21. http://www.ntkernel.com/

Cited by

  1. A Method to Support Real-time for User-level Robot Components on Windows vol.11, pp.7, 2011, https://doi.org/10.5392/JKCA.2011.11.7.051