Task is preempted by higher priority task.

declspec의 이미지

멀티 태스킹이 구현되는 과정이 저는

task1 이 정상적으로 수행되고있다가

hardware timer inturrupt 가 걸리고

이때 task1 의 상태가 저장되고 다른 태스크로 넘어가고...

이런 방식인줄 알았는데

제목에 있듯이

Task is preempted by higher priority task.

리눅스 커널책의 태스크 스케줄링 부분에 저런말이 있더군요

위의 말대로라면 higher priority task 가 없다면

멀티태스킹이 안일어나는거 아닌가요?

그리고 higher priority task 가 생겨나는 순간 preempt 되는건지...?

그게 무슨말인지 잘 이해가 안가네요

익명 사용자의 이미지

그냥 단순히 문장만 보면 높은 우선순위를 갖는 태스크에 의해 선점되는건데,
만일 런큐에 나(태스크)만 있다면 스위칭 루틴 이후 다시 내가 CPU를 할당 받게 되겠죠.

그리고 더 높은 우선순위의 태스크가 생겨나는 순간 선점되는건 아니고,
스위칭 되는 조건일 때 더 높은 우선순위 태스크가 있으면 그걸 실행한다는 말입니다.