Table of Contents
Semaphore는 실시간 운영 체제 (RTOS)에서 사용되는 동기화 도구로 공유 리소스에 액세스 할 수 있습니다. 그들은 충돌을 방지하고 여러 작업 또는 스레드가 동시 작동 할 때 데이터 무결성을 보장합니다.
Semaphore 란 무엇입니까?
semaphore는 간단한하지만 유용한 요약을 제공하는 변수 또는 요약 데이터 유형입니다 공유 리소스에 액세스 제어. 그것은 특정 수로로 초기화 될 수 있습니다, 사용할 수있는 리소스의 수를 나타내는.
Semaphores의 유형
두 가지 주요 유형의 semaphores가 있습니다.
- Counting Semaphores: 이 트랙의 수를 사용할 수 있는 자원과 증가 또는 감소 될 수 있습니다.
- Binary Semaphores: 이 두 가지 주, 0 및 1, 같은 잠금 또는 뮤텍스 기능.
RTOS에서 Semaphores 적용
Semaphores는 공유 데이터 또는 하드웨어에 액세스 할 수있는 작업을 동기화하는 데 사용됩니다. 작업이 리소스를 필요로 할 때 대기 (또는 decrement) 작업을 수행합니다. semaphore 값이 0 인 경우 리소스가 유효 할 때까지 작업 블록.
작업이 리소스를 출시 할 때 신호 (또는 증가) 작업을 수행하고 잠재적으로 다른 대기 작업을 차단합니다. 부종 이동의 Proper 사용은 인종 조건과 deadlocks을 방지합니다.
가장 좋은 연습
효과적으로 RTOS에서 semaphores를 사용하려면 다음을 고려하십시오.
- 정확한 수를 가진 semaphores를 초기화하십시오.
- 대기 및 신호 작업이 지속적으로 사용됩니다.
- 필요한 것보다 더 이상 semaphores를 붙들지 마십시오.
- deadlocks를 방지하기 위해 timeout 메커니즘을 구현합니다.