본문 바로가기

CS/운영체제

세마포(Semaphores)

세마포(Semaphores)

- 동기화 문제 해결을 위한 소프트웨어 도구

 

세마포의 구조

- value(number of permit), P 동작(acquire), V 동작(release)

 

acquire(){

    value = value - 1;

    if(value < 0){

        acquire를 호출한 쓰레드를 큐안에 집어넣음(봉쇄)

    }

}

 

release(){

    value = value + 1;

    if(value <= 0){

        큐 안에 있는 한 쓰레드를 꺠워서 가져온다(석방)

    }

}

 

세마포 용도

  1.  Mutual exclustion(상호 배타)으로 한번에 한 쓰레드만 허용
  2.  Ordering(순서 제어)으로 쓰레드 흐름 제어(ex. 출금전에 입금먼저, 교대로)

 

'CS > 운영체제' 카테고리의 다른 글

교착 상태  (0) 2023.02.10
전통적 동기화 예제  (0) 2023.02.09
프로세스 동기화  (0) 2023.02.07
쓰레드(Thread)  (0) 2023.02.06
CPU 스케쥴링(CPU Scheduling)  (1) 2023.02.05