실시간 운영체제에서 인터럽트 서비스 루틴을 위한 Pending Lock/Unlock 설계 및 구현

Design and Implementation of Pending Lock/Unlock for ISR in Real-Time Operating Systems

  • 안희중 (충남대학교 컴퓨터공학과) ;
  • 성영락 (국민대학교 전자정보통신공학부) ;
  • 이철훈 (충남대학교 컴퓨터공학과)
  • 발행 : 2003.04.01

초록

실시간 운영체제는 태스크 수행의 논리적인 정확성뿐만 아니라 시간적인 정확성도 만족하는 스케줄링을 하는 운영체제이다. 태스크가 공유자원을 사용할 때 가용한 자원이 없으면 그 자원을 얻기 위해 기다리는 Pending 상태가 된다. 이러한 상태가 일반적인 상황에서 발생하면 스케줄러에 의해서 적절하게 관리되지만 인터럽트 상태나 시그널 상태와 같은 특수한 경우에 발생하면 데이터의 충돌이나 심지어 실시간 운영체제가 붕괴되는 상황이 발생할 수 있다. 이를 해결하기 위해 상용 RTOS 에서는 개발자가 ISR 에서 이러한 상황이 발생하지 않도록 주의 깊게 사용할 것을 경고하며, 커널 내부적으로는 복잡한 처리과정을 거쳐 해결할 수 있다. 본 논문에서는 이러한 상황이 발생할 가능성이 있을 때 PENDING LOCK/UNLOCK 함수를 사용하여 개발자에게 개발상의 편의를 제공하고, 실시간 운영체제의 안정성 및 신뢰성을 보장할 수 있도록 설계 및 구현한 내용을 기술한다.

키워드