[OS] 31장: Semaphore
·
🖥️ Computer Science/Operating System
31장: SemaphoreSemaphore APIsem_init(세마포어 변수, 0, 초기값)세 번째 매개변수는 음수가 될 수 없음sem_t s;sem_init(&s, 0, 1); // 초기값 1sem_wait(&s)sem 값을 하나 감소 시킴감소시켰는데, 결과가 0 이상이면 바로 반환감소시켰는데 음수이면 0될 때까지 대기sem 값이 음수일 때, 절대값은 대기 중인 스레드 수와 같음sem_post(&s)세마포어 값 하나를 증가시킴대기 중인 스레드가 있다면, 하나를 깨움 (큐로 동작)이진 세마포어: Lock으로 활용하기sem_t s;sem_init(&s, 0, 1);sem_wait(&m);// 여기에 임계영역 코드 작성sem_post(&m);0번 스레드가 wait()하고 임계영역 진입1번 스레드가 wait..
kyxxn
'2024/07/04 글 목록