데이터의 이력(Input)과 출력(Output)을 함께 일컫는 말임
어떤 디바이스를 통해 입력과 출력이 이뤄지는 작업을 모두 I/O라고 함
네트워크를 통해서 다른서버로 데이터를 전송하거나, 다른 서버로부터 데이터 전송을 받는 것도 I/O에 포함됨
I/O는 애플리케이션의 성능에 많은 영향을 미침
I/O가 많아진다는 것은 애플리케이션이 연산을 할 때까지 CPU가 아무것도 하지 못하고 대기하는 시간이 길어진다는 뜻임
높은 성능을 보장해야하나는 애플리케이션 입장에서 I/O는 큰 장애물이 될 수 있음
I/O작업이 진행되는 동안 유저 프로세스가 자신의 작업을 중단한 채, I/O가 끝날때까지 대기하는 방식을 의미함
A함수가 I/O 작업을 호출했을 때 I/O 작업이 완료될때까지 A함수의 작업을 중다하는 게 아니라 I/O호출에 대해 즉시 리턴하고, 이어서 A함수가 다른 일을 수행할 수 있도록 하는 방식을 의미
중간중간 시스템 콜을 보내서 I/O가 완료됐는지 커널에 물어보고, 완료되면 I/O 작업을 완료함