임베디드 시스템과 펌웨어

선점형 RTOS에서 우선순위가 낮은 태스크가 실행 중일 때, 우선순위가 높은 태스크가 기다리던 데이터를 받아 실행 가능한 상태가 되었습니다. 일반적으로 어떻게 됩니까?

  1. A낮은 태스크가 스스로 끝날 때까지 높은 태스크는 기다린다
  2. B두 태스크가 모두 멈추고 마이크로컨트롤러가 재시작한다
  3. C낮은 태스크를 도중에 멈추고 즉시 높은 태스크로 전환한다
정답과 해설 보기

정답: C. 낮은 태스크를 도중에 멈추고 즉시 높은 태스크로 전환한다

선점형 RTOS에서는 인터럽트 등을 계기로 우선순위가 높은 태스크가 실행 가능한 상태가 되면, 커널이 실행 중인 낮은 태스크의 상태를 저장하고 멈춘 뒤 높은 태스크로 전환합니다. 높은 태스크가 끝나거나 대기 상태가 되면 낮은 태스크가 이어서 재개합니다. 그래서 높은 우선순위 처리의 응답 시간을 짧고 예측하기 쉽게 할 수 있습니다.

이 분야 연습하기 분야로 돌아가기

임베디드 시스템과 펌웨어의 다른 문제

  1. RTOS에서 발생하는 우선순위 역전의 설명으로 올바른 것은 무엇입니까?
  2. 우선순위 역전을 막기 위해 사용되는 '우선순위 상속'의 개념으로 올바른 것은 무엇입니까?
  3. RTOS에서 센서를 읽는 태스크에서 표시하는 태스크로 데이터를 전달할 때 큐(메시지 큐)를 사용하는 이점으로 올바른 것은 무엇입니까?
  4. 하드 리얼타임과 소프트 리얼타임의 차이로 올바른 것은 무엇입니까?
  5. 워치독 타이머를 리셋(킥)하는 처리를 1 ms마다의 타이머 인터럽트 핸들러 안에서 무조건 수행하는 것이 좋지 않은 이유로 올바른 것은 무엇입니까?

이 분야의 비교