[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]

Руководство по принтерам и печати


Поток данных программы буферизации. Часть I

Общая схема потока данных, проходящего через программу буферизации базовой операционной системы, изображена на приведенной ниже схеме.

Рис. 3-1. Печать в базовой операционной системе

Рисунок: Печать в базовой операционной системе.

Для передачи задания на выполнение программе буферизации базовой операционной системы служат четыре команды: lp, lpr, qprt и enq. Версии UNIX, в которых возникли эти команды, различны: lp впервые появилась в AT&T System V, lpr - в BSD, а qprt и enq - в базовой операционной системе.

Хотя пользователь может передать задание программе буферизации с помощью любой из этих четырех команд, фактической точкой входа для программы буферизации служит команда enq. Команды lp, lpr и qprt играют роль клиентов для команды enq: они анализируют свои аргументы, а затем вызывают enq. Команды-клиенты отличаются друг от друга своими действиями, а также числом и типами принимаемых параметров.

При передаче задания на выполнение программе буферизации команда enq обрабатывает запрос задания. Если запрос допустим, т.е. команда синтаксически правильна, задание помещается в очередь. Команда enq создает файл описания задания (JDF) и уведомляет процесс qdaemon о появлении нового JDF.

Для каждого нового JDF демон qdaemon считывает указанные в файле параметры задания и помещает считанные данные во внутреннюю структуру, предназначенную для отслеживания запросов заданий. Отслеживая состояние каждой очереди, qdaemon при благоприятных обстоятельствах вызывает базовую программу для обработки задания.

Базовая программа для очереди определяет способ обработки задания, помещенного в эту очередь. В командах, предназначенных для передачи заданий на выполнение программе буферизации, можно указывать флаги, изменяющие способ обработки задания. Программа qdaemon определяет порядок обработки заданий (в порядке возрастания времени выполнения или в порядке поступления), но собственно обработку задания осуществляет базовая программа. (Системный администратор может быстро выяснить функцию каждой очереди, просмотрев информацию о базовой программе в разделах файла /etc/qconfig.)

На рисунке Печать в базовой операционной системе показаны два наиболее распространенных сценария базовой программы: локальная очередь печати и удаленная очередь печати. Для локальной очереди базовой программой служит piobe (базовая программа обмена информацией с принтером). Для удаленной очереди печати - rembak (удаленная базовая программа).

Программа piobe, как и все остальные базовые программы, вызывается демоном qdaemon. Программа piobe настраивает и контролирует набор программ (конвейер), предназначенный не только для обработки задания печати, но и для передачи принтеру больших объемов управляющих данных, например, для инициализации принтера в определенном режиме, перед тем как передать на него обработанное задание. Программа piobe первой использует данные, хранящиеся в файле описания принтера. Последняя программа в конвейере, организованном программой piobe, отвечает за физическую доставку потока байтов, созданного предыдущими программами конвейера. В случае локальной очереди эта программа открывает драйвер устройства, который отправит поток байтов на локальный принтер (подключенный последовательно или параллельно) или на сетевой принтер.

Базовая программа rembak обычно применяется в случае, если удаленная очередь печати ссылается на очередь, расположенную на другом хосте (называемом сервером печати). Программа piobe может выполнять сложную обработку заданий печати; программа rembak всего лишь передает задание серверам печати по сети TCP/IP. Как показано на рисунке Печать в базовой операционной системе, если сервер печати представляет собой компьютер с базовой операционной системой, то программа rembak передает задание по сети процессу lpd, который в свою очередь вызывает enq для создания JDF и т.д., как описано выше.


[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]