강의

멘토링

커뮤니티

Inflearn コミュニティ Q&A

madlife91614707 のプロフィール画像
madlife91614707

投稿した質問数

FreeRTOSプログラミング

ソースコード分析 - vTaskSuspend

강의 "소스코드 분석-vTaskSuspend" 관련 질문 드립니다!

作成

·

414

·

編集済み

1

안녕하세요 강사님 :) 스케줄링 관련 질문이 있어 글을 남깁니다.

Task2보다 우선 순위가 높은 Task1 이 vTaskDelay(1000)로 1초 동안 blocked 상태였다가 다시 ready상태로 돌아왔을 때, 혹은 vTaskSuspend() 함수로 인해 blocked상태였다가 vTaskResume() 을 통해 다시 ready상태가 됐을 때 만약 자신보다 우선순위가 낮은 Task2가 running 상태라면 우선순위가 더 높은 Task1이 ready상태이니 Task2는 running 상태에서 쫒겨나고, Task1이 running 상태가 되는 것이 맞습니까?

그리고 이 때 Task2는 어떤 작업에 의해 어떤 상태가 되는지(blocked? ready?)도 궁금합니다!!

운영체제임베디드FreeRTOS

回答 2

1

guileschool님의 프로필 이미지
guileschool
インストラクター

안녕하세요. madlife9161님!

TASK1(higher) 태스크가 휴면상태에서 깨어나면, 커널에서는 이 태스크가 가장 우선순위가 높은지(HPT(Highest Priority Task) ? 판단해서 맞다면 선점을 시켜서 TASK1(higher) 태스크가 실행(running) 상태로 바뀌고 그전에 실행되고 있던 태스크(TASK2)는 ready 상태로 전환됩니다. 물론 시간이 흘러 이 TASK2 가 HPT(Highest Priority Task) 가 되면 다시 실행될 수 있겠지요.

0

madlife9161님의 프로필 이미지
madlife9161
質問者

답변 감사합니다ㅎㅎ!

madlife91614707 のプロフィール画像
madlife91614707

投稿した質問数

質問する