#include <sys/uio.h>
struct iovec {
void *iov_base;
size_t iov_len;
};
이러한 벡터 iovec의 배열을 넘겨주어 Scatter Gather I/O를 수행하는데, 이때의 readv(), writev() 함수는 아래와 같은 식으로 호출한다.
#include <sys/uio.h>
ssize_t readv(int fd,
const struct iovec *iov,
int count);
ssize_t writev(int fd,
const struct iovec *iov,
int count);
실제 Scatter Gather I/O는 PCI 콘트롤러의 Scatter Gather DMA Mode를 통해 이루어진다(CPU의 도움없이 PCI 콘트롤러 상에서 벡터의 주소를 따라가며 read, write 작업을 수행해준다.) 때문에 프로세서의 자원 절약 및 성능 개선의 여러 효과가 있다.
No comments:
Post a Comment