임계구역2 세마포어(Semaphore) 정의 세마포어는 공유자원이 하나 이상일 때 처리하는 동기화 방법이다. 세마포어는 교착 상태에 대한 해법으로 원자적 함수로 제어되는 정수 변수로 병렬 프로그래밍 환경에서 공유자원에 대한 접근 제어를 하는 방법 1개의 공유되는 자원에 제한된 개수의 프로세스 혹은 쓰레드가 접근할 수 있도록 한다. 원자성 여러 쓰레드가 존재할 때, 특정 시점에서 어떤 함수를 2개 이상 쓰레드가 동시에 호출하지 못하는 성질을 말한다. 이러한 성질을 보장한 함수를 원자적 함수라고 한다. 구성 세마포어는 두 가지 형태를 갖는다. 첫 번째로 카 카운팅 세마포어(Counting Semaphore)와 바이너리 세마포어(Binary Semaphore)가 있다. 카운팅 세마포어는 정수 값을 가지며 여러 개의 자원을 관리할.. 2024. 5. 21. 뮤텍스(Mutex) 뮤텍스란? 뮤텍스는 상호 배제(Mutual Exclusion)의 약자로 락이라고도 한다. 병렬 프로그래밍에서 공유 불가능한 자원에 대한 접근에 제한을 강제하기 위한 기법으로 Key를 기반으로 하는 상호 배제 기법 중 하나이다. 뮤텍스는 동시성이 강제되지 않은 자원 즉, 임계 구역을 가진 쓰레드들이 단독으로 실행하도록 하는 동기화 기법이다. 뮤텍스는 Locking 매커니즘으로 오직 하나의 쓰레드만이 동일한 시점에 뮤텍스를 얻어 임계 영역에 들어 올 수 있게 하며 Lock과 Unlock, 두 가지 연산만을 지원하는 된다는 특징이 있다. Lock : 현재의 임계 구역에 들어갈 권한을 얻어온다. 만일 다른 쓰레드나 프로세스가 임계 구역을 수행 중이라면 종료할 때 까지 대기 한다.Unlock : 현재.. 2024. 5. 20. 이전 1 다음