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가 사용되지 않을 경우 휴지 상태로 들어가게 함으로써 불필요한 전력 소모를 줄임
- 하나의 프로그램은 이벤트 처리를 위한 이벤트 핸들러들의 집합이 됨
ㅁ 이벤트 핸들러는 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가 사용되지 않을 경우 휴지 상태로 들어가게 함으로써 불필요한 전력 소모를 줄임