ㅁ 프로그래밍 모델
- 유한 상태 머신 기반 모델
ㅁ 장점
- 프로그램이 간단, 작은 코드 이미지
ㅁ 단점
- 새로운 기능 추가 시 기존 상태들과의 의존성 및 예외 처리에 세심한 고려 필요
- SW 확장에 대한 제약성 및 프로그래밍이 힘듬
- 컴포넌트 기반 모델
ㅁ 장점
- 높은 모듈성을 가지므로 독립적인 SW 모듈의 재사용성 및 확장성을 가짐
ㅁ 단점
- 컴포넌트 설계 시, 타 컴포넌트들과의 의존성 및 인터페이스 등을 신중이 고려해야 함
- 사용자 측면에서 새로운 컴포넌트와 응용 프로그래밍이 어려움
- 전통적 API 기반 모델
ㅁ 장점
- 사용자에게 친숙한 프로그래밍 환경 제공하며 프로그래밍이 쉬움
ㅁ 단점
- 필요한 모든 기능을 API로 구현해야 하므로 코드 이미지가 커지고 로직이 복잡해짐
ㅁ Scheduling model
- 비선점 (run to completion)
ㅁ 장점
- 태스크들 간의 우선 순위와 스케줄링을 고려하지 않아도 되므로 구현이 용이
- 문맥 교환에 대한 오버해드가 적음
ㅁ 단점:
- cpu 사용율이 낮고 병행 제어가 안됨
- 선점
ㅁ 장점
- 병행 제어가 가능
ㅁ 단점
- 스케줄링을 잘 고려해야 하며, 문맥 교환에 대한 오버해드가 큼
ㅁ 수행 제어 모델
- 이벤트 구동 방식
ㅁ 장점
- 이벤트 수행에 비선점 방식의 스케둘링 사용
- 구현이 단순하고 실행 이미지가 작음
- 문맥 교환이 불필요
- 단일 스택을 가지므로 요구되는 데이터 메모리 크기가 작음
ㅁ 단점
- 인터럽트와 같은 이벤트에 의해 태스크가 처리되므로 태스크들간의 유연한 스케줄링이 힘듬
- 따라서 복잡한 센서 노드 응용에 적용하기가 힘듬
- 멀티 스레딩 방식
ㅁ 장점
- 이벤트 구동 방식보다 프로그램의 용이성과 스케줄링 유연성 우수
- 복잡한 센서 노드 응용 프로그램을 구현하는데 장점
ㅁ 단점
- 각 태스크마다 별도의 스택이 요구
- 태스크 들 간의 문맥 교환에 따른 오버헤드가 큼
- 스케줄링 정책/응용 프로그래밍에 대한 세심한 고려 필요
- 태스크들 간의 동기화, 통신을 위한 API 등이 필요
- 디버깅이 매우 힘듬
ㅁ 소프트웨어 구조 모델
- 단선 (monolithic) 구조: HW 종속 코드와 독립 코드들간의 계층적 경계가 없고 기능별 모듈이 없음
ㅁ 장점
- 구현이 쉬움
ㅁ 단점
- HW 플랫폼 변경 시 소스 전 영역에 대한 수정이 필요
- 재사용성, 이식성이 현저히 저하됨
- 모듈 구조: HW 종속 코드와 독립 코드들 간의 계층적 경계없이 소프트웨어 기능 중심으로 구분
ㅁ 장점
- 단선적 구조보다는 소프트웨어 확장이 용이하고 모듈 재사용성이 우수
ㅁ 단점
- HW 플랫폼 변경 시 모든 소프트웨어 모듈의 수정과 모듈간의 의존성을 신중히 고려해야 함
- 수직적 (vertical) 계층 모델: 추상화를 통해 HW 독립 계층과 종속 계층을 분리함
ㅁ 장점
- 운영 체제의 확장이 용이
- HW 플랫폼이 변경되더라도 HW 독립 계층에는 수정 없이 사용 가능
ㅁ 단점
- 구현이 복잡하고 코드가 커짐
- 수직 수평적 (vertical-horizontal) 계층 모델: 수직적 계층 구조에서 동일한 계층의 SW 모듈간 독립성을 개선
ㅁ 장점
- SW 모듈에 대한 확장성, 재구성 및 재사용이 용이
- 플랫폼 기반의 프로그래밍 환경 구성이 가능
ㅁ 단점
- SW 모듈 간의 인터페이스 및 의존성을 잘 고려하여야 함
'IT 이야기 > IT' 카테고리의 다른 글
[센서 노드 운영 체제 정리 (5/6)] Thread model 정리 (0) | 2010.03.25 |
---|---|
[센서 노드 운영 체제 정리 (4/6)] Event model 정리 (0) | 2010.03.25 |
[센서 노드 운영 체제 정리 (2/6) 센서 노드 운영 체제 모델 (0) | 2010.03.25 |
[센서 노드 운영 체제 정리 (1/6)] 개요 (0) | 2010.03.25 |
[센서 HW 교육] 한국 RFID USN 협의회 (0) | 2010.03.24 |