[FreeRTOS] Inter Task Communication

 보통 프로세스간 통신을 IPC (Inter Process Communication) 라고 많이 부르지만, RTOS 에서는 보통 프로세스 보다는 Task 라는 용어를 사용하므로 ITC (Inter Task Communication) 가 될 수 있겠다.


목적은 Task 또는 ISR(Interrupt Service Routine) 이 다른 Task에게 정보 전달 하는 것 이다.


이를 수행하는 방법에는 다음과 같은 방법들이 있다.

 ⁜ 전역 변수 사용 ( 상호 배제에 유의 하여야 함 )

 ⁜ 이벤트 플래그, 세마포어 : 이벤트 발생 여부만 알려 줌

 ⁜ 메일박스, 메시지 큐 : 이벤트와 데이터도 함께 전달


세마포어로 구현하는 이벤트 전달 방법은 아래와 같을 수 있다.


Task는 Semaphore Take를 통해 Blocked 상태에 진입하게 되고,

다른 Task 또는 ISR로부터 Semaphore를 Give 받았을 때 blocked 상태에서 깨어 나게 된다.

양방향의 경우, ISR → Task 는 일반적인 이벤트 전달 방향이지만, 그 반대 방향 (TASK → ISR) 은 보통 사용 되지 않는다.

이 블로그의 인기 게시물

Crusader Kings 3 - Converting DNA code using Portrait Editor