[ CODE ] mutex, semaphore

38A·2023년 6월 7일
0

Operating System

목록 보기
14/14
post-thumbnail

✔️ Mutex

#include <pthread.h>

pthread_mutex_t mutex; // global declaration
pthread_mutex_init(&mutex, NULL); // call before first lock

/* or */

pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;

pthread_mutex_lock(&mutex); // wait
/* critical section */
pthread_mutex_unlock(&mutex); // signal

✔️ Unnamed Semaphore

#include <semaphore.h>

sem_t sem; → no pointer // global declaration
sem_init(&sem, 0, 1); // third parameter : # of ticket

sem_wait(&sem); // acquire the semaphore
/* critical section */
sem_post(&sem); // release the semaphore

✔️ Named Semaphore

sem_t *sem; // global declaration
sem = sem_open("SEM", O_CREAT, 0666, 1);

sem_wait(sem); // acquire the semaphore
/* critical section */
sem_post(sem); // release the semaphore
profile
HGU - 개인 공부 기록용 블로그

0개의 댓글