뮤텍스 & 세마포어

Linux/Embedded System 2014. 12. 1. 15:31 Posted by gaeddong2

뮤텍스

 

뮤텍스는 Pthread에서 제공하는 동기화 메커니즘으로 공유 자원 공간에 대한 접근 시간 제어로 동기화를 달성한다.

상호 배제는 잠금 형식으로 이루어진다. 열쇠를 얻어야 임계 영역에 진입할 수 있다. 임계 영역을 빠져나오면 열쇠를 되돌려줘서 다른 쓰레드가 열쇠를 얻을 수 있도록 한다.

 

세마포어

 

공유 리소스에 접근할 수 있는 최대 허용치만큼 동시에 사용자 접근을 할 수 있게 한다. 쓰레드가 접근을 요청하면 세마포어에서 카운트가 하나 줄어들고, 리소스 사용을 마치면 카운트가 하나 증가한다.

1.     임계영역 설정

2.     임계 영역 진입 전 세마포어 값 확인

3.     값이 0보다 크면 임계역 진입. 세마포어 값 1 감소

4.     세마포어 값이 0이면 값이 0보다 커질 때까지 Block되며, 0보다 커지게 되면 다시 2번부터 시작.

 

'Linux > Embedded System' 카테고리의 다른 글

펌웨어 (Firmware)  (0) 2014.12.04
FPGA란  (0) 2014.12.03
쓰레드 풀링 (Thread Poling)  (0) 2014.12.01
선점형(preemptive) & 비선점형(non - preemptive)  (0) 2014.11.24
U-boot란 무엇인가  (0) 2014.11.24