초록
실시간 프로그래밍에 있어 타임아웃 기능은 매우 중요한 기본적인 기능 중 하나이다. 그러나 내장 실시간 시스템에서 가장 많이 사용하는 C 언어에서는 타임아웃 기능을 지원하지 않는다. 그래서 C언어에서 실시간 프로그래밍 환경을 제공하기 위해 언어 자체를 확장하거나 실시간 엔진(또는 커널)을 지원하는 연구들이 있었다. 그러나 이것은 특정 실시간 커널과 컴파일러가 필요하다는 문제점을 갖고 있다. 본 논문에서는 운영체제에 최소한의 의존성을 갖고 라이브러리와 매크로 함수만으로 C 언어에서 타임아웃 기능을 제공한다. 또한 개발자가 편리하게 타임아웃 기능을 사용할 수 있도록 매크로 정의를 통해 구조화된 _within 문장을 제공한다. 이 기능은 리눅스의 단일 쓰레드 환경과 도스 환경뿐만 아니라 다중 쓰레드 환경인 POSIX 쓰레드에서도 구현하였다.
Time-out is one of the basic but important functions in real-time programming. However, the C language used commonly in the embedded real-time systems doesn't support this capability. For this capability, there have been numerous studies on language extension and/or special purpose real-time kernel (or engine). Those require preprocessor or new kernel support. In this paper, we propose a time-out facility supported by a library and some macro functions with a minimum dependency on operating systems. Furthermore, we also provide a structured _within statement, a macro function which makes programming easy. We have implemented this for the LINUX and the DOS environment, and for the POSIX multithread environment as well.