비트스트림

Bitstream

비트스트림(또는 비트스트림)은 바이너리 시퀀스로도 알려져 있습니다.

bytestream바이트의 시퀀스입니다.일반적으로 각 바이트는 8비트이기 때문에 옥텟스트림이라는 용어가 서로 교환하여 사용되는 경우가 있습니다.옥텟은 8비트의 시퀀스로 여러 가지 방법으로 부호화할 수 있습니다(비트 번호부여 참조).따라서 바이테스트스트림과 비트스트림 사이에 일의적이고 직접적인 변환은 없습니다.

비트스트림과 바이테스트림은 통신컴퓨팅에서 광범위하게 사용됩니다.예를 들어 동기 비트스트림이 SONET에 의해 전송되고 Transmission Control Protocol이 비동기 바이테스트 스트림을 전송합니다.

비트스트림과 바이테스트스트림의 관계

실제로 비트스트림은 바이테스트림을 인코딩하기 위해 직접 사용되지 않습니다.통신 채널은 비트로 직접 변환되지 않는 신호방식(예를 들어 여러 주파수의 신호를 전송함)을 사용할 수 있으며 일반적으로 데이터와 [citation needed]함께 프레임 및 오류 수정 의 다른 정보를 인코딩할 수도 있습니다.

비트스트림이라는 용어는 Field-Programmable Gate Array(FPGA)에 로드되는 구성 데이터를 설명하기 위해 자주 사용됩니다.대부분의 FPGA는 바이트 패럴렐로드 방식도 지원하지만 이 사용방법은 시리얼비트스트림(일반적으로 시리얼 PROM 또는 플래시 메모리칩)에서 FPGA를 설정하는 일반적인 방법에 근거하고 있을 가능성이 있습니다.특정 FPGA의 비트스트림의 상세한 포맷은 일반적으로 FPGA 벤더만의 것입니다.

수학에서, 비트의 특정한 무한 수열은 그들의 수학적 특성에 대해 연구되었다; 그것들은 바움-스위트 수열, 에렌푸흐트-마이시엘스키 수열, 피보나치 워드, 콜라코스키 수열, 규칙적인 종이 접기 수열, 루딘-샤피로 수열, 그리고 Thue-모르스 수열을 포함한다.

UnixWindows 를 포함한 대부분의 operating system에서는, 표준의 I/O 라이브러리가, 하위 레벨의 페이지 첨부 또는 버퍼 첨부 파일 액세스를 bytestream 패러다임으로 변환합니다.특히 Unix와 유사한 운영체제에서는 각 프로세스에는 단방향 바이테스트림의 예로서 3개의 표준 스트림이 있습니다.Unix 파이프 메커니즘은 서로 다른 프로세스 간에 bytestream 통신을 제공합니다.

압축 알고리즘은 바이트(메모리의 최소 주소 지정 단위)가 제공하는8비트는 낭비가 될 수 있기 때문에 종종 비트스트림으로 코드화됩니다.일반적으로 낮은 수준의 언어로 구현되지만 Python 및[2] Java와 같은[1] 일부 고급 언어는 비트스트림 I/O를 위한 네이티브 인터페이스를 제공합니다.

클라이언트에 바이트 스트림 서비스를 제공하는 통신 프로토콜의 잘 알려진 예 중 하나는 양방향 바이테스트 스트림을 제공하는 인터넷 프로토콜 스위트의 Transmission Control Protocol(TCP)입니다.

임의의 bytestream의 인터넷 미디어 유형은 다음과 같습니다.application/octet-stream 입니다.다른 미디어 유형은 잘 알려진 형식의 bytestream에 대해 정의됩니다.

흐름 제어

대부분의 경우 바이테스트 스트림의 내용은 키보드 및 기타 주변기기(/dev/tty), 의사난수 생성기(/dev/urandom)의 데이터 등 동적으로 작성됩니다.

이러한 경우, bytestream(소비자)의 수신처가 생성 가능한 바이트보다 더 빨리 바이트를 사용하는 경우, 시스템은 프로세스 동기화를 사용하여 수신처를 다음 바이트가 사용 가능하게 될 때까지 기다립니다.

행선지가 바이트를 사용할 수 있는 속도보다 빨리 바이트가 생성되는 경우, 이 상황에 대처하기 위한 몇 가지 방법이 있습니다.

  • 생산자가 소프트웨어 알고리즘인 경우 시스템은 동일한 프로세스 동기화 기술을 사용하여 생산자를 일시 중지합니다.
  • 생산자가 흐름 제어를 지원하는 경우 시스템은 소비자가 다음 바이트를 사용할 준비가 되었을 때만 준비 신호를 보냅니다.
  • 플로우 제어를 지원하지 않는 키보드 또는 일부 하드웨어에서 생산자를 일시 정지할 수 없는 경우, 시스템은 일반적으로 사용자가 대기열을 사용할 준비가 될 때까지 데이터를 임시로 저장하려고 합니다.대부분의 경우 수신측은 버퍼가 완전히 가득 차기 전에 버퍼를 비울 수 있습니다.버퍼가 가득 찬 후에도 소비할 수 있는 속도보다 빠른 데이터 생성을 계속하는 생산자는 원치 않는 버퍼 오버플로, 패킷 손실, 네트워크 폭주 및 서비스 거부를 초래합니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Bitstream". Python Software Foundation. Archived from the original on 2016-09-08.
  2. ^ "Class BitSet". Oracle. Archived from the original on 2016-11-30.