Программное управление потоком - Software flow control
Эта статья нужны дополнительные цитаты для проверка.Март 2009 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Программное управление потоком это метод управление потоком используется в компьютере ссылки на данные, особенно RS-232 последовательный. Он использует специальные коды, передаваемые внутриполосный, по основному каналу связи. Эти коды обычно называются XOFF и XON (от «передача выключена» и «передача включена» соответственно). Таким образом, «программное управление потоком» иногда называют «управление потоком XON / XOFF». В этом отличие от управления потоком через выделенный из группы сигналы - "аппаратное управление потоком " - Такие как RS-232 RTS / CTS.
Представление
Для систем, использующих ASCII код символа, XOFF обычно представлен с использованием персонаж или же байт с десятичным значением 19; XON со значением 17.
Стандарт ASCII не оставляет никаких управляющие символы специально для использования в качестве XON / XOFF. Однако он предоставляет четыре общих символа «управления устройством» (от DC1 до DC4). В Телетайп Модель 33 ASR принял два из них, DC3 и DC1, для использования в качестве XOFF и XON соответственно. Это использование было скопировано другими, и теперь стандарт де-факто. Клавиатурные эквиваленты Ctrl+S для XOFF и Ctrl+Q для XON также являются производными от этого использования.
Код | Смысл | ASCII | Декабрь | Hex | Клавиатура |
---|---|---|---|---|---|
XOFF | Приостановить передачу | DC3 | 19 | 13 | Ctrl+S |
XON | Возобновить передачу | DC1 | 17 | 11 | Ctrl+Q |
Механизм
Когда один конец канала данных не может принять больше данных (или приближается к этой точке), он отправляет XOFF на другой конец. Другой конец получает код XOFF и приостанавливает работу. коробка передач. Когда первый конец снова готов принять данные, он отправляет XON, а другой конец возобновляет передачу.
Например, представьте себе компьютер отправка данных в медленный принтер. Поскольку компьютер отправляет данные быстрее, чем принтер может их распечатать, принтер отстает и приближается к ситуации, когда он может быть перегружен данными. Принтер реагирует на эту ситуацию, отправляя XOFF на компьютер, который временно прекращает отправку данных. Когда принтер снова готов к приему данных, он отправляет XON на компьютер, который снова начинает отправку данных.
XOFF / XON можно использовать в обоих направлениях, например, два телепринтеры связаны друг с другом.
Сравнение с аппаратным управлением потоком данных
Основным преимуществом программного управления потоком данных является сокращение количества электрические проводники между отправителем и получателем. Учитывая общая почва, нужны только два сигнала: один для отправки, а другой для приема. Аппаратное управление потоком требует дополнительных проводов между двумя устройствами. Это также требует специальной аппаратной реализации, которая в ранние дни вычислительной техники (то есть в 1960-е и 70-е годы) требовала более значительных затрат.
Однако управление потоком программного обеспечения не обходится без проблем. Для отправки XOFF требуется как минимум один символ времени для передачи, и он может быть поставлен в очередь после уже переданных данных, все еще находящихся в буферах. Аппаратные сигналы могут быть заявлены почти мгновенно и не по порядку.
Как следует из названия "программное управление потоком данных", управление потоком с помощью этого метода обычно реализуется в программном обеспечении (или, по крайней мере, на более высоком уровне прошивка ), что может вызвать дополнительные задержки в ответе XOFF. Аппаратное управление потоком обычно находится под прямым контролем передающего UART, который способен немедленно прекратить передачу без вмешательства более высоких уровней.
Наконец, поскольку коды XOFF / XON отправляются внутри полосы, они не могут появляться в передаваемых данных, не будучи ошибочно принятыми за команды управления потоком. Таким образом, любые данные, содержащие коды XOFF / XON, должны быть каким-то образом закодированы для правильной передачи с соответствующими накладными расходами. Часто это делается с помощью escape-последовательность. Для печатающих устройств, которые напрямую интерпретируют коды ASCII, это не большая проблема, потому что коды XON и XOFF используют ASCII кодовые номера «управления устройством».
Приложения
Программное управление потоком данных широко используется низкоскоростными устройствами, особенно старыми. принтеры и немые терминалы, чтобы указать, что они временно не могут принимать больше данных. Обычно это происходит из-за комбинации ограниченного выход ставка и любой буферы быть полным. Некоторые пакеты управления терминалом, например termcap, используйте "заполнение" (короткие задержки с точностью до миллисекунд[1]), чтобы дать такому оборудованию достаточно времени для выполнения запрошенных действий без необходимости подтверждения XOFF.
XOFF / XON по-прежнему иногда используются операторами компьютеров вручную для приостановки и перезапуска вывода, что в противном случае прокрутка выключить дисплей слишком быстро.
Эмулятор терминала программное обеспечение обычно реализует поддержку XOFF / XON как базовую функцию. Это обычно включает системная консоль на современном Unix и Linux машины, а также GUI эмуляторы, такие как xterm и Консоль Win32.
Надежный XON - это метод перезапуска связи на случай, если он был остановлен случайно полученным XOFF. Приемный блок периодически отправляет символы XON, когда он может принимать данные, а линия свободна. Одно из распространенных применений - последовательные принтеры (например, HP LaserJet II) чтобы указать, что они подключены к сети и готовы получать данные. XON отправляется каждые 1–30 секунд в зависимости от прошивки принтера.
Смотрите также
Рекомендации
- ^ "Библиотека Termcap - описание заполнения". www.gnu.org.
- «Принтеры HP LaserJet IIP и IIP Plus - Клавиши и меню панели управления». Hewlett Packard. Архивировано из оригинал 9 мая 2006 г.