무기명 세마포어
System Program/semaphore 2014. 3. 10. 16:181. 무기명 세마포어
무기명 세마포어는 응용프로그램이 할당한 메모리에 저장된 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 |
---|