System V, POSIX 세마포어에 관해서...
글쓴이: vananamilk / 작성시간: 월, 2011/02/07 - 6:06오후
안녕하세요.
이진 세마포어로 테스트를 진행하고 있는데요~
POSIX 세마포어의 경우 sem_post() 호출시 반환할 세마포어가 없는 경우
블럭이 되어 있구요.
System V인 경우에는 semop.sem_op를 +1로 semop()를 호출시 반환할 세마포어가
없는 경우에 그냥 리턴이 되어 버리네요~
10개의 데이터를 공유메모리에 하나씩 A 프로세스가 쓰고 B 프로세스가 읽는다고 하면
POSIX의 경우에 세마포어 2개를 생성해 하나는 공유메모리에 쓸 때 사용하고 하나는 상대방이
읽었는지 썼는지를 판별할 수가 있는데요~~~
System V는 semop() 호출시 반환할게 없으면 그냥 리턴이 되어 버리니 다른 상태 변수를 두고
그 변수의 상태를 보고 상대가 읽었는지 안 읽었는지 체크해야 할 듯 하네요~
System V는 원래 이렇게 동작이 되는건가요? 아님 제가 잘못 알고 있는걸까요?
Forums:
댓글 달기