MicroC/OS-III

위키백과, 우리 모두의 백과사전.

MicroC/OS-III ( µC/OS-III 혹은 µC/OS-III 로 통용')은 Micro-Controller Operating Systems Version 3의 약어이다. 이는 C 언어 기반으로 작성된 마이크로프로세서를 위한 저비용 우선순위 기반 선점형 실시간 운영체제 커널이다. 2009년에 소개되었으며 주로 임베디드 시스템에 적용하기 위해 만들어졌다. 무제한의 태스크, 세마포어, 뮤텍스, 이벤트 플래그, 메시지 큐, 타이머와 메모리 파티셔닝을 제공한다. 사용자는 모든 커널 오브젝트를 실행 시간에 할당한다.

추가된 기능[편집]

  1. µC/OS-III는 성능 및 확장성을 위해 µC/TCP-IP, µC/GUI, µC/File System, µC/USB, µC/CAN, µC/Modbus, µC/Bluetooth등의 소프트웨어 패키지와의 결합을 허용한다.
  2. 태스크를 모니터링 하기 위해 스택 증가를 허용하는 기능을 제공한다. 태스크의 크기는 제한되지 않기 때문에 CPU 사용량을 바탕으로 최소의 사이즈를 가져야 한다.
  3. 다중 태스크가 동일한 우선순위 레벨에서 작동하는 것을 허용한다. 동일한 우선순위 태스크들이 실행 준비 상태일때, µC/OS-III는 사용자가 지정한 시간에 맞춰 각각 실행한다. 각각의 태스크는 양자화된 시간을 정의할 수 있고, 태스크가 그 시간을 모두 채울 필요가 없을 땐 주어진 타임 슬라이스를 내어주게 된다.
  4. 소프트웨어 구조가 설계된 방식은 여타 아키텍처에 쉽게 포팅될 수 있게 했다.
  5. 태스크 스택들은 각각의 태스크마다 크기가 자유로운 스택을 제공하기에 더 나은 공간 관리를 허용한다.
  6. 커널은 255단계의 인터럽트를 관리한다.
  7. 세마포어 없이 태스크를 시그널링 하는 것이 가능하다.
  8. 런타임에 설정 가능하다.

목표[편집]

µC/OS-III의 가장 중요한 목표는 응용 관점에서 쓸모있는 운영체제가 되는 것이다. µC/OS 포트는 µC/OS-III에서 작동하기 위해 수정 가해야 할 지 모르나, 응용 코드는 최소한의 변화만 요구되어야 했다. 또한, µC/OS-III는 µC/OS-II와 동일한 코어에 기반하고 있기 때문에 또한 신뢰성있다. 이는 특히 자원이 제한된 제품에서 유용하다.

커널[편집]

커널은 태스크 관리와 태스크간의 통신을 위한 멀티태스킹 시스템의 일부분이다. 커널의 핵심 기능은 바로 컨택스트 스위칭이다.

스케줄러[편집]

디스패처라고 불리기도 하는 스케줄러는 어떤 태스크가 다음에 작동하게 될지 결정하는 커널의 부분 요소이다. 대부분의 실-시간 커널은 우선순위 기반이다. 각 태스크는 중요도에 따라 우선순위가 부여된다. 각 태스크의 우선순위는 응용에 따라 다르다. 우선순위-기반 커널에서는 CPU의 제어권은 언제나 실행 준비가 된 최고-순위 태스크에게 부여된다. 최고-순위 태스크는 커널 타입이 비-선점형이냐 선점형이냐 따라 CPU를 받는 방식이 달라진다.

태스크 우선순위[편집]

우선순위는 각각의 태스크에 부여된다. 중요한 태스크 일수록, 더 높은 우선순위를 부여한다.