소프트웨어 흐름 제어
Software flow control이 글은 검증을 위해 추가 인용문이 필요합니다. 찾기 : ' 흐름 제어 · · · · JSTOR (2009년 ( 템플릿 방법 및 ) |
소프트웨어 흐름 제어는 컴퓨터 데이터 링크, 특히 RS-232 시리얼에서 사용되는 흐름 제어 방법입니다.프라이머리 통신 채널을 통해 인밴드로 전송되는 특수 코드를 사용합니다.이러한 코드는, 통상은 XOFF 와 XON 이라고 불립니다(각각 「송신 오프」와 「송신 온」으로부터).따라서 "소프트웨어 흐름 제어"는 "XON/XOFF 흐름 제어"라고도 합니다.이는 RS-232 RTS/CTS 등의 전용 대역 외 신호(하드웨어 흐름 제어)를 통한 흐름 제어와는 대조적입니다.
표현
ASCII 문자 코드를 사용하는 시스템의 경우 XOFF는 일반적으로 10진수 값이 19인 문자 또는 바이트, XON 값이 17인 XON을 사용하여 표시됩니다.
ASCII 표준에서는 XON/XOFF로 사용하기 위해 특별히 제어 문자를 예약하지 않습니다.다만, 4 개의 범용 「디바이스 제어」문자(DC1 ~DC4)를 제공하고 있습니다.Teletype Model 33 ASR은 각각 XOFF와 XON으로 사용하기 위해 DC3와 DC1의 두 가지를 채택했습니다.이 사용법은 다른 사람에 의해 모방되어 현재는 사실상의 표준이 되었습니다.키보드 등가물XOFF의 경우 +,Q XON의 경우 +도 이 사용법에서 파생됩니다Ctrl.S
코드 | 의미. | ASCII | 12월 | 16진수 | 키보드 |
---|---|---|---|---|---|
오프 | 송신 일시정지 | DC3 | 19 | 13 | Ctrl+S |
XON | 송신 재개 | DC1 | 17 | 11 | Ctrl+Q |
메커니즘
데이터 링크의 한쪽 끝이 더 이상 데이터를 수신할 수 없는 경우(또는 그 지점에 접근하고 있는 경우) XOFF를 다른 쪽 끝에 전송합니다.다른 한쪽 끝은 XOFF 코드를 수신하여 전송을 중단합니다.첫 번째 엔드가 데이터를 다시 받아들일 준비가 되면 XON이 전송되고 다른 한쪽 엔드는 전송을 재개합니다.
예를 들어, 컴퓨터가 느린 프린터로 데이터를 전송한다고 가정해 보십시오.컴퓨터는 프린터가 인쇄할 수 있는 속도보다 데이터 전송 속도가 빠르기 때문에 프린터는 뒤처져 데이터에 압도되는 상황에 접근합니다.프린터는, XOFF 를 컴퓨터에 송신하는 것에 의해서 이 상황에 대응해, XOFF 는 데이터의 송신을 일시적으로 정지합니다.프린터가 더 많은 데이터를 수신할 준비가 되면 XON을 컴퓨터로 전송하고 XON은 다시 데이터 전송을 시작합니다.
XOFF/XON은 양방향으로 사용할 수 있습니다. 예를 들어, 2개의 텔레프린터가 서로 연결되어 있습니다.
하드웨어 흐름 제어와의 비교
소프트웨어 흐름 제어의 주요 장점은 송신기와 수신기 사이의 전기 도체 수를 줄이는 것입니다.공통 접지가 있는 경우 필요한 신호는 2개뿐입니다.하나는 송신용이고 다른 하나는 수신용입니다.하드웨어 흐름 제어에는 두 장치 사이에 추가 와이어가 필요합니다.또, 특정의 하드웨어의 실장이 필요하게 되어, 컴퓨팅의 초기(예: 1960년대와 70년대)에는 코스트가 큰폭으로 증가했습니다.
그러나 소프트웨어 흐름 제어에 문제가 없는 것은 아닙니다.가장 중요한 단점은 소프트웨어 흐름 제어의 신뢰성이 떨어진다는 것입니다.XOFF 를 송신하려면 , 송신에 적어도1 문자 시간이 필요합니다.또, 버퍼내의 이미 송신된 데이터 뒤에 큐잉 되는 경우가 있습니다.하드웨어 신호는 거의 즉각적으로 주장될 수 있으며 순서가 어긋날 수 있습니다.
유형 | 데이터 무결성 | 저비용 | 대역 외 |
---|---|---|---|
하드웨어 흐름 제어 | 가장 믿을 만한 | 아니요. | 네. |
On-chip 소프트웨어 f.c. | 좋아요. | 몇개 | 아니요. |
소프트웨어 f.c.(선입 선출이 차단되었다) | 하지만 천천히 좋은 | 네. | 아니요. |
소프트웨어 f.c.(선입 선출할 수 있었다) | Unreliable | 네. | 아니요. |
이름이"소프트웨어 흐름 제어", 흐름 제어 이 메서드를 사용하는 보통 XOFF 반응 더 이상의 활동 지연을 유발할 수 있는 소프트웨어(또는 firmware),에서 구현된다.이러한 지연 데이터 손상을 초과로 이어질 수 있다.하드웨어 흐름 제어, 반면에, 송신. UART즉시 전송을 중단할 수 있으면 더 높은 수준의 개입 없이의 직접적인 통제를 일반적으로 받고 있다.,"온칩의"소프트웨어 흐름 제어를 제공하 16950 같은 시간 기본 제공 FIFOs고 더 발전된 UARTs에 의해 발생되는 문제를 해결하기.[1], 16550 같은 지원이 부족한 UARTs, 버퍼 초과로 고생할지 모르지만 이 느낌은. UART의 피포를 비활성화하여 완화될 수 있을 때, 소프트웨어 흐름 제어를 사용하여.[1]
마지막으로, XOFF/XON 코드는 인밴드로 송신되기 때문에, 송신되는 데이터에 반드시 플로우 제어 커맨드로 오인할 수 있습니다.따라서, XOFF/XON 코드를 포함한 데이터는, 적절한 전송을 위해서, 대응하는 오버헤드를 수반하는 방법으로 부호화 할 필요가 있습니다.이것은 종종 일종의 탈출 시퀀스에서 이루어집니다.ASCII 코드를 직접 해석하는 인쇄 장치의 경우 XON 코드와 XOFF 코드는 ASCII "장치 제어" 코드 번호를 사용하기 때문에 큰 문제가 되지 않습니다.
적용들
소프트웨어 흐름 제어는 저속 장치, 특히 오래된 프린터와 덤 터미널에서 광범위하게 사용되며 일시적으로 더 많은 데이터를 수신할 수 없음을 나타냅니다.일반적으로 이는 제한된 출력 환율과 버퍼가 가득 차 있기 때문입니다.termcap 등의 일부 터미널 제어 패키지에서는 "패딩"(밀리초의 입도를[2] 사용한 짧은 지연)을 사용하여 XOFF를 주장할 필요 없이 요청된 액션을 수행할 수 있습니다.
XOFF/XON은 컴퓨터 오퍼레이터가 출력을 일시 중지했다가 다시 시작하기 위해 여전히 수동으로 사용하는 경우가 있습니다. 그렇지 않으면 디스플레이에서 너무 빨리 스크롤됩니다.
터미널 에뮬레이터 소프트웨어는 일반적으로 XOFF/XON 지원을 기본 기능으로 구현합니다.여기에는 일반적으로 최신 Unix 및 Linux 머신의 시스템 콘솔과 xterm 및 Win32 콘솔 등의 GUI 에뮬레이터가 포함됩니다.
Robust XON은 실수로 수신된 XOFF에 의해 정지되었을 경우에 대비하여 통신을 재개하는 기술입니다.수신 장치는 데이터를 수신할 수 있고 회선이 아이돌 상태일 때 정기적으로 XON 문자를 전송합니다.일반적인 용도는 시리얼 프린터(HP LaserJet II 등)가 온라인 상태이며 데이터 수신 준비가 되어 있음을 나타내는 것입니다.XON은 프린터의 펌웨어 설계에 따라 1 ~30초마다 송신됩니다.
「 」를 참조해 주세요.
레퍼런스
- ^ a b Yang, Casper (2009). The Secrets of Flow Control in Serial Communication (PDF). Moxa Tech Note (1.0 ed.). Moxa Technical Writing Center (published September 30, 2009). Archived from the original (PDF) on Aug 4, 2022. Retrieved Aug 4, 2022.
- ^ "The Termcap Library - Describe Padding". www.gnu.org.
- "HP LaserJet IIP and IIP Plus Printers - Control Panel Keys and Menus". Hewlett-Packard. Archived from the original on May 9, 2006.