<<
>>

Программное обеспечение вывода

Терминальный вывод несколько проще ввода, однако драйверы терминалов ЫБ- 232 радикально отличаются от драйверов терминалов, отображаемых на память. Как правило, метод, используемый для терминалов с интерфейсом 115-232, состоит в том, что для каждого терминала выделяется выходной буфер.
Эти буферы могут входить в тот же пул буферов, что и входные буферы, или представлять собой выделенные буферы. Когда программы выводят данные в терминал, вывод сначала копируется в буфер. После того как символы оказываются в выходном буфере, первый символ выводится на терминал, а затем драйвер блокируется. Когда происходит прерывание, извещающее драйвер о готовности терминала принять следующий символ, посылается этот символ и т. д.

Отображаемые на память терминалы позволяют применять еще более простую схему. Символы, которые должны быть напечатаны, один за другим извлекаются из пользовательского пространства и записываются непосредственно в видеопамять. В случае с терминалами 115-232 символ просто передается в последова-

тельную линию передачи данных.

При отображении на память некоторые символы нуждаются в дополнительной обработке. Среди них символы забоя, возврата каретки, перевода строки и звукового сигнала (Ctrl+G). Драйвер отображаемого на память терминала должен программно отслеживать текущее положение курсора, обновляя его после вывода печатного символа. При выводе специальных символов он должен соответствующим образом менять положение курсора.

В частности, переводя строку внизу экрана, необходимо выполнять прокрутку его содержимого. Работу прокрутки иллюстрирует рис. 3.18. Если видеоконтроллер всегда располагает начало видеопамяти по адресу ОхВОООО, единственный способ сдвинуть содержимое — скопировать 24 х 80 символов (каждый символ представляется двумя байтами) из области, начинающейся по адресу ОхВООАО, в область ОхВОООО.

На это требуется время. В растровом режиме ситуация еще хуже.

К счастью, обычно аппаратное обеспечение несколько упрощает эту операцию. У большинства видеоконтроллеров имеется регистр, указывающий, какому адресу в видеопамяти соответствует первая строка экрана. Поэтому чтобы прокрутить экран вверх на одну строку, достаточно изменить значение этого регистра так, чтобы видимая область начиналась по адресу ОхВООАО, а не ОхВОООО. Тогда единственное, что должен сделать драйвер, — просто записать новые символы в следующую строку в видеопамяти. Когда видеоконтроллер достигает верхней границы видеопамяти, он переходит в ее конец, начиная вновь с нижнего адреса. Подобная аппаратная поддержка предоставляется и в растровом режиме.

Еще одна вещь, о которой должен заботиться драйвер отображаемого на память терминала, — позиционирование курсора. Опять же, упрощает дело наличие аппаратного регистра, указывающего, куда должен переместиться курсор. Наконец, остается проблема обработки звукового сигнала, который получается путем подачи прямоугольной или синусоидальной волны на внутренний динамик, имеющий мало общего с видеопамятью.

Перед экранными редакторами и другими сложными программами иногда возникают более трудные задачи перерисовки экрана, нежели обычная прокрутка текста в конец дисплея. Для этого многие драйверы терминала поддерживают различные управляющие последовательности. Хотя некоторые терминалы пользуются уникальными наборами управляющих последовательностей, желательно иметь стандарт, который позволил бы переносить программное обеспечение с одной системы на другую. Американский национальный институт стандартов (American National Standard Institute, ANSI) разработал набор стандартных управляющих последовательностей. MINIX 3 поддерживает подмножество этого набора, представленное в табл. 3.8 и достаточное для многих распространенных операций. Когда драйвер встречает символ начала управляющей последовательности, он устанавливает флаг и дожидается ее окончания, а затем передает соответствующий символ программе. Вставка и удаление текста требуют перемещения блоков символов в видеопамяти. Здесь аппаратная поддержка практически отсутствует, за исключением прокрутки и отображения курсора.

3.8.3.

<< | >>
Источник: Э. ТАНЕНБАУМ, А. ВУДХАЛЛ. ОПЕРАЦИОННЫЕ СИСТЕМЫ Разработка и реализация 3-е издание. 2007

Еще по теме Программное обеспечение вывода:

  1. Программное обеспечение
  2. Богомазова Г.Н.. Установка и обслуживание программного обеспечения персональных компьютеров, серверов, периферийных устройств и оборудования, 2015
  3. Эд САЛЛИВАН. ВРЕМЯ — ДЕНЬГИ Создание команды разработчиков, программного обеспечения, 2001
  4. Том ДеМарко. Вальсируя с Медведями Управление рисками в проектах по разработке программного обеспечения, 2005
  5. Алистэр Коуберн. Люди как нелинейные и наиболее важные компоненты в создании программного обеспечения, 1999
  6. 2.4.1. Программный анализатор
  7. КОНЦЕПЦИЯ ПРОГРАММНО - РОЛЕВАЯ
  8. Перевод программных вопросов в анкетные
  9. 2.4.1. Программный анализатор
  10. Глава 39 О ПРОГРАММНЫХ СВОЙСТВАХ ХУДОЖЕСТВЕННОЙ ЛИТЕРАТУРЫ
  11. Статья 361-1. Создание, использование и распространение или сбыта вредных программных или технических средств, а также их распространение или сбыт
  12. Выводы
  13. 3.1.4. Выводы
  14. 2.3.4. Выводы