fork와 socket에 관한 질문입니다.
글쓴이: zasxer / 작성시간: 일, 2018/01/07 - 9:15오후
안녕하세요.
책을 읽다가 궁금한 점이 생겨 질문을 올립니다.
fork를 통하여 다중 프로세스 형태로 서버의 속도를 높인다고 되어있는데,
서버에서 부모는 데이터를 read만 하고 자식은 데이터를 write만 하는 형태입니다.
그런데 여기서 궁금한 점은 부모가 여러 자식을 둔다면 자신의 파일 디스크립터를 자식이 복사해가는데,
소켓은 시스템의 소유라서 복사가 안되어 있습니다.
당연 소켓을 복사한다는 것은 같은 포트에 두개의 소켓을 복사한다는 말이 안되는 소리인데...
파일디스크립터는 하나의 소켓을 통해 포트와 연결되어 통신을 하는데,
1. 2개의 파일 디스크립터가 하나의 소켓에 동시에 write를 하려고하고 하면 세마포어 형식으로 데이터의 write를 막고 있다가 자원이 free되면 write권한을 얻게 되나요??
2. 만약 세마포어 형식으로 자원을 쓰고 반납하는 형식이라면 결국 fork를 통한 이점을 가지지 못하는 것 같은데,
굳이 fork를 해서 데이터를 주고 받는 형식으로 프로그래밍을 하는 이유는 무엇인가요...?
Forums:
비동기 통신을 위한 게 아닌가요?
프로세스 하나가 read write를 동시에 해 버리면 비동기 통신이 안 되니까..?
댓글 달기