IT 지식/운영체제
DMA와 고성능 소켓
Security Engineer
2024. 8. 20. 00:12
DMA 정보 전달 방식
- 기존 정보 전달 방식 = CPU → RAM 영역 1 → RAM 영역 2 → Device 영역
- DMA(Direct Memory Access) = 약속된 곳에 Direct로 데이터를 Write → NIC에서 사용
- DMA 사용한 정보 전달 방식 = CPU → Device 영역
네트워크 상에서 정보 통신
- 어떤 파일이 있고 그 파일은 커널의 구성요소를 추상화 한다. → 인터페이스
- 그 파일에는 I/O Buffer가 있다.
- 각 영역에는 I/O Buffer가 존재, I/O Buffer는 일종의 데이터 저장소다. → RAM 메모리 일부
- TCP/IP 네트워크 통신에서 파일은 Socket이 된다.
- 파일에 대해 Write 한다. = 소켓은 Send 한다.
- NIC은 DMA를 지원한다.
- DMA 사용 시 그림1과 같은 여러 단계를 거치지 않고 RAM에게 Direct로 정보를 전달한다.
- CPU가 RAM을 사용하는데, RAM 영역 일부를 NIC에게 할당하여 사용하게 한다.
- NIC에서 정보 전달 시, 여러 영역을 거치지 않아도 Direct로 RAM에게 정보를 전달한다. → 성능 향상
- IOCP 이용 시 성능 향상 → 운영체제가 I/O Buffer에 Lock을 걸어서(Kernel이 찜한다.) 정보를 Direct로 전달한다.
결론
- DMA는 여러 단계를 거칠 필요 없이 데이터를 Direct로 전달해주는 역할을 한다.
참고