차례:
정의-세마포어는 무엇을 의미합니까?
세마포어는 병렬 프로그래밍 환경에서 여러 프로세스가 공통 자원에 대한 액세스를 제어하는 동기화 오브젝트입니다. 세마포어는 파일 및 공유 메모리에 대한 액세스를 제어하는 데 널리 사용됩니다. 세마포어와 관련된 세 가지 기본 기능이 설정, 확인 및 다시 설정 될 때까지 기다립니다. |
세마포어는 벤치 마크 동기화 문제를 해결하는 데 사용됩니다.
세마포의 개념은 네덜란드 컴퓨터 과학자 Edsger Dijkstra가 제시했습니다.
Techopedia는 세마포를 설명합니다
세마포어는 세마포어-> P () 및 세마포어-> V () 연산을 지원하는 음이 아닌 정수 값입니다. P는 세마포어가 양수를 기다렸다가 1 씩 감소시키는 원자 연산이고, V는 세마포어를 1 씩 증가시키는 원자 연산으로 대기 P를 깨우는 것을 의미합니다. 세마포어와 관련된 테스트 및 세트는 루틴입니다 하위 수준의 중요 섹션을 조정하기 위해 하드웨어로 구현됩니다.
세마포어는 일반적으로 파일 디스크립터를 사용하여 구현됩니다. 세마포어 생성은 원자가 아닙니다. 두 프로세스가 동시에 세마포어를 작성, 초기화 및 사용하려고하면 경쟁 조건이 작성됩니다. 사용할 자원의 가용성을 표시하기 위해 세마포어가 작성되고 양수 값으로 초기화됩니다. 세마포어는 인터럽트를 통해 또는 테스트 세트 작업을 사용하여 구현할 수 있습니다.
모든 세마포어는 허가 세트를 유지합니다. 리소스에 액세스하는 스레드 수를 제한합니다. 하나의 허가 만 있고 하나로 초기화 된 세마포어는 상호 배제 잠금 역할을합니다. 허가 가능 또는 무허가의 두 가지 상태 만 갖기 때문에 이와 같이 언급됩니다. 이 속성은 소유자 이외의 스레드가 잠금을 해제하여 교착 상태 복구에 도움이되도록 속성을 포함합니다. 세마포어는 세마포어의 초기 값이 1 인 상호 배제에 사용되며 P () 및 V ()는 중요 섹션 전후에 호출됩니다.
