
다이렉트 버퍼(Direct buffer)에 대하여

·
Language/JAVA
[ 다이렉트 버퍼 탄생 배경 ] 기존 io 에서 불편했던 것.초기 버전 Java의 전통적인 I/O에서 소켓에 바이트를 write 하는 방식을 살펴보겠습니다.애플리케이션(유저 영역)에서 생성한 데이터는 write() 호출 시 커널 영역의 송신 버퍼로 복사된 뒤, 커널의 TCP/IP 스택 처리 과정을 거쳐 네트워크 인터페이스(NIC)를 통해 외부로 전송됩니다.자바 애플리케이션이 byte[] 배열에 데이터를 준비함. 이 배열은 JVM 힙(Heap) 메모리에 존재함write()를 사용해 데이터를 전송 요청JVM은 힙 메모리에 있는 데이터를 유저 영역의 네이티브(C) 메모리 영역에 고정된 가상 메모리 주소를 가진 버퍼로 복사한 뒤, 해당 주소를 시스템 콜(write)에 전달한다.커널은 유저 영역의 해당 메모리 주..