본문 바로가기
임베디드 관련/FreeRTOS

[FreeRTOS] 동기화

by minhyeok.lee 2024. 9. 15.
반응형

xSemaphoreTake(), xSemaphoreGive() (뮤텍스 또는 세마포어)

특정 자원을 보호하기 위해 세마포어 또는 뮤텍스를 사용하여 태스크 간 동기화를 위한 수단이다.


※ 동기화란?

2024.05.21 - [소프트웨어 공학 용어 정리] - [SW 용어] 동기화(Synchronization), 임계 영역(Critical Section)

 

[SW 용어] 동기화(Synchronization), 임계 영역(Critical Section)

동기화(Synchronization)1. 동기화는 시스템을 동시에 작동시키기 위해 여러 사건들을 조화시키는 것을 의미한다.2. 병행성과 관련해서 공유되는 자원에 대한 이해와 공유자원 사용과 관련해서 생길

kfdd6630.tistory.com

 


세마포어는 하나의 태스크만 자원에 접근할 수 있도록 하고, 뮤텍스는 자원에 대한 독점적 접근을 보장한다.

여러 태스크가 공유 자원에 접근할 때, 태스크 간 경합을 방지하기 위해 사용된다.

 

사용방법에 대한 자세한 설명은 아래와 같다.

2024.09.14 - [임베디드 관련/FreeRTOS] - [FreeRTOS] 이진 세마포어, 뮤텍스 사용법 및 비교

 

[FreeRTOS] 이진 세마포어, 뮤텍스 사용법 및 비교

세마포어(Semaphore)와 뮤텍스(Mutex)1. FreeRTOS에서 여러 태스크 간의 동기화와 공유 자원 보호를 위한 주요 동기화 도구이다.2. 이 두 개념은 태스크들이 동시에 접근할 수 없는 공유 자원(예: 하드웨

kfdd6630.tistory.com

 

 

 

 

다른 임계구역 설정인 taskENTER_CRITICAL()과 차이점은?

1. taskENTER_CRITICAL()이 전역적으로 인터럽트를 차단한다.

2. 뮤텍스나 세마포어는 태스크 간의 자원 접근을 제어하여 인터럽트를 차단하지 않고 자원을 보호한다.

2024.09.10 - [분류 전체보기] - [FreeRTOS] 임계구역 설정

 

[FreeRTOS] 임계구역 설정

taskENTER_CRITICAL(), taskEXIT_CRITICAL() FreeRTOS에서 임계구역을 설정하여 자원 혹은 Task의 CPU 등이 선점되지 않게 하여 자원의 불일치 혹은 중단 없는 안전한 작업을 수행하는 방법이다. ※ 임계구역이

kfdd6630.tistory.com

 

 

 

반응형

댓글