Featured image of post [IO 09] I/O 멀티플렉싱 패턴: Reactor·Proactor

[IO 09] I/O 멀티플렉싱 패턴: Reactor·Proactor

Reactor 패턴(동기 이벤트 통지+콜백)과 Proactor 패턴(비동기 완료 통지)의 구조적 차이를 epoll·io_uring·IOCP 예시로 비교합니다. 버퍼 수명·스레드 모델 차이, 흔한 오개념, 플랫폼·워크로드별 선택 기준을 C++ 코드와 함께 정리합니다.

Featured image of post [IO 09] I/O 비용 직관

[IO 09] I/O 비용 직관

동기/비동기·블로킹/논블로킹의 차이와 read·write가 유발하는 복사 횟수를 그림으로 먼저 잡고, DMA와 CPU 카피를 구분해 지연이 어디서 생기는지 자리수로 감을 잡습니다. 이후 장의 시스템 콜 비용 모델·zero-copy·mmap을 이해할 직관적 토대를 마련합니다.

Featured image of post [IO 09] I/O 패턴과 비용

[IO 09] I/O 패턴과 비용

동기/비동기와 블로킹/논블로킹 I/O의 차이를 정리하고, 시스템 콜 진입 비용(KPTI·vDSO 포함)과 busy-wait·blocking·이벤트 기반 대기 방식의 비용 차이를 정량적으로 분석해 워크로드별 선택 기준을 제시합니다.

Featured image of post [IO 09] io_uring 심화

[IO 09] io_uring 심화

io_uring의 Linux 6.15 epoll 통합(IORING_OP_EPOLL_WAIT)·NAPI busy-poll·IORING_OP_URING_CMD 기반 NVMe passthrough를 다루고, PostgreSQL 18 io_uring 통합 연구 사례로 도입 판단 기준을 정리합니다.

Featured image of post [IO 09] IOCP와 Windows I/O

[IO 09] IOCP와 Windows I/O

Windows I/O Completion Port(IOCP)의 동작 원리와 스레드 풀 연동을 다룹니다. OVERLAPPED 구조체, 동시성 값, CreateThreadpoolIo API로 완료 기반 비동기 I/O를 최적화하고 흔한 함정을 피하는 방법을 정리합니다.

Featured image of post [IO 09] Memory-mapped I/O

[IO 09] Memory-mapped I/O

mmap으로 파일을 가상 주소 공간에 매핑해 read/write 없이 접근하는 원리와, 디맨드 페이징이 만드는 지연 로딩의 함정(SIGBUS·페이지 폴트 지터)을 다룹니다. mmap과 파일 I/O 중 무엇이 유리한지 판단하는 기준도 정리합니다.

Featured image of post [IO 09] POSIX AIO vs io_uring

[IO 09] POSIX AIO vs io_uring

POSIX AIO(aio_read/aio_write)가 glibc 스레드 풀 위에서 동작하는 방식과 그 구조적 한계를 다루고, io_uring과의 아키텍처·성능 차이를 fio 벤치마크로 검증해 두 API 중 무엇을 선택할지 판단 기준을 정리합니다.

Featured image of post [IO 09] Vectored I/O

[IO 09] Vectored I/O

readv/writev로 흩어진 여러 버퍼를 단일 시스템 콜로 처리해 syscall 오버헤드를 줄이는 기법과, preadv2/pwritev2가 추가한 RWF_ 플래그 기반 호출 단위 제어를 다룹니다. IOV_MAX 제한과 short read/write 처리, 판단 기준을 정리합니다.

Featured image of post [IO 09] Zero-copy 기법

[IO 09] Zero-copy 기법

sendfile·splice·copy_file_range로 커널-유저 공간 복사를 없애는 zero-copy 기법과 각 API의 적용 제약을 다룹니다. 파이프 요구사항, reflink 폴백, TLS·압축 미들웨어와의 호환성 한계를 실전 판단 기준으로 정리합니다.

Featured image of post [IO 09] 로깅 성능 전략

[IO 09] 로깅 성능 전략

로깅이 핫패스 지연에 미치는 비용을 락 경합·문자열 포맷팅·시스템 콜 진입·flush 정책으로 분해하고, 비동기 로거의 링 버퍼·배치 flush 설계와 로그 레벨 분리가 I/O에 미치는 영향을 NanoLog·spdlog 사례로 정리합니다.