무기명 세마포어

System Program/semaphore 2014. 3. 10. 16:18

1. 무기명 세마포어

 

무기명 세마포어는 응용프로그램이 할당한 메모리에 저장된 sem_t형의 변수다.

세마포어는 프로세스나 쓰레드가 공유하는 메모리 영역에 위치함으로써 사용하는 프로세스나 쓰레드에

가용하도록 만들어진다.

 

무기명 세마포어는 세마포어를 감소, 증가 및 현재값 등을 얻어오는 함수들은 앞의 기명 세마포어와

동일하게 사용하고 무기명 세마포어를 초기화하고 종료하는 함수만 다르다.

 

2. 무기명 세마포어 초기화

 

세마포어를 초기화하고 프로세스간에 또는 쓰레드간에 공유되는지 여부를 시스템에 알린다.

 

#include <semaphore.h>

 

int sem_init(sem_t *sem, int pshared, unsigned int value);

 

성공하면 '0'을 리턴하고, 에러가 발생하면 '-1'을 리턴

 

초기화 함수에서 pshared가 '0'이면 프로세스내의 쓰레드간에 공유를 의미하며

'0'이 아니면 큰 값은 프로세스간의 공유를 의미한다.

하지만 어디까지나 pshared 설정에 따른 동작은 시스템 의존적이며 단지 호환성을 맞추기위해 위에 기술한 것처럼

프로그램을 작성하는 것이 맞다.

 

3. 세마포어 종료

 

#include <semaphore.h>

 

int sem_destroy(sem_t *sem);

 

성공하면 '0'을 리턴하고, 에러가 발생하면 '-1'을 리턴

 

 

 

 

'System Program > semaphore' 카테고리의 다른 글

기명 세마포어 함수  (0) 2014.03.10
: