세마포어
컴퓨터 과학에서 세마포어는 하나 이상의 리소스에 대한 액세스를 제어하는 변수입니다. 세마포어는 개발자가 함수가 유효한 데이터에만 액세스하고 올바른 시점에 실행되도록 하는 데 사용하는 도구입니다. 세마포어는 리소스를 사용할 수 없을 때 해당 리소스에 대한 액세스를 허용하지 않음으로써 교착 상태나 경쟁 상태를 방지할 수 있습니다.
컴퓨터 프로그래밍에서 세마포어는 이진 세마포어와 카운팅 세마포어라는 두 가지 주요 유형으로 나뉩니다.
이진 세마포어
이진 세마포어는 두 가지 값(0 또는 1)만 가질 수 있는 부울 변수입니다. 이 변수는 함수나 리소스에 대한 액세스를 제한하는 잠금으로 자주 사용됩니다. 예를 들어 세마포어 A가 getData() 함수를 제어한다고 하겠습니다. A = 0이면 getData()는 실행되지 않습니다. A = 1이면 getData()가 실행됩니다. 이진 세마포어는 켜짐 또는 꺼짐 중 하나인 플래그나 스위치로도 간주됩니다.
카운팅 세마포어
카운팅 세마포어는 음이 아닌 정수일 수 있으며, 자연수라고도 합니다. 하나 이상의 함수 결과에 따라 값이 증가하거나 감소할 수 있습니다. 예를 들어 카운팅 세마포어는 리소스 풀에서 사용할 수 있는 리소스 수를 추적할 수 있습니다. 세마포어가 증가하는 값보다 더 많이 감소하면 결국 0에 도달합니다. 값이 0이면 남은 리소스가 없다는 뜻입니다.
NOTE: 실제 세계에서 "세마포어"는 먼 거리에서 신호를 보내는 데 사용하는 깃발이나 기타 물체입니다. 예를 들어 어떤 사람이 선착장에서 기둥을 들어 올려 페리 선장에게 배에 타고 싶다는 신호를 보낼 수 있습니다.
지식 테스트하기