728x90 NIO1 Java NIO (New IO) 안녕하세요! 오늘은 java NIO의 개념을 간단하게 정리해보려고 합니다. 자바 1.4이전의 IO(Old IO로 OIO라고 함)는 운영체제 수준의 시스템콜을 직접 사용할 수 없었습니다. 왜 OIO는 느렸을까요? 운영체제 시간에 배운 것처럼 모든 IO는 반드시 커널 영역을 직간접적으로 거쳐야 합니다. 커널 영역에 저장된 데이터는 JVM의 버퍼로 다시 복사를 해야 합니다. 디스크에서 커널 영역의 버퍼로 데이터를 저장하는 것은 디스크 컨트롤러가 DMA라는 기술을 사용하여 CPU의 도움 없이 처리하지만, 커널 영역의 버퍼에서 프로세스 영역의 버퍼로 데이터를 전달하는 것은 CPU를 사용합니다. 또한 디스크에서 커널 영역의 버퍼로 데이터를 복사하는 동안 프로세스는 블록킹됩니다. 이런 문제점으로 시스템콜을 직접 사용.. 2023. 11. 29. 이전 1 다음 728x90