여러 개의 Process
가 File이나 Database에 동시에 액세스하면데이터의 무결성
이 손상될 수 있다.- 따라서 처리가 끝날 때까지
하나의 프로세스
에자원을 독점
시키는 것이 필요하며, 이를배타 제어
라 한다.
정해진 수 이상의 프로세스
가 공유 자원에동시에 액세스
하지 않도록카운터
를 사용해 제어하는 장치를 의미한다.- OS는 세마포어의 P조작(획득)과 V조작(해제)로 '통행 가능', '통행 불가' 두 상태를 관리한다.
- 데드락을 피하기 위한 방법 중 하나
- 세마포어 카운터 초기값을 2로 하고, 공유 자원에 접근 하는 프로세스가 A, B, C가 있는 경우
- 프로세스 A, B가 P 조작해 카운터가 0이 되면 프로세스 C는 공유자원에 접근할 수 없다.
- 프로세스 처리가 끝나고 V조작으로 해제하면 카운터가 다시 1 이상이 되어 프로세스 C가 접근할 수 있다.
- 세마포어의
카운터 초기값
이1
인 경우과 같다. - 즉 한번에
하나의 프로세스
만 공유 자원에 액세스 할 수 있다. - 데드락을 피하기 위한 방법 중 하나
- 프로그램 중
배타 제어가 필요한 부분
을 일컫는다. - P 조작부터 V 조작까지의 처리에 해당한다.