- 여러 입 / 출력 요청이 한 채널에 동시에 혼재 할 수 있는 입/출력
- 개발자 관점에서 보면 송신과 수신이 동시에 발생하는 것 처럼 보인다.
- 모든 입 / 출력은 프로세스가 아니라 OS가 주도한다는 것이 핵심이다.
예를 들어 파일에 fwrite를 하면, 우리가 작성한 프로그램이 fwrite를 했다라고 생각할 수 있지만,
본질적으로는 OS한테 파일에 write 해달라고 요청한 것에 불과하다.
이처럼 I/O 멀티플렉싱 역시 OS가 처리해준다.
네트워크에서 굉장히 중요한 관점 중 하나는 송신하고 수신이 동시에 일어난다는 점인데,
단순히 생각해보면 위 작업을 멀티쓰레드로 하면 가능하다는 것을 생각할 수 있다.
송수신이 동시에 일어난다면, 이를 감시 할 수 있는 작업 또한 필요한데,
송수신이 완료되면 OS가 알려주는 방식이 어떤 특정 함수를 호출하는 방식이라면 callback 방식이 되는 것이고,
신호를 주는 방식이라면 Event 방식이 되는 것이다.
'네트워크' 카테고리의 다른 글
[네트워크] TCP/IP 연결의 의미 (0) | 2025.04.20 |
---|---|
[네트워크] select (0) | 2025.04.17 |
[네트워크] 우아하지 않은 비정상 종료 (0) | 2025.04.14 |
[네트워크] 멀티 쓰레드 채팅 클라이언트 (0) | 2025.04.14 |
[네트워크] 멀티쓰레드 채팅 서버 (0) | 2025.04.13 |