inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

FreeRTOS 프로그래밍

우선순위역전

우선순위역전 상황 질문

300

아이스

작성한 질문수 3

1

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

안녕하세요 강사님,

세마포어 먼저 TAKE한 태스크가 실행된다고 배웠는데요

TASK3이 실행하고 있으니 이것을 GIVE하기 전에는 TASK1이 블락되는것은 이해했습니다.

그런데 TASK2는 왜 갑자기 실행되는 거죠.?

 

TASK3이 GIVE했다면 우선순위가 높은 TASK1이 실행되어야 하고

TASK3이 GIVE하지도 않았는데 TASK2가 실행된 경우는 무슨경우나요.. TASK2는 세마포어와 관련없는 특정 동작이라 선점한 걸로 보면 될까요..? 상황 설명이 부족해서 헷갈립니다..

 

저는 오로지 이 강의로만 공부하고 있기 때문에

경험이 많으신 강사님의 설명이 이해가 잘 안되네요

답변 미리 감사합니다.

 

 

 

 

 

운영체제 임베디드 FreeRTOS

답변 1

1

홍영기

안녕하세요. 아이스님!

질문 글에서 이런 표현을 하셨더라구요.

TASK2는 세마포어와 관련없는 특정 동작이라 선점한 걸로 보면 될까요..? => 네 맞습니다 ^^

RTOS 실행 환경의 가장 중요한 원칙은 "우선 순위가 가장 높은 태스크가 실행(run) 된다" 입니다.

어떤 상황에서도 지켜져야 할 규칙이죠. 우선순위가 낮은 T3가 실행하고 있는 임계구역을 T1 이 실행하게 되면 T1 은 스스로 휴면상태로 들어가죠. 그뿐입니다.

T3가 임계구역을 실행하고 있고, T1 은 잠자고 있고, T2가 선점하겠다는데 아무 문제 될 것이 없습니다.

T2는 T3 을 당연히 선점할 수 있고, 선점합니다.

만약에 포팅을 할때 1년에 한번 잡는 치명적인 문제를 해결하는 코드가 들어갔다고 가정하면

0

57

2

STM32 포팅할 때 STM32 Project가 없음

0

166

2

FreeRTOS 멀티코어 지원안됨?

0

87

2

[소스코드 분석-configUSE_TIME_SLICING] TASK1,2의 우선순위가 동일할 때, configUSE_TIME_SLICING값 변경에 따른 출력 변화

0

83

2

포팅 부탁드립니다!

0

60

1

포팅 부탁드립니다. <NUCLEO-G071RB>

0

67

2

상호배제 후 되지를 않아서 질문드립니다.

0

61

1

수료증 발급 기준 수정 요청

1

72

1

재진입가능여부에 관한 질문

1

66

1

01_TASKMAN프로젝트 디버깅 모드 실패

1

77

2

그러면 malloc/free가 아닌 동적할당자를 써서 메모리를 할당했기떄문에

1

70

2

실행순서

1

76

2

uart 전송중에는 스위칭이 금지되나요?

1

74

2

스택오버플로우 실습 중 stack size 설정 질문

0

81

2

포팅 원합니다.

2

77

2

코루틴 실습질문

1

100

2

TODO 2번 문제

1

141

4

10. 선점형 커널 그림 설명중 우선순위가 반대인 경우에도 Task B가 먼저 수행되나요?

1

82

2

디버거모드에 진입이 안됩니다.

0

176

2

prvExampleTaskHook 함수 호출 부분에 대해 문의드립니다.

0

119

2

보드 STM32H735IG와 강의 호환 여부 문의

1

153

3

[ L152RE ] 원샷 소프트타이머 실행 잘 되시나요?

1

159

2

Deferred Interrupt Processing 샘플 예제 문의 드립니다.

1

121

2

포팅 서비스 부탁드립니다

1

125

2