세마포어

세마포어는 시스템에서 상호 독점(뮤텍스) 자원을 설정하는 글로벌 신호 플래그입니다. 일부 프로세스가 다른 프로세스의 완료를 기다리게 하려면 세마포어를 사용하십시오.

작업 > 세마포어를 사용하여 사용 중인 작업 세마포어를 볼 수 있습니다. 또한 세마포어를 지울 수도 있는데 이는 정지되거나 취소된 작업이 세마포어를 해제하는 데 실패하는 경우 필요합니다.

세마포어 패널은 작업 패널에서 사용됩니다.
점 명령 쌍(.semget 및 .semput 명령)을 통해 세마포어를 구현하십시오. .semget 명령을 사용하여 레이블을 "점유"하십시오. 단계가 레이블을 가져온 후에는 동일한 레이블을 가져오려고 시도하는 프로젝트의 기타 단계는 원래의 요청자가 레이블을 해제할 때까지 기다려야 합니다.
참고: .semget 명령을 포함하는 단계는 세마포어가 해제될 때까지 대기합니다. 작업이 실패하여 세마포어가 활성 상태인 경우, 세마포어를 사용하는 모든 작업이 다시 실행되도록 하려면 세마포어를 수동으로 지워야 합니다.

예를 들어, 프린터 드라이버를 작성하는 프로그램이 있고 임의의 시점에서 하나의 프로세스만 프로그램을 사용하게 한다고 가정하십시오. 프로그램을 호출하는 각 프로젝트에서 다음 명령행을 사용하여 세 개의 단계를 설정하십시오.

단계

명령행

세마포어 가져오기

.semget $BF_PROJECTNAME_PHYS

드라이버 작성 프로그램 실행

printdrivermaker.exe windows

세마포어 해제

.semput $BF_PROJECTNAME_PHYS

조직의 주요 자원(예: 로드량이 많은 서버 또는 단일 사용자 라이센스가 있는 소프트웨어 프로그램)에 대해 세마포어를 설정할 수 있습니다. 보호할 자원을 사용하는 모든 단계를 .semget 및.semput 명령으로 랩핑해야 합니다.

세마포어는 다음 규칙을 준수합니다.


피드백