버퍼 언더런
Buffer underrun
컴퓨팅에서 버퍼 언더런 또는 버퍼 언더플로우는 2개의 디바이스 또는 프로세스 간의 통신에 사용되는 버퍼에 데이터가 읽히는 속도보다 느린 속도로 데이터가 공급될 때 발생하는 상태입니다.이 용어는 버퍼로 사용되는 메모리의 일부가 고정된 크기를 가지지만 그 이상의 데이터로 채워지는 버퍼 오버플로와는 다릅니다.이를 위해서는 버퍼가 재충전되는 동안 버퍼에서 읽은 프로그램 또는 장치가 처리를 일시 중지해야 합니다.버퍼링되는 데이터는 일반적으로 이러한 종류의 Stop-Start 액세스에 적합하지 않기 때문에 이는 바람직하지 않은 부작용을 일으킬 수 있습니다.
동시 프로그래밍의 관점에서 버퍼 언더런은 자원 부족의 한 형태로 간주할 수 있습니다.
buffer underrun 및 buffer underflow라는 용어는 버퍼 오버플로와 유사한 조건인 버퍼 언더라이트를 의미하기도 하지만 프로그램이 버퍼 [1]시작 전에 속아서 허용 비트처럼 잠재적인 데이터를 덮어씁니다.
일반적인 원인과 해결책
버퍼 언더런은 버퍼링되는 접속과 관련된 일시적인 문제로 인해 발생하는 경우가 많습니다.즉, CPU 시간을 두고 경쟁하는2개의 프로세스 간의 접속 또는 대역폭에 대해 경쟁하는 디바이스와의 물리 링크 중 하나입니다.
이러한 문제에 대한 가장 간단한 방어는 버퍼 크기를 늘리는 것입니다.착신 데이터 스트림을 초당1비트로 읽어야 할 경우 10비트의 버퍼는 접속을 10초까지 차단할 수 있는 반면 60비트 중1비트는 1분까지 차단할 수 있습니다.단, 이 경우 프로세스 또는 장치에서 더 많은 메모리를 사용할 수 있어야 하므로 비용이 많이 들 수 있습니다.버퍼가 가득 차면 읽기 프로세스가 시작되기 전에 상당한 일시 정지가 필요하며 현재 연결이 차단되지 않는 한 버퍼는 항상 가득 찬 상태로 유지된다고 가정합니다.데이터가 필요 이상으로 빨리 도착하지 않으면 접속 블록이 누적됩니다.접속이 1시간 동안 활성화되어 있으면 60비트 버퍼를 가진 가상 접속에서 1분마다 1비트를 드롭하면 버퍼 언더런이 발생합니다.실시간 애플리케이션에서는 버퍼 사이즈가 크면 입력과 출력 사이의 지연도 늘어납니다.이는 화상회의 등의 저지연 애플리케이션에서는 바람직하지 않습니다.
CD 및 DVD 기록 문제
버퍼 언더런은 CD/DVD 쓰기 중에 심각한 문제를 일으킬 수 있습니다. 왜냐하면 한번 쓰기를 시작하면 완전히 중지 및 재개할 수 없기 때문입니다. 따라서 언더런에 의해 필요한 일시 중지로 인해 디스크의 데이터가 비활성화될 수 있습니다.버퍼는 일반적으로 하드 디스크나 다른 CD/DVD와 같이 비교적 느린 소스에서 채워지기 때문에 CPU나 메모리 부하가 크면 작은 버퍼의 용량을 쉽게 소진할 수 있습니다.따라서 버퍼 언더런 보호라고 하는 기술은 다양한 개별 CD/DVD 라이터 벤더에 의해 구현되었으며, 여기에는 Pllextor BurnProof, Nero UltraBuffer, Yamaha SafeBurn, JustLink 및 이음새 없는 링크가 포함되어 있습니다.이 기술을 사용하면 레이저는 실제로 임의의 시간 동안 쓰기를 중지하고 버퍼가 가득 차면 다시 시작할 수 있습니다.연속 쓰기 간의 간격은 매우 작습니다.
재기입 가능한 미디어(CD-RW, DVD-RW, DVD-RAM)를 사용하는 경우, UDF 파일 시스템을 사용하는 것도 이 문제에 대처하는 방법입니다.UDF 파일 시스템은 데이터를 보다 작은 패킷으로 정리하여 갱신된 단일 주소 테이블에 의해 참조되므로 짧은 버스트에 쓸 수 있습니다.
멀티미디어 재생
그래픽스 컨트롤러의 프레임 버퍼가 업데이트되지 않으면 버퍼가 새로운 데이터를 수신할 때까지 컴퓨터 화면의 화면이 정지합니다.많은 비디오 플레이어 프로그램(MPlayer 등)은 시스템에 과부하가 걸렸을 때 프레임을 드롭하는 기능을 갖추고 있어 의도적으로 버퍼 언더런이 템포를 유지할 수 있습니다.
오디오 컨트롤러의 버퍼는 링 버퍼입니다.언더런이 발생하고 오디오컨트롤러가 정지하지 않으면 버퍼에 포함된 사운드를 계속 반복하거나 구현에 따라 무음 출력을 합니다.이러한 효과를 일반적으로 "머신건" 또는 최대 헤드룸 버벅 효과라고 합니다.이 문제는 오디오 재생 중에 OS가 행업하면 발생합니다.오류 처리 절차(예: 블루 스크린 데스)로 인해 오디오 컨트롤러가 정지될 수 있습니다.
수동으로 오디오를 스플라이싱하거나 샘플을 다시 트리거하거나 플러그인을 사용하여 음악 또는 사운드 아트를 만들 때 의도적으로 이 오디오 결함을 모방하는 것을 Stutter 편집이라고 합니다.