비동기 입출력

위키백과, 우리 모두의 백과사전.
둘러보기로 가기 검색하러 가기

컴퓨터 과학에서 비동기 입출력(asynchronous I/O) 또는 비순차 입출력(non-sequential I/O)은 데이터 전송을 마치기 전에 기타 프로세스가 계속하도록 허가하는 입출력 처리의 한 형태이다.

컴퓨터에서의 입출력 기능은 데이터 처리 시 보다 상당히 느릴 수 있다. 모든 입출력 장치는 읽기나 쓰기를 위해 트랙을 찾는 하드 드라이브와 같이 물리적으로 움직여야 하는 기계 장치를 포함할 수 있다. 즉, 전기 회로를 전환하는 것 보다 종종 더 느리다. 이를테면, 디스크 작업 수행에 10 밀리초가 소요되는 동안 1 기가헤르츠 클럭의 프로세서는 10,000,000 명령 처리 사이클을 수행할 수 있다.

입출력에 대한 단순 접근은 액세스를 시작하고 끝날 때까지 기다리는 것이다. 그러나 이러한 접근(동기 입출력)은 통신 중에 프로그램의 진행을 가로막아, 시스템 자원을 유휴 상태로 만들어버린다. 프로그램이 수많은 입출력 동작을 취할 때, 프로세서는 입출력 동작이 끝날 때까지 기다리는 유휴 시간 대부분을 소모할 수 있다.

한편, 통신을 시작한 다음 입출력이 끝날 것을 요구하지 않는 처리를 수행할 수 있다. 이러한 접근은 비동기 입출력으로 부른다.

비동기 입출력을 사용하면 스루풋, 레이턴시, 반응 속도를 개선할 수 있다.

같이 보기[편집]

외부 링크[편집]