'세마포어에 열린 참조가없는'경우 세마포어 이름 제거 (*)는 sem_unlink는() 세마포어
- 1) 어떤이 '참조'이다의 이름을 제거합니다 ?
- 2) 관련된 프로세스를 식별하기 위해 이러한 참조를 쿼리 할 수 있습니까?
동일한 문단은 '세마포어에 대한 열린 참조가없는 경우 계속 파괴됩니다. 그렇지 않으면 마지막 열린 참조가 닫힐 때까지 파기가 연기됩니다. ' 이것은 OS가 세마포어를 파괴 할 수있을 때까지이 참조를 계속 쿼리한다는 것을 의미합니다. 세마포어 값보다 더 많은 '참조'가 있습니까?
(*) W.R. Stevens, S.A. Rago 'UNIX 환경에서의 고급 프로그래밍', 제 3 판, 페이지. 581.
답장을 보내 주셔서 감사합니다. 프로세스가 순서가 잘못된 sem_post()를 실행하여 보류중인 프로세스가 잘못 실행될 수 있습니까? – ovi
@ovi 아키텍처 수준 구현에 대해 걱정할 필요가 없습니다. POSIX [정의 된 동작] 사양을 따르면 모든 것이 예상대로 작동해야합니다. – pah
내 질문은 내 응용 프로그램이 직면 한 실제 상황의 결과입니다. 사용자 유도 비동기 이벤트로 인해 대기 게시가 중단 될 수 있습니다. 이것을 정리하려고 할 때 외부 프로세스는 무조건적으로 세마포어의 링크를 해제하고 제거하는 방법이 필요합니다. 나는 (임의의) 10 개의 호출을 '게시'에 연결 한 다음 연결을 해제하는 정리 프로세스를 구현하려고 시도했으며 제대로 작동하는 것처럼 보입니다. 난 단지 내 솔루션이 무차별 적이며 유효한/합법적인지 확인하고 싶다. – ovi