I/O바운드

I/O bound

컴퓨터 과학에서 I/O 바운드는 연산 완료하는 데 걸리는 시간이 주로 입출력 연산이 완료되기를 기다리는 기간에 의해 결정되는 상태를 말합니다.이는 작업이 CPU에 바인딩되는 과는 반대입니다.이 상황은 데이터 요구 속도가 소비 속도보다 느리거나, 즉 데이터 [1]처리보다 데이터 요청에 더 많은 시간이 소요될 때 발생합니다.

컴퓨팅의 본질적인 문제로서 I/O를 제한하다

I/O 바운드 상태는 거의 초기부터 컴퓨팅의 문제로 인식되어 왔습니다.많은 컴퓨팅 디바이스에 채용되고 있는 Von Neumann 아키텍처는 논리적으로 분리된 중앙 프로세서 유닛을 실장하는 것과 같은 여러 가지 가능한 솔루션을 포함하고 있습니다.이러한 중앙 프로세서 유닛은 프로그램의 명령어를 저장하는 것 외에 일반적으로 메인 메모리에서 실제 데이터를 가져와 이 데이터에 보다 쉽게 접근할 수 있도록 합니다.프로세스가 종료되면 원래 스토리지(일반적으로 메인 메모리)에 결과를 다시 씁니다.

데이터 전송 속도가 제한버스를 따라 CPU와 메모리 간에 데이터를 이동해야 하므로 Von Neumann 병목현상이 있습니다.간단히 말해 CPU와 메모리 사이의 데이터 대역폭이 전체 계산 속도를 제한하는 경향이 있다는 것을 의미합니다.컴퓨터를 구성하는 실제 기술에 관해서, Von Neumann Bottlek는 CPU에 필요한 속도로 데이터를 공급하는 것보다 더 빨리 계산을 수행하도록 하는 것이 더 쉽다고 예측합니다.

최근 역사에서, Von Neumann의 병목 현상은 더욱 뚜렷해졌다.현대 컴퓨터의 설계 철학은 물리적으로 분리된 CPU와 메인 메모리를 기반으로 합니다.CPU 내부의 위치 간에 매우 짧은 거리에 걸쳐 데이터가 이동하기 때문에 CPU를 높은 데이터 전송 속도로 실행할 수 있습니다.단, CPU와 메인메모리의 물리적인 분리를 위해서는 데이터를 센티미터 이상의 비교적 먼 거리에 걸쳐 이동시키기 위한 데이터 버스가 필요합니다.시스템의 이 부분을 CPU를 따라잡을 수 있을 정도로 빠르게 동작시키는 문제는 [2]설계자에게 큰 과제가 되어 왔습니다.

I/O가 실질적인 문제로 묶여 있다

I/O 바인딩 상태는 메인 메모리 또는 세컨더리 스토리지에서 데이터가 로드되거나 언로드될 때까지 CPU가 작업을 중지해야 함을 의미하므로 바람직하지 않은 것으로 간주됩니다.새로운 컴퓨터 설계와 CPU나 메모리 등의 컴포넌트는 처리속도가 빨라지는 것이 주된 목표이기 때문에 I/O에 얽매이는 상태를 회피하는 것이 매우 중요합니다.이를 배제함으로써 CPU나 메모리를 업그레이드하는 것보다 퍼포먼스가 더욱 향상됩니다.

CPU가 고속화됨에 따라 프로세스의 I/O바인드가 증가하는 경향이 있습니다.

또는 간단히 말하면:

CPU의 속도가 빨라질수록 프로세스는 I/O바인드가 증가하기 때문에 CPU 속도에 비례하여 속도가 향상되지 않는 경향이 있습니다.

즉, I/O 바인딩 프로세스가 비 I/O 바인딩 프로세스보다 느리지만 속도가 느리지는 않습니다.이는 코어에서의 데이터 처리 속도가 증가하지만 스토리지에서 프로세서로 데이터가 전송되는 속도는 증가하지 않기 때문입니다.CPU 클럭 속도가 증가하여 주어진 시간대에 더 많은 명령을 실행할 수 있게 되면 효과적인 실행의 제한 요인은 명령이 저장소에서 프로세서로 전달되어 프로세서에서 수신처로 전송되는 속도입니다.간단히 말해, 프로그램은 자연스럽게 I/O에 점점 [3]더 많은 제약을 받게 됩니다.

CPU 바인딩과의 비교

CPU에 바인드된 프로세스가 1개 있고 I/O에 바인드된 프로세스가 다수 있다고 가정합니다.프로세스가 시스템 주위를 흐를 때 다음과 같은 시나리오가 발생할 수 있습니다.CPU 바인딩된 프로세스는 CPU를 가져오고 유지합니다. 이 시간 동안 다른 모든 프로세스는 I/O를 완료하고 CPU를 대기하면서 준비 대기열에 들어갑니다.프로세스가 Ready 큐에서 대기하는 동안 I/O 디바이스는 아이돌 상태가 됩니다.결국 CPU 바인딩 프로세스는 CPU 버스트를 완료하고 I/O 디바이스로 이동합니다.CPU 버스트가 짧은 모든 I/O 바운드 프로세스는 빠르게 실행되어 I/O 큐로 돌아갑니다.이 시점에서 CPU는 아이돌 상태가 됩니다.그런 다음 CPU 바인딩 프로세스가 다시 준비 큐로 이동하여 CPU가 할당됩니다. 다시 말하지만 모든 I/O 프로세스는 CPU 바인딩 프로세스가 완료될 때까지 준비 큐에서 대기하게 됩니다.다른 모든 프로세스가 하나의 큰 프로세스가 CPU에서 분리될 때까지 대기하기 때문에 호송 효과가 있습니다.이로 인해 CPU와 디바이스의 사용률이 보다 낮아집니다.단축 프로세스를 [4]먼저 실행할 수 있는 경우보다 낮아집니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ 디스크 I/O 바운드 시스템 식별
  2. ^ Erik Engbrecht 블로그:I/O bound의 의미는 무엇입니까?
  3. ^ slebetman. "why-i-o-bound-processes-are-faster". Retrieved 9 August 2014.
  4. ^ Silberschatz, Abraham; Galvin, Peter B.; Gagne, Greg (2013). Operating System Concepts. Vol. 9. John Wiley & Sons. ISBN 978-1-118-06333-0.