[2장]Synchronization(2)

임정환·2023년 6월 8일
0

운영체제

목록 보기
6/8

세마포어


상호 배타적인 공유 자원의 접근을 위한 0이상의 정수형 변수 '세마포어'를 설정한다.
임계 구역에 접근할 시에, 세마포어가 1이상일 경우 1을 감소시키고 임계 영역에 접근한다.만일 세마포어가 0이라면 더 이상 접근할 수 없으므로 waiting한다.
임계 영역을 나올 시에, 세마포어를 1 증가시키고 waiting 중인 쓰레드에게 알려준다.
각 action은 atomic하게 이루어져야 한다.

두 가지 타입의 세마포어

  • 0과 1만 존재하는 이진 세마포어
  • N개를 가진 카운팅 세마포어

상호 배제적 접근과 동기화를 세마포어를 통해 해결하자

  • 상호 배제적 접근 : 이진 세마포어
  • 쓰레드 동기화 : 카운팅 세마포어
profile
CS 박제

0개의 댓글