티스토리 툴바




1. Scatter/gather I/O(vectored I/O)

vector를 이용한 입출력으로 한번의 연산을 통해 선형 입출력 연산 여러개를 대체할 수 있다.(시스템 호출 횟수를 줄이며 원자성을 가진다.)

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);

struct iovec{ void *iov_base; size_t iov_len;}

count가 작으면 리눅스 커널에서 동적할당 대신 segment array를 만들기 때문에 count가 충분히 작은 경우 성능이 개선된다.(현재 한계값은 8)

저작자 표시 비영리 동일 조건 변경 허락

Posted by bluelimn

댓글을 달아 주세요



1. Scatter/gather I/O

여러개의 버퍼를 이용한 입출력

2. Epoll

Event Poll: poll()과 select()를 개선한 형태

3. Memory-mapped I/O

file을 memory mapping하여 사용

4. File advice

Allows a process to provide hints to the kernel on its usage scenarios; can result in improved I/O performance. (힌트일 뿐 명령은 아님)

5. Asynchronous I/O

thread를 이용하지 않고 동시에 입출력 처리 가능.

저작자 표시 비영리 동일 조건 변경 허락

Posted by bluelimn

댓글을 달아 주세요