I/O 인터페이스와 버스
기기와 작은 데이터를 하나씩 수천 번 주고받는 프로그램을 빠르게 하는 방법으로 가장 효과적인 것은 무엇입니까?
- A대역이 2배인 세대의 연결로 바꾸기만 한다
- B데이터를 모아 큰 덩어리로 만들고 주고받는 횟수를 줄인다
- C1회당 데이터를 더 작게 나눈다
정답과 해설 보기
정답: B. 데이터를 모아 큰 덩어리로 만들고 주고받는 횟수를 줄인다
작은 주고받기에서는 매번 지연과 소프트웨어 처리의 수고가 들고 대역은 거의 사용되지 않습니다. 데이터를 모아 한 번에 보내면 지연을 치르는 횟수가 줄고 대역도 효율적으로 사용할 수 있습니다. 스토리지와 네트워크에서는 여러 요청을 대기열에 쌓아 한 번에 넘기거나 인터럽트를 모으는 등 같은 발상의 궁리가 널리 사용됩니다.
- A. 작은 데이터에서는 지연이 지배적이므로 효과가 작습니다.
- B. 올바릅니다. 지연을 치르는 횟수가 줄어듭니다.
- C. 횟수가 늘어 더 느려집니다.