Normal Copy (일반복사)
- 애플리케이션은 디스크에서 정적 파일을 읽어 네트워크 소켓으로 데이터를 전송하는 일을 반복적으로 수행한다.
- 간단한 이 동작에는 운영체제 내부에서의 불필요한 컨텍스트 스위칭(Context Switching)과 데이터 복사(Data Copy)가 수반된다.
- 버퍼를 할당 받고 디스크에서 파일을 버퍼로 읽어들여서 다시 소켓으로 전송하는 형태다.
Zero Copy
- Java의 Transferto()를 사용한 예로 설명하겠다.
- Transferto()를 사용하면, 2~3번 과정 없이 애플리케이션을 거치지 않고
- ReadBuffer -> SocketBuffer로 데이터가 복사된다.
- 컨텍스트 전환은 4회 -2회, 데이터 복사는 4회 -> 3회로 줄어든다.
DMA (Direct Memory Access 직접 메모리 접근)
- CPU 개입 없이 하드디스크, 그래픽 카드 등이 MEM에 직접 접근하여 Data I/O하는 방식
NIC (Network Interface Card/Controller)
- 네트워크 인터페이스 카드 or 네트워크 인터페이스 컨트롤러
- 컴퓨터가 LAN에 연결할 때 사용되는 네트워크 인터페이스 카드
- ex) Lan카드
'프로그래밍' 카테고리의 다른 글
VisualStudio Copilot 설치하기 (0) | 2023.03.30 |
---|---|
[MinIO] MinIO Windows에 설치하기 (0) | 2023.03.10 |
[프로그래밍] 디자인패턴 (0) | 2022.11.07 |
[gRPC] gRPC란? (0) | 2022.06.16 |
[Git] 실수로 지운 commit 복구 (0) | 2022.06.16 |