IT 이야기/IT

[센서 노드 운영 체제 정리 (4/6)] Event model 정리

옥사마 2010. 3. 25. 14:30
    - 이벤트는 센서에 의해 감지된 정보/다른 센서 노드로부터 패킷이 도착한 경우 발생
    - 하나의 프로그램은 이벤트 처리를 위한 이벤트 핸들러들의 집합이 됨
      ㅁ 이벤트 핸들러는 ISR, 컴포턴트, 모듈, 메시지 핸들러 등의 이름으로 불림
    - 따라서 저용량 MCU에 적합 (센서 네트워크 연구 초기-2000년-에 주로 채택)
   
    - Event model의 장점
      ㅁ HW 리소스를 적게 사용하며 프로그래밍이 간단함
      ㅁ stack이 하나이며 모든 프로그램이 이를 공유
      ㅁ context swithing overhead가 없음
     
    - Event model의 단점
      ㅁ 이벤트의 추가/삭제 시, 주변 이벤트의 상태 천이를 고려해야 함
         
    - 이벤트 기반 모델 유형
      ㅁ 가장 간단한 이벤트 모델: purely interrupt-driven execution
          - 이벤트는 HW 인터럽트만 정의
          - 이벤트가 중첩 발생할 경우 무시됨
      ㅁ 이벤트 모델 - Purely event-driven
          - Event queue에 HW 인터럽트를이 queueing 됨
          - Task Scheduler가 Event queue에서 event를 꺼내와 적절한 Handler를 dispatch
          - Event가 중첩 발생할 경우 queueing되므로 모두 처리 가능
      ㅁ 이벤트 모델 - Coorperate event-driven
          - Event handler가 Event queue에 event를 등록시킬 수 있음
          - Event handler간 협업이 가능해짐
      ㅁ 이벤트 모델 - Polling
          - Event flag라는 register를 두어, ISR에서 이를 setting
          - Poll handler가 event flag를 매번 확인하여 추가적인 handler를 event queue에 삽입
          - Event handler와 event간의 1:1 mapping 관계를 개선
          - non-preemptive임
    - TinyOS
      ㅁ 최초의 센서 노드 운영 체제
      ㅁ 컴포넌트 기반의 프로그램 구조
      ㅁ 상태 머신 프로그래밍 모델을 기반
      ㅁ 각각의 컴포넌트가 해당 상태를 나타내며,
      ㅁ 컴포넌트의 커맨드 또는 이벤트 핸들러들은 한 상태에서 다른 상태로 빠르게 전이
      ㅁ CPU가 사용되지 않을 경우 휴지 상태로 들어가게 함으로써 불필요한 전력 소모를 줄임