Real-time EXecutive(REX) 삼성 2011.02.09 00:17



REX는
퀄컴에서 제작한 매우 작은 실시간 운영체제(RTOS)입니다. 4K ROM, 400byte RAM과 500 byte STACK으로 기본적으로 임베디드 시스템에 들어가기 때문에 적은 부하를 우선시 하는 경향이 있습니다.

우선순위가 표시된 TASK들의 집합으로 이루어져 있는데, 여기서 TASK란 흔히 말하는 Thread 혹은 Process라고 말할 수 있습니다. 이러한 TASK들을 REX가 관리를 하며 동적으로 생성되는 TASK들을 우선순위에 따라 인터럽트를 걸고, 처리하게 되는데 이를 얼마나 효율적으로 하는지에 따라 성능이 결정됩니다.

일단 REX가 선점형 OS이기 때문에 가장 높은 우선순위를 가진 TASK는 대기 없이 무조건 수행하게 됩니다. 이로인해 발생되는 Starvation을 어떻게 처리하는지는 아직 잘 모르겠네요ㅠ

기본적으로 휴대폰에 올려진 임베디드 시스템 관련 하여 디버깅 시 Trace32를 많이 사용합니다. 저 역시 삼성전자에서 인턴을 하면서 Trace32에 대해서 많이 배우고 있습니다.ㅋㅋ 아무튼 이러한 REX의 TASK들을 관리하는 TCB(Task Control Block) 구조체를 살펴보아 wait-signal과 같은 signal들을 살펴보기도 합니다.

TCB는 REX의 TASK들을 관리하는 일종의 구조체 인데요, TASK에 관한 다양한 정보를 담고 있으며 TASK들 간의 Context-Switching을 위해 STACK에서 PUSH되고 POP되곤 합니다. 이러한 Context-Switching은 각 TASK들이 가지고 있는 STACK의 맨 윗부분인 Context Frame에 저장된 Content들을 가리키는 포인터를 TCB에 저장하고 Context-Switching 후 복구시 그 포인터를 TCB에서 다시 불러와 SP(Stack Pointer)를 복구하는 방식을 따릅니다.


※ 본 내용은 지속적으로 업데이트 될 예정입니다.

'삼성' 카테고리의 다른 글

Galaxy S8 | S8+  (0) 2017.03.30
Real-time EXecutive(REX)  (0) 2011.02.09
갤럭시 그 두번째, 센느  (0) 2011.02.06