-
10.세마포어(Semaphore), 뮤텍스(Mutex)Computer Science/Operating System 2021. 8. 24. 20:43
∙임계 구역(Critical Section)
∘여러 프로세스가 공유 데이터를 접근하는 프로그램 코드 부분
∙세마포어
∘멀티프로그래밍 환경에서 공유 자원에 대한 접근을 제한하는 방법
-P: 임계 구역 들어가기 전에 수행(ex)S==1->S==0)
-V: 임계 구역에서 나올 때 수행(ex)S==0->S==1)
-S는 0이상의 정수
∙뮤텍스
∘임계 구역을 가진 스레드들의 실행시간이 서로 겹치지 않고 각각 단돈으로 실행되게 하는 기술
-lock: 현재 임계 구역에 들어갈 권한을 얻음(다른 프로세스/스레드가 임계 구역 수행 중이면
종료까지 대기)
-unlock: 임계 구역을 모두 사용했음을 알림(대기 중인 다른 프로세스/스레드가 임계 구역에
진입)
-S==1인 이진 세마포어
➀데커(Dekker) 알고리즘
-flag와 turn 변수를 통해 임계 구역에 들어갈 프로세스/스레드를 결정하는 알고리즘
-flag: bool 타입의 배열(flag[i]=true->flag[i]=false)<->(flag[j]=false->flag[j]=true)
-turn: 현재 임계 구역을 사용 중인 변수(turn=i->turn=j)<->(turn=j->turn=i)
➁피터슨(Peterson) 알고리즘
-데커와 유사하지만 다른 프로세스/스레드에게 진입 기회를 양보하는 것에 차이가 있음
➂제과점(Bakery) 알고리즘
-여러 프로세스/스레드 중 가장 작은 수의 번호표를 가지고 있는 프로세스가 임계 구역에
진입하는 알고리즘
-현재 실행 중인 프로세스 중에 가장 큰 번호 배정
-모든 프로세스 번호와 비교하여 가장 작은 수의 번호표일 때 진입
-임계 구역 사용 종료 시 번호를 0으로 초기화출처
'Computer Science > Operating System' 카테고리의 다른 글
12.페이지 교체 알고리즘 (0) 2021.08.26 11.페이징(Paging), 세그먼테이션(Segmentation) (0) 2021.08.25 9.경쟁 상태(Race Condition) (0) 2021.08.23 8.데드락(Dead Lock) (0) 2021.08.22 7.CPU Scheduling (0) 2021.08.21