임베디드 시스템과 펌웨어
선점형 RTOS에서 우선순위가 낮은 태스크가 실행 중일 때, 우선순위가 높은 태스크가 기다리던 데이터를 받아 실행 가능한 상태가 되었습니다. 일반적으로 어떻게 됩니까?
- A낮은 태스크가 스스로 끝날 때까지 높은 태스크는 기다린다
- B두 태스크가 모두 멈추고 마이크로컨트롤러가 재시작한다
- C낮은 태스크를 도중에 멈추고 즉시 높은 태스크로 전환한다
정답과 해설 보기
정답: C. 낮은 태스크를 도중에 멈추고 즉시 높은 태스크로 전환한다
선점형 RTOS에서는 인터럽트 등을 계기로 우선순위가 높은 태스크가 실행 가능한 상태가 되면, 커널이 실행 중인 낮은 태스크의 상태를 저장하고 멈춘 뒤 높은 태스크로 전환합니다. 높은 태스크가 끝나거나 대기 상태가 되면 낮은 태스크가 이어서 재개합니다. 그래서 높은 우선순위 처리의 응답 시간을 짧고 예측하기 쉽게 할 수 있습니다.