스크린샷 2023-10-19 오후 4.01.29.png


세마포어

(프로세스)
int mutex = 1;

while(true) { 
	wait(mutex); // P 연산
	// 임계 영역

	signal(mutex); // V 연산
	// 나머지 영역
}

임계영역 갔을 때 아무것도 없으면 → 대기큐에 들어간다

task3은 반드시 task1이 끝난 후에 실행


뮤텍스 VS 세마포어

뮤텍스

  1. 락을 가진 프로세스만 락을 해제 가능
  2. 뮤텍스는 proiority inheritance 속성을 가짐 —> 빨리 락을 풀어주기 위함(뮤텍스만 가지는 속성)
    1. 우선순위를 높여주어 빨리 할 일을 끝내게끔 하는 것
  3. 상호배제 = 뮤텍스

세마포어

  1. 상호배제 + 실행 순서 동기화 = 세마포어