1. I/O 모델의 이해
1.1 기본 개념
모든 I/O 작업은 두 단계로 이루어집니다:
- 데이터 준비 단계
- 커널이 데이터를 준비하는 과정
- 디스크 읽기, 네트워크 패킷 수신 등
- 시간이 오래 걸릴 수 있는 작업
- 데이터 복사 단계
- 준비된 데이터를 커널 공간에서 유저 공간으로 복사
- 메모리 복사 작업
- 상대적으로 빠른 작업
이 두 단계에서 프로세스가 어떻게 대기하고, 어떻게 완료를 확인하는지에 따라 I/O 모델이 구분됩니다.
1.2 분류 기준
1.2.1 프로세스의 대기 방식