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
'임베디드 관련 > FreeRTOS' 카테고리의 다른 글
[FreeRTOS] log파일 출력 (0) | 2024.11.29 |
---|---|
[FreeRTOS] 이진 세마포어, 뮤텍스 사용법 및 비교 (0) | 2024.09.14 |
[FreeRTOS] ISR 내에서 임계구역 설정 (0) | 2024.09.13 |
[FreeRTOS] Task 전환 제어 (0) | 2024.09.11 |
[FreeRTOS] 인터럽트 비활성화 및 활성화하는 방법 (0) | 2024.09.10 |
댓글