Брябрин. Программное обеспечение персональных ЭВМ. 1990
Страница 1 из 2
Страница 1 из 2 • 1, 2
Брябрин. Программное обеспечение персональных ЭВМ. 1990
В.М.БРЯБРИН
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПЕРСОНАЛЬНЫХ ЭВМ
М.: "НАУКА". 1990
ПРЕДИСЛОВИЕ
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ является необходимой составной частью любой ЭВМ. Без соответствующих программ практически невозможно заставить машину сделать что-либо полезное. В состав программного обеспечения персональных компьютеров входят как универсальные средства, так и прикладные программы, ориентированные на отдельные проблемные области.
В настоящее время для разных типов ПЭВМ разработано несколько десятков тысяч программ, которые могут быть разделены на следующие основные классы:
- операционные системы и сервисные программы,
- инструментальные языки и системы программирования,
- прикладные системы.
Операционные системы дополняют аппаратные средства любого персонального компьютера, позволяя прикладным программам обращаться к внешним устройствам, а человеку-пользователю ПЭВМ - управлять работой машины с помощью соответствующих команд. Ядро операционной системы обычно дополняется набором сервисных программ, которые служат разным целям; с их помощью производится начальная разметка дисков, установка параметров внешних устройств, тестирование оперативной памяти и других устройств, выдача информации на печать, стыковка с большой машиной или с локальной сетью и др. Операционные системы являются наиболее консервативной частью программного обеспечения.
Инструментальные языки и системы программирования - это особая категория программных средств. С их помощью создаются все другие программы; таким образом, они занимают в информатике особое место. Существует широкая номенклатура языков программирования, каждый из которых характеризуется определенными свойствами. Одни программисты предпочитают пользоваться каким-либо одним языком, другие, в зависимости от типа создаваемой системы, выбирают из имеющегося набора наиболее подходящий язык программирования или пользуются сочетанием разных языков.
К категории инструментальных средств относятся не только трансляторы с языков высокого уровня, таких как бейсик, паскаль или фортран, но и ассемблеры, загрузчики, отладчики и другие системные программы. С помощью инструментальных средств создается и прикладное программное обеспечение, и новые средства системного программирования, включая трансляторы с языков высокого уровня. Следовательно, эта категория программных средств совершенно аналогична средствам производства в промышленности - таким как станки, инструменты, средства переработки сырья в нужную форму. При этом роль сырья играет информация - текстовые и числовые данные, закодированные сообщения, графические изображения. Такая же информация является н результатом работы любой программной системы.
Прикладные системы составляют категорию программных средств, обращенных к пользователям персональных компьютеров - людям, которые не обязаны уметь программировать или даже знать устройство машин. Их цель заключается либо в том, чтобы с помощью ПЭВМ решать свои повседневные задачи, либо учиться определенным навыкам (не обязательно относящимся к компьютерам), либо проводить свой досуг, играя в компьютерные игры.
Прикладные системы могут иметь общий характер, например, обеспечивать составление документов и их печать или хранение и выдачу справок. Другие классы прикладных систем ориентируются на автоматизацию конкретных видов деятельности, например, обучение определенным предметам в школе, проектирование электронных изделий, анализ электрокардиограмм, проведение финансовых расчетов и многое другое.
В данной книге рассматривается назначение и основные особенности различных классов программных средств. Описывается общая структура операционных систем и конкретный состав одной из наиболее популярных систем для 16-разрядных ПЭВМ - ДОС. Рассматривается на примерах работа пользователя на персональном компьютере в рамках ДОС. Обсуждаются методы управления внешними устройствами и особенности разработки прикладных программ на ПЭВМ. Приводится описание некоторых прикладных систем общего назначения; обсуждаются методы построения автоматизированных рабочих мест на основе персональных компьютеров.
В книге использованы материалы, публикуемые в журналах и монографиях по персональным компьютерам, а также руководства по операционной системе ДОС, по языкам и системам программирования и по некоторым прикладным системам.
Терминология, использованная в книге, соответствует сформировавшейся в нашей стране профессиональной лексике в области персональных ЭВМ. Применяемые в книге обозначения языков програмироваиия - без выделения и с маленькой буквы - приняты редакцией. В конце книги приведен краткий терминологический словарь.
При подготовке книги в значительной степени использован опыт работы автора и его коллег в Вычислительном центре АН СССР. Ряд программ, описываемых в книге, разработан в ВЦ АН СССР в 1982-1985г. А.Б.Борковским, Е.Н.Веселовым, Г.Г.Гнездиловой, О.А.Гончаровым, В.В.Пономаревым, Г.В.Сениным, Б.Т.Сираджовым, В.А.Рыжовым, А.А.Федоровым, А.А.Чижовым. Коллективный опыт работы в значительной степени повлиял на формирование взглядов автора. Созданные в ВЦ АН СССР прикладные системы и сервисные программы в настоящее время используются во многих организациях, и это служит апробацией обсуждаемых в данной книге идей. Автор выражает также свою искреннюю признательность Т.В.Усковой, оказавшей большую помощь в работе над книгой.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПЕРСОНАЛЬНЫХ ЭВМ
М.: "НАУКА". 1990
ПРЕДИСЛОВИЕ
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ является необходимой составной частью любой ЭВМ. Без соответствующих программ практически невозможно заставить машину сделать что-либо полезное. В состав программного обеспечения персональных компьютеров входят как универсальные средства, так и прикладные программы, ориентированные на отдельные проблемные области.
В настоящее время для разных типов ПЭВМ разработано несколько десятков тысяч программ, которые могут быть разделены на следующие основные классы:
- операционные системы и сервисные программы,
- инструментальные языки и системы программирования,
- прикладные системы.
Операционные системы дополняют аппаратные средства любого персонального компьютера, позволяя прикладным программам обращаться к внешним устройствам, а человеку-пользователю ПЭВМ - управлять работой машины с помощью соответствующих команд. Ядро операционной системы обычно дополняется набором сервисных программ, которые служат разным целям; с их помощью производится начальная разметка дисков, установка параметров внешних устройств, тестирование оперативной памяти и других устройств, выдача информации на печать, стыковка с большой машиной или с локальной сетью и др. Операционные системы являются наиболее консервативной частью программного обеспечения.
Инструментальные языки и системы программирования - это особая категория программных средств. С их помощью создаются все другие программы; таким образом, они занимают в информатике особое место. Существует широкая номенклатура языков программирования, каждый из которых характеризуется определенными свойствами. Одни программисты предпочитают пользоваться каким-либо одним языком, другие, в зависимости от типа создаваемой системы, выбирают из имеющегося набора наиболее подходящий язык программирования или пользуются сочетанием разных языков.
К категории инструментальных средств относятся не только трансляторы с языков высокого уровня, таких как бейсик, паскаль или фортран, но и ассемблеры, загрузчики, отладчики и другие системные программы. С помощью инструментальных средств создается и прикладное программное обеспечение, и новые средства системного программирования, включая трансляторы с языков высокого уровня. Следовательно, эта категория программных средств совершенно аналогична средствам производства в промышленности - таким как станки, инструменты, средства переработки сырья в нужную форму. При этом роль сырья играет информация - текстовые и числовые данные, закодированные сообщения, графические изображения. Такая же информация является н результатом работы любой программной системы.
Прикладные системы составляют категорию программных средств, обращенных к пользователям персональных компьютеров - людям, которые не обязаны уметь программировать или даже знать устройство машин. Их цель заключается либо в том, чтобы с помощью ПЭВМ решать свои повседневные задачи, либо учиться определенным навыкам (не обязательно относящимся к компьютерам), либо проводить свой досуг, играя в компьютерные игры.
Прикладные системы могут иметь общий характер, например, обеспечивать составление документов и их печать или хранение и выдачу справок. Другие классы прикладных систем ориентируются на автоматизацию конкретных видов деятельности, например, обучение определенным предметам в школе, проектирование электронных изделий, анализ электрокардиограмм, проведение финансовых расчетов и многое другое.
В данной книге рассматривается назначение и основные особенности различных классов программных средств. Описывается общая структура операционных систем и конкретный состав одной из наиболее популярных систем для 16-разрядных ПЭВМ - ДОС. Рассматривается на примерах работа пользователя на персональном компьютере в рамках ДОС. Обсуждаются методы управления внешними устройствами и особенности разработки прикладных программ на ПЭВМ. Приводится описание некоторых прикладных систем общего назначения; обсуждаются методы построения автоматизированных рабочих мест на основе персональных компьютеров.
В книге использованы материалы, публикуемые в журналах и монографиях по персональным компьютерам, а также руководства по операционной системе ДОС, по языкам и системам программирования и по некоторым прикладным системам.
Терминология, использованная в книге, соответствует сформировавшейся в нашей стране профессиональной лексике в области персональных ЭВМ. Применяемые в книге обозначения языков програмироваиия - без выделения и с маленькой буквы - приняты редакцией. В конце книги приведен краткий терминологический словарь.
При подготовке книги в значительной степени использован опыт работы автора и его коллег в Вычислительном центре АН СССР. Ряд программ, описываемых в книге, разработан в ВЦ АН СССР в 1982-1985г. А.Б.Борковским, Е.Н.Веселовым, Г.Г.Гнездиловой, О.А.Гончаровым, В.В.Пономаревым, Г.В.Сениным, Б.Т.Сираджовым, В.А.Рыжовым, А.А.Федоровым, А.А.Чижовым. Коллективный опыт работы в значительной степени повлиял на формирование взглядов автора. Созданные в ВЦ АН СССР прикладные системы и сервисные программы в настоящее время используются во многих организациях, и это служит апробацией обсуждаемых в данной книге идей. Автор выражает также свою искреннюю признательность Т.В.Усковой, оказавшей большую помощь в работе над книгой.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Брябрин. Программное обеспечение персональных ЭВМ. 1990
1.1. ОПЕРАЦИОННАЯ СИСТЕМА - "ПРОГРАММНАЯ ОБОЛОЧКА" АППАРАТНЫХ СРЕДСТВ ПЭВМ
ОПЕРАЦИОННАЯ СИСТЕМА (ОС) является неотъемлемой частью ПЭВМ, обеспечивая управление всеми аппаратными компонентами и позволяя отделять остальные классы программ от непосредственного взаимодействия с аппаратурой. Число типов ОС невелико - не более нескольким десятков, ио их роль чрезвычайно важна.
Прежде чем переходить к рассмотрению основных классов ОС, следует обратить внимание на существование машин, в которых они носят упрощенный, вырожденный характер. В домашних или школьных компьютерах, ориентированных лишь на язык бейсик н на игры, функции ОС обычно погружены "внутрь" бейсика. Это значит, что сразу после включения машины пользователь попадает в операционную среду этого языка. При этом он может вводить с клавиатуры текст программы или набрать команду, обеспечивающую запуск программы, распечатку ее текста, обращение к диску или магнитофону для записи/чтения программы и др. Все команды расшифровываются и выполняются самим интерпретатором языка бейсик. Таким образом, ОС и бейсик представляют на таких машинах единое целое. Некоторые модели ориентируются не на бейсик, а на другой базовый язык - лого или форт; однако все сказанное выше применимо и к этим случаям.
На более мощных персональных компьютерах, где необходимо обеспечивать работу различных систем программирования и прикладных программ, без отдельной, самостоятельной ОС уже нельзя обойтись.
В настоящее время получили широкое распространение и фактически стандартизованы несколько "семейств" ОС, ориентированных на определенные типы микропроцессоров. Наиболее распространены операционные системы CP/M, MS-DOS и UNIX, которые мы еще рассмотрим подробнее. Первая из этих систем используется на машинах с 8-разрядными микропроцессорами, вторая - на 16-разрядиых машинах, третья - в основном на 32-разрядиых машинах.
Все остальное программное обеспечение можно разделить на большие группы, связанный с соответствующими семействами ОС. Программы, созданные для определенной ОС, обычно не работают под управлением других систем. Следовательно, прикладное программное обеспечение для ПЭВМ, как и инструментальные языки и системы программирования, можно разделить на несколько больших групп, обусловленных существованием для каждого типа микропроцессора нескольких операционных систем (рис.1.1).
Рис.1.1. Основные группы программного обеспечения ПЭВМ
ДЛЯ ЧЕГО НУЖНА ОПЕРАЦИОННАЯ СИСТЕМА? ОС обеспечивает выполнение двух главных задач:
- поддержку работы всех программ, обеспечение их взаимодействия с аппаратурой;
- предоставление пользователям возможностей общего управления машиной.
В рамках первой задачи ОС обеспечивает взаимодействие программ с внешними устройствами и друг с другом, распределение оперативной памяти, выявление различных событий, возникающих в процессе работы и соответствующую реакцию на них (например, при ошибочных ситуациях) и др. Общее управление машиной осуществляется на основе командного языка (языка директив), с помощью которого человек может осуществлять такие операции, как разметка дисков, копирование файлов, распечатка каталогов на экране дисплея, запуск любых программ, установка режимов работы дисплея, принтера, коммуникаций и другие действия.
В различных моделях ПЭВМ используются ОС с разной архитектурой и возможностями; для их работы необходимы различные ресурсы оперативной памяти; они предоставляют разную степень сервиса для программирования и работы с готовыми программами.
Рассмотрим наиболее простую операционную систему, предоставляющую пользователям лишь самый необходимый набор средств для управления ресурсами ПЭВМ, доступа к файловой системе н организации диалога. Такой "минимальный" подход реализуется в операционных системах, которые применяются на большинстве 8-разрядных ПЭВМ. Обеспечение удобного взаимодействия ПЭВМ с пользователем - "дружественного интерфейса", поддержка специфических внешних устройств, реализация общих сервисных функций возлагается в этом случае не столько на ОС, сколько на прикладные программы, работающие под их управлением. ОС данного класса не дают никаких особых возможностей для системного программиста, поэтому их применение оправдано на дешевых персональных компьютерах, часто попадающих в руки программистов-любителей - людей, начинающих заниматься программированием из любопытства и очень быстро понимающих, что ПЭВМ могут принести реальную пользу в нх профессиональной деятельности. Наибольшее распространение среди систем такого типа получили ОС семейства CP/M.
Другой класс образуют ОС с более развитыми средствами доступа ко всем аппаратным компонентам, гибкой файловой системой, основанной на иерархической структуре каталогов, удобным для пользователей командным языком. Средства, предоставляемые ОС этого класса, позволяют, с одной стороны, формировать удобную операционную обстановку для разработки программного обеспечения; с другой стороны, на их основе довольно легко можно создавать автоматизированные рабочие места с простыми средствами доступа пользователей к прикладным пакетам и программам. К этому классу относятся ОС семейства MS-DOS, получившие широкое распространение на 16-разрядных персональных компьютерах.
Третий класс ОС ориентирован в основном на эффективную поддержку процесса разработки программного обеспечения. Наиболее яркими представителями этого класса являются ОС семейства UNIX. Здесь, как н в системах второго класса, имеется развитая файловая система, обеспечивается программирование доступа ко всем типам внешних устройств, имеется очень мощный командный язык. Кроме того, в состав системы входит множество служебных программ ("утилит"), обеспечивающих выполнение разнообразных функций, потребность в которых систематически возникает при разработке программного обеспечения. Наконец, в этих системах заложена возможность организации одновременной работы с ПЭВМ нескольких пользователей с отдельных терминалов - в отличие от вышеупомянутых ОС, рассчитанных на одного пользователя. Для фактического использования этой возможности нужна уже более мощная аппаратная поддержка, что превращает персональный компьютер в довольно дорогую рабочую станцию. Системы этого типа требуют значительных ресурсов (памяти и быстродействия), не всегда доступных на дешевых ПЭВМ, в то время как их мощность часто является избыточной с точки зрения большинства так называемых "конечных" пользователей, занятых не столько разработкой программ, сколько решением своих профессиональных задач.
Наконец, особый класс составляют ОС, ориентированные главным образом на поддержку удобной работы конечных пользователей. Такие системы имеют развитые средства поддержки диалога, использующие графику, дисплейные окна, специальные манипуляторы ("мышь", "джойстик") для выбора объектов и операций над ними. Эти возможности, однако, мало что дают для разработки программ в рамках таких операционных систем. Программирование в ОС этого типа, конечно, тоже доступно с использованием соответствующих трансляторов, однако в этом случае программист не получает никаких преимуществ для своей работы, скорее, наоборот: его работа замедляется из-за необходимости производить несвойственные манипуляции с графическими объектами вместо использования привычных большинству программистов текстовых команд, а также из-за того, что довольно значительные ресурсы - оперативная память и время микропроцессора - расходуются на поддержку удобного интерфейса, в котором системный программист не испытывает большой нужды.
Из каких частей состоит операционная система? В полной конфигурации ОС для персонального компьютера, ориентированного на профессиональное применение, должна содержать следующие основные компоненты:
- файловую систему,
- драйверы внешних устройств,
- процессор командного языка. Рассмотрим указанные компоненты подробнее.
ФАЙЛОВАЯ СИСТЕМА - ХРАНИЛИЩЕ ПРОГРАММ И ДАННЫХ. Одна из важнейших функций ОС - организация ФАЙЛОВОЙ СИСТЕМЫ. ФАЙЛ - это место постоянного хранения информации - программ, данных для их работы, текстов, закодированных изображений и др. Реализуются файлы как участки памяти на внешних магнитных носителях - гибких или жестких магнитных дисках. Каждый файл имеет имя, зарегистрированное в КАТАЛОГЕ - оглавлении файлов. Каталог (иногда называемый ДИРЕКТОРИЕМ) доступен пользователю через командный язык операционной системы - его можно просматривать, переименовывать зарегистрированные в нем файлы, переносить их содержимое на новое место и удалять. Каталог может иметь собственное имя и храниться в другом каталоге наряду с обычными файлами; так образуются иерархические файловые структуры.
К файловой системе имеет доступ также и любая прикладная программа, для чего во всех языках программирования имеются специальные процедуры. Понятие файла может быть обобщено на любой источник или потребитель информации в машине, например, коммуникационный канал, принтер, дисплей, клавиатуру и др. Такая трактовка, принятая в развитых ОС, например, в системах MS-DOS и UNIX, создает удобства для организации взаимодействия программ и обмена информацией с внешними устройствами.
Для персональной ЭВМ файловая система в определенной степени является сердцевиной всего системного программного обеспечения. Структура файловой системы и структура хранения данных на внешних магнитных носителях определяют удобство работы пользователя, скорость доступа к файлам, возможность создания хороших баз данных и т.д. От файловой системы во многом зависит организация многопользовательской работы, если она поддерживается на данной модели ПЭВМ. Таким образом, возможности, предоставляемые файловой системой, накладывают отпечаток на всю работу ОС, а значит и пользователя. В однозадачных ОС (не поддерживающих параллельную работу нескольких программ) файловая система является наиболее крупной составной частью.
КАК УПРАВЛЯТЬ ВНЕШНИМИ УСТРОЙСТВАМИ? ПЭВМ может иметь довольно большой набор ВНЕШНИХ УСТРОЙСТВ (ВУ). Помимо стандартных ВУ - дисплея, клавиатуры, гибких дисков, жестких дисков и принтера, к машине могут подключаться по последовательным и параллельным коммуникационным каналам дополнительные устройства ввода/вывода - графопостроители, планшеты, манипуляторы типа "мышь", а также специфические устройства - модемы для связи с телефонными линиями, контроллеры локальных сетей, аналого-цифровые и цифро-аналоговые преобразователи и другое оборудование. Более того, даже стандартные устройства, например принтеры, могут иметь несколько режимов работы и считаться, вследствие этого, разными устройствами. Каждое ВУ характеризуется своей пропускной способностью и структурой передаваемых/принимаемых данных.
Поддержка широкого набора ВУ - одна из важнейших функций ОС. Для ее осуществления введено понятие ДРАЙВЕРА - программы специального типа, ориентированной на управление внешним устройством. Каждому типу ВУ сопоставляется свой драйвер. Драйверы стандартных устройств образуют в совокупностн базовую систему ввода/вывода (BIOS), которая часто заносится в ПЗУ системного блока ПЭВМ. Драйверы дополнительных устройств могут подключаться к ОС динамически при запуске машины. Некоторые типы ОС предоставляют средства для составления новых драйверов, ориентированных на особые устройства.
ВЗАИМОДЕЙСТВИЕ ПОЛЬЗОВАТЕЛЯ С ОПЕРАЦИОННОЙ СИСТЕМОЙ. Во всякой операционной системе имеется КОМАНДНЫЙ ЯЗЫК, который позволяет выполнять те или иные действия - обращение к каталогу, разметку внешних носителей, запуск программ и др. Анализ и исполнение команд пользователя, включая загрузку готовых программ из файлов в оперативную память ПЭВМ н их запуск, осуществляется КОМАНДНЫМ ПРОЦЕССОРОМ ОС. Эта часть операционной системы выполняет важную функцию поддержки взаимодействия с пользователями.
Кроме ввода отдельных команд, которые немедленно выполняются, имеется возможность составления целых программ на командном языке, с помощью которых можно задать довольно сложную последовательность действий, не прибегая к обычному языку программирования. Командный процессор в некоторых ОС позволяет создать удобную операционную обстановку для конкретного пользователя, избавив его от утомительных служебных операций.
СКОЛЬКО ЗАДАЧ МОЖЕТ РЕШАТЬСЯ НА ПЭВМ ОДНОВРЕМЕННО? Большинство простых операционных систем обеспечивает такую работу машины, при которой в каждый момент времени на ней решается только одна задача. Примером такой задачи может являться процесс редактирования текста, работа какого-либо транслятора, печать текста на принтере. При решении такой задачи оперативная память машины и процессор не могут быть заняты другой работой.
Некоторые типы ОС ориентированы на одновременное обслуживание нескольких задач. При этом имеется в виду возможность запуска одной или нескольких программ с соответствующим распределением оперативной памяти между ними, переключением центрального процессора и других устройств с обслуживания одной задачи на другую, организации обмена сообщениями между ними, синхронизации и др. Типичное использование возможности многозадачного режима - запуск на фоне диалоговой работы пользователя программы печати на принтере или программы поддержки связи с локальной сетью. Довольно часто под многозадачным режимом подразумевается одновременное обслуживание нескольких пользователей, работающих за отдельными терминалами. Однако для ПЭВМ среднего класса, имеющих всего один дисплей и клавиатуру, такой режим работы не нужен, и специальная поддержка его средствами операционной системы отняла бы слишком много ценных ресурсов.
Кроме рассмотренных общих функций, ОС иногда обеспечивают программную поддержку некоторых сервисных функций, таких как вывод на экран дисплея простейших геометрических фигур, использование дисплейных окон и др. Особую роль играют программы, позволяющие использовать ПЭВМ в качестве терминала большой ЭВМ. Такие программы называют ЭМУЛЯТОРАМИ ТЕРМИНАЛОВ. Реализуются они в виде специальных драйверов в рамках стандартной ОС. Программа-эмулятор воспринимает от пользователя команды, обращенные к другой машине, перерабатывает их в соответствующее внутреннее представление и посылает в другую машину через линию связи. Кроме того, эта программа должна принимать сообщения от другой ("главной") машины н выдавать их на дисплей ПЭВМ. Важнейшая функция программ-эмуляторов - обеспечение пересылки файлов между машинами в обоих направлениях.
Таковы типичные функции и состав операционных систем для ПЭВМ. Чтобы дать читателю более детальное представление об ОС, рассмотрим подробнее несколько конкретных систем.
ОПЕРАЦИОННАЯ СИСТЕМА (ОС) является неотъемлемой частью ПЭВМ, обеспечивая управление всеми аппаратными компонентами и позволяя отделять остальные классы программ от непосредственного взаимодействия с аппаратурой. Число типов ОС невелико - не более нескольким десятков, ио их роль чрезвычайно важна.
Прежде чем переходить к рассмотрению основных классов ОС, следует обратить внимание на существование машин, в которых они носят упрощенный, вырожденный характер. В домашних или школьных компьютерах, ориентированных лишь на язык бейсик н на игры, функции ОС обычно погружены "внутрь" бейсика. Это значит, что сразу после включения машины пользователь попадает в операционную среду этого языка. При этом он может вводить с клавиатуры текст программы или набрать команду, обеспечивающую запуск программы, распечатку ее текста, обращение к диску или магнитофону для записи/чтения программы и др. Все команды расшифровываются и выполняются самим интерпретатором языка бейсик. Таким образом, ОС и бейсик представляют на таких машинах единое целое. Некоторые модели ориентируются не на бейсик, а на другой базовый язык - лого или форт; однако все сказанное выше применимо и к этим случаям.
На более мощных персональных компьютерах, где необходимо обеспечивать работу различных систем программирования и прикладных программ, без отдельной, самостоятельной ОС уже нельзя обойтись.
В настоящее время получили широкое распространение и фактически стандартизованы несколько "семейств" ОС, ориентированных на определенные типы микропроцессоров. Наиболее распространены операционные системы CP/M, MS-DOS и UNIX, которые мы еще рассмотрим подробнее. Первая из этих систем используется на машинах с 8-разрядными микропроцессорами, вторая - на 16-разрядиых машинах, третья - в основном на 32-разрядиых машинах.
Все остальное программное обеспечение можно разделить на большие группы, связанный с соответствующими семействами ОС. Программы, созданные для определенной ОС, обычно не работают под управлением других систем. Следовательно, прикладное программное обеспечение для ПЭВМ, как и инструментальные языки и системы программирования, можно разделить на несколько больших групп, обусловленных существованием для каждого типа микропроцессора нескольких операционных систем (рис.1.1).
Рис.1.1. Основные группы программного обеспечения ПЭВМ
ДЛЯ ЧЕГО НУЖНА ОПЕРАЦИОННАЯ СИСТЕМА? ОС обеспечивает выполнение двух главных задач:
- поддержку работы всех программ, обеспечение их взаимодействия с аппаратурой;
- предоставление пользователям возможностей общего управления машиной.
В рамках первой задачи ОС обеспечивает взаимодействие программ с внешними устройствами и друг с другом, распределение оперативной памяти, выявление различных событий, возникающих в процессе работы и соответствующую реакцию на них (например, при ошибочных ситуациях) и др. Общее управление машиной осуществляется на основе командного языка (языка директив), с помощью которого человек может осуществлять такие операции, как разметка дисков, копирование файлов, распечатка каталогов на экране дисплея, запуск любых программ, установка режимов работы дисплея, принтера, коммуникаций и другие действия.
В различных моделях ПЭВМ используются ОС с разной архитектурой и возможностями; для их работы необходимы различные ресурсы оперативной памяти; они предоставляют разную степень сервиса для программирования и работы с готовыми программами.
Рассмотрим наиболее простую операционную систему, предоставляющую пользователям лишь самый необходимый набор средств для управления ресурсами ПЭВМ, доступа к файловой системе н организации диалога. Такой "минимальный" подход реализуется в операционных системах, которые применяются на большинстве 8-разрядных ПЭВМ. Обеспечение удобного взаимодействия ПЭВМ с пользователем - "дружественного интерфейса", поддержка специфических внешних устройств, реализация общих сервисных функций возлагается в этом случае не столько на ОС, сколько на прикладные программы, работающие под их управлением. ОС данного класса не дают никаких особых возможностей для системного программиста, поэтому их применение оправдано на дешевых персональных компьютерах, часто попадающих в руки программистов-любителей - людей, начинающих заниматься программированием из любопытства и очень быстро понимающих, что ПЭВМ могут принести реальную пользу в нх профессиональной деятельности. Наибольшее распространение среди систем такого типа получили ОС семейства CP/M.
Другой класс образуют ОС с более развитыми средствами доступа ко всем аппаратным компонентам, гибкой файловой системой, основанной на иерархической структуре каталогов, удобным для пользователей командным языком. Средства, предоставляемые ОС этого класса, позволяют, с одной стороны, формировать удобную операционную обстановку для разработки программного обеспечения; с другой стороны, на их основе довольно легко можно создавать автоматизированные рабочие места с простыми средствами доступа пользователей к прикладным пакетам и программам. К этому классу относятся ОС семейства MS-DOS, получившие широкое распространение на 16-разрядных персональных компьютерах.
Третий класс ОС ориентирован в основном на эффективную поддержку процесса разработки программного обеспечения. Наиболее яркими представителями этого класса являются ОС семейства UNIX. Здесь, как н в системах второго класса, имеется развитая файловая система, обеспечивается программирование доступа ко всем типам внешних устройств, имеется очень мощный командный язык. Кроме того, в состав системы входит множество служебных программ ("утилит"), обеспечивающих выполнение разнообразных функций, потребность в которых систематически возникает при разработке программного обеспечения. Наконец, в этих системах заложена возможность организации одновременной работы с ПЭВМ нескольких пользователей с отдельных терминалов - в отличие от вышеупомянутых ОС, рассчитанных на одного пользователя. Для фактического использования этой возможности нужна уже более мощная аппаратная поддержка, что превращает персональный компьютер в довольно дорогую рабочую станцию. Системы этого типа требуют значительных ресурсов (памяти и быстродействия), не всегда доступных на дешевых ПЭВМ, в то время как их мощность часто является избыточной с точки зрения большинства так называемых "конечных" пользователей, занятых не столько разработкой программ, сколько решением своих профессиональных задач.
Наконец, особый класс составляют ОС, ориентированные главным образом на поддержку удобной работы конечных пользователей. Такие системы имеют развитые средства поддержки диалога, использующие графику, дисплейные окна, специальные манипуляторы ("мышь", "джойстик") для выбора объектов и операций над ними. Эти возможности, однако, мало что дают для разработки программ в рамках таких операционных систем. Программирование в ОС этого типа, конечно, тоже доступно с использованием соответствующих трансляторов, однако в этом случае программист не получает никаких преимуществ для своей работы, скорее, наоборот: его работа замедляется из-за необходимости производить несвойственные манипуляции с графическими объектами вместо использования привычных большинству программистов текстовых команд, а также из-за того, что довольно значительные ресурсы - оперативная память и время микропроцессора - расходуются на поддержку удобного интерфейса, в котором системный программист не испытывает большой нужды.
Из каких частей состоит операционная система? В полной конфигурации ОС для персонального компьютера, ориентированного на профессиональное применение, должна содержать следующие основные компоненты:
- файловую систему,
- драйверы внешних устройств,
- процессор командного языка. Рассмотрим указанные компоненты подробнее.
ФАЙЛОВАЯ СИСТЕМА - ХРАНИЛИЩЕ ПРОГРАММ И ДАННЫХ. Одна из важнейших функций ОС - организация ФАЙЛОВОЙ СИСТЕМЫ. ФАЙЛ - это место постоянного хранения информации - программ, данных для их работы, текстов, закодированных изображений и др. Реализуются файлы как участки памяти на внешних магнитных носителях - гибких или жестких магнитных дисках. Каждый файл имеет имя, зарегистрированное в КАТАЛОГЕ - оглавлении файлов. Каталог (иногда называемый ДИРЕКТОРИЕМ) доступен пользователю через командный язык операционной системы - его можно просматривать, переименовывать зарегистрированные в нем файлы, переносить их содержимое на новое место и удалять. Каталог может иметь собственное имя и храниться в другом каталоге наряду с обычными файлами; так образуются иерархические файловые структуры.
К файловой системе имеет доступ также и любая прикладная программа, для чего во всех языках программирования имеются специальные процедуры. Понятие файла может быть обобщено на любой источник или потребитель информации в машине, например, коммуникационный канал, принтер, дисплей, клавиатуру и др. Такая трактовка, принятая в развитых ОС, например, в системах MS-DOS и UNIX, создает удобства для организации взаимодействия программ и обмена информацией с внешними устройствами.
Для персональной ЭВМ файловая система в определенной степени является сердцевиной всего системного программного обеспечения. Структура файловой системы и структура хранения данных на внешних магнитных носителях определяют удобство работы пользователя, скорость доступа к файлам, возможность создания хороших баз данных и т.д. От файловой системы во многом зависит организация многопользовательской работы, если она поддерживается на данной модели ПЭВМ. Таким образом, возможности, предоставляемые файловой системой, накладывают отпечаток на всю работу ОС, а значит и пользователя. В однозадачных ОС (не поддерживающих параллельную работу нескольких программ) файловая система является наиболее крупной составной частью.
КАК УПРАВЛЯТЬ ВНЕШНИМИ УСТРОЙСТВАМИ? ПЭВМ может иметь довольно большой набор ВНЕШНИХ УСТРОЙСТВ (ВУ). Помимо стандартных ВУ - дисплея, клавиатуры, гибких дисков, жестких дисков и принтера, к машине могут подключаться по последовательным и параллельным коммуникационным каналам дополнительные устройства ввода/вывода - графопостроители, планшеты, манипуляторы типа "мышь", а также специфические устройства - модемы для связи с телефонными линиями, контроллеры локальных сетей, аналого-цифровые и цифро-аналоговые преобразователи и другое оборудование. Более того, даже стандартные устройства, например принтеры, могут иметь несколько режимов работы и считаться, вследствие этого, разными устройствами. Каждое ВУ характеризуется своей пропускной способностью и структурой передаваемых/принимаемых данных.
Поддержка широкого набора ВУ - одна из важнейших функций ОС. Для ее осуществления введено понятие ДРАЙВЕРА - программы специального типа, ориентированной на управление внешним устройством. Каждому типу ВУ сопоставляется свой драйвер. Драйверы стандартных устройств образуют в совокупностн базовую систему ввода/вывода (BIOS), которая часто заносится в ПЗУ системного блока ПЭВМ. Драйверы дополнительных устройств могут подключаться к ОС динамически при запуске машины. Некоторые типы ОС предоставляют средства для составления новых драйверов, ориентированных на особые устройства.
ВЗАИМОДЕЙСТВИЕ ПОЛЬЗОВАТЕЛЯ С ОПЕРАЦИОННОЙ СИСТЕМОЙ. Во всякой операционной системе имеется КОМАНДНЫЙ ЯЗЫК, который позволяет выполнять те или иные действия - обращение к каталогу, разметку внешних носителей, запуск программ и др. Анализ и исполнение команд пользователя, включая загрузку готовых программ из файлов в оперативную память ПЭВМ н их запуск, осуществляется КОМАНДНЫМ ПРОЦЕССОРОМ ОС. Эта часть операционной системы выполняет важную функцию поддержки взаимодействия с пользователями.
Кроме ввода отдельных команд, которые немедленно выполняются, имеется возможность составления целых программ на командном языке, с помощью которых можно задать довольно сложную последовательность действий, не прибегая к обычному языку программирования. Командный процессор в некоторых ОС позволяет создать удобную операционную обстановку для конкретного пользователя, избавив его от утомительных служебных операций.
СКОЛЬКО ЗАДАЧ МОЖЕТ РЕШАТЬСЯ НА ПЭВМ ОДНОВРЕМЕННО? Большинство простых операционных систем обеспечивает такую работу машины, при которой в каждый момент времени на ней решается только одна задача. Примером такой задачи может являться процесс редактирования текста, работа какого-либо транслятора, печать текста на принтере. При решении такой задачи оперативная память машины и процессор не могут быть заняты другой работой.
Некоторые типы ОС ориентированы на одновременное обслуживание нескольких задач. При этом имеется в виду возможность запуска одной или нескольких программ с соответствующим распределением оперативной памяти между ними, переключением центрального процессора и других устройств с обслуживания одной задачи на другую, организации обмена сообщениями между ними, синхронизации и др. Типичное использование возможности многозадачного режима - запуск на фоне диалоговой работы пользователя программы печати на принтере или программы поддержки связи с локальной сетью. Довольно часто под многозадачным режимом подразумевается одновременное обслуживание нескольких пользователей, работающих за отдельными терминалами. Однако для ПЭВМ среднего класса, имеющих всего один дисплей и клавиатуру, такой режим работы не нужен, и специальная поддержка его средствами операционной системы отняла бы слишком много ценных ресурсов.
Кроме рассмотренных общих функций, ОС иногда обеспечивают программную поддержку некоторых сервисных функций, таких как вывод на экран дисплея простейших геометрических фигур, использование дисплейных окон и др. Особую роль играют программы, позволяющие использовать ПЭВМ в качестве терминала большой ЭВМ. Такие программы называют ЭМУЛЯТОРАМИ ТЕРМИНАЛОВ. Реализуются они в виде специальных драйверов в рамках стандартной ОС. Программа-эмулятор воспринимает от пользователя команды, обращенные к другой машине, перерабатывает их в соответствующее внутреннее представление и посылает в другую машину через линию связи. Кроме того, эта программа должна принимать сообщения от другой ("главной") машины н выдавать их на дисплей ПЭВМ. Важнейшая функция программ-эмуляторов - обеспечение пересылки файлов между машинами в обоих направлениях.
Таковы типичные функции и состав операционных систем для ПЭВМ. Чтобы дать читателю более детальное представление об ОС, рассмотрим подробнее несколько конкретных систем.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Брябрин. Программное обеспечение персональных ЭВМ. 1990
1.2. ОПЕРАЦИОННЫЕ СИСТЕМЫ СЕМЕЙСТВА CP/M
ОС CP/M положила начало созданию операционных систем для микроЭВМ. Она была разработана в 1974г., после чего была установлена на многих 8-разрядных машинах. В рамках этой операционной системы было создано программное обеспечение значительного объема, включающее трансляторы с языков бейсик, паскаль, си, фортран, кобол, лисп, ада и многих других, текстовые и табличные процессоры, системы управления базами данных, графические пакеты, символьные отладчики и другие проблемно-ориентированные программы.
Успех системы в значительной степени был обусловлен ее предельной простотой и компактностью, возможностью быстрой настройки на разные конфигурации ПЭВМ. Первая версия системы занимала всего 4 Кбайт, что было весьма важно в условиях ограниченных объемов памяти персональных компьютеров того времени. Затем система была реконструирована с целью обеспечения большей независимости от состава и параметров внешних устройств, применяемых на ПЭВМ. В современных версиях этой системы настройка на конкретную архитектуру машины обеспечивается с помощью специального текстового файла, описывающего конфигурацию подключенных внешних устройств.
CP/M постоянно хранится иа диске и состоит из трех частей: базовой системы ввода/вывода, базовой дисковой операционной системы и командного процессора. Эти части содержатся в специальных файлах с именами BIOS, BDOS и CCP. В начале работы, при включении машины, указанные файлы загружаются в оперативную память. При этом они располагаются на старших адресах, оставляя младшие адреса для программ пользователя, загружаемых с диска. Требуемая для работы память невелика - в пределах 16 Кбайт.
БАЗОВАЯ СИСТЕМА ВВОДА/ВЫВОДА (БСВВ). БСВВ содержит в основном подпрограммы-драйверы внешних устройств. Это единственная часть CP/M, которая требует настройки на конкретное оборудование. Таблицы, описывающие характеристики используемых дисковых накопителей, параметры дисплея, клавиатуры и последовательного канала, формируются при генерации ОС, во время которой происходит перекомпиляция БСВВ с использованием специального файла конфигурации CONFIG.CPM. При установке нового устройства достаточно внести в CONFIG.CPM соответствующую информацию, скомпилировать новый вариант БСВВ, и система оказывается готовой к работе.
БАЗОВАЯ ДИСКОВАЯ ОПЕРАЦИОННАЯ СИСТЕМА. Часть CP/M, называемая БАЗОВОЙ ДИСКОВОЙ ОПЕРАЦИОННОЙ СИСТЕМОЙ (БДОС), содержит функции управления файловой системой и общего управления машиной (таких функций около 40). Файловая система CP/M довольно ограниченна. Имена всех дисковых файлов хранятся в одном большом каталоге, который можно разделить на несколько нумерованных пользовательских областей.
Такая организация файловой системы не очень удобна, так как не позволяет структурировать хранимую информацию. Весьма ограниченны возможности улавливания ошибочных ситуаций, диагностические сообщения чрезмерно лаконичны. Компенсацией за эти ограничения является компактность системы и удобство ее настройки на заданную конфигурацию.
КОМАНДНЫЙ ПРОЦЕССОР (КП). КП нмеет средства для обработки лишь нескольких встроенных команд. Сюда относятся команды настройки на рабочий диск, команда USER - настройка на нового пользователя, DIR - выдача каталога диска, TYPE - вывод содержимого файла на экран дисплея, REN - переименование файла, ERA - удаление файла. Это самый минимальный набор команд, которыми приходится пользоваться при общении с ОС. Другие команды (а их число в развитых ОС может составлять несколько сотен) реализуются в виде независимых программ, работающих под управлением CP/M.
Некоторые из этих служебных программ поставляются вместе с системой. К ним относятся: программа PIP, обеспечивающая пересылку содержимого файлов, программа STAT, позволяющая просматривать и изменять атрибуты файлов на дисках, FORMAT - программа форматирования (начальной разметки) дисков и некоторые другие. Любая программа, в том числе реализующая какую-либо команду общего пользования, запускается очень просто: пользователь в ответ на "приглашение" системы вводит имя программы и параметры, если они необходимы, после чего система автоматически находит соответствующую программу на диске, загружает ее в память и начинает исполнение. Имеется возможность объединения нескольких команд в одном файле н последующего исполнения такого командного файла; при этом последовательно исполняются все записанные в нем команды.
Система CP/M послужила образцом и основой для создании целого семейства ОС как для 8-, так и для 16-разрядных ПЭВМ. Многопользовательская версия этой системы называется MP/M, а на 16-разрядных ПЭВМ соответствующие версии называются CP/M-86 и MP/M-86. Эти версии по всем функциям похожи на CP/M и МР/М, но ориентированы на работу с 16-разрядным микропроцессором 8086. Еще две версии этой системы - Concurrent CPM и Concurrent DOS - поддерживают многозадачный режим работы.
Операционные системы семейства CP/M оказали заметное влияние на техническую политику многих разработчиков ПЭВМ. Некоторые на них выбирали CP/M или CP/M-86 в качестве основных ОС для своих машин, другие создавали собственные системы по образу и подобию CP/M, давая им другие названия. На 8-разрядных персональных компьютерах CP/M и по сей день считается одной из лучших операционных систем.
1.3. ОСНОВНЫЕ СВОЙСТВА ОПЕРАЦИОННОЙ СИСТЕМЫ MS-DOS (ДОС)
На 16-разрядных ПЭВМ, использующих 16-разрядные микропроцессоры типа 8088 н 8086, безусловно, доминируют операционные системы типа MS-DOS. Пока у этой системы нет закрепленного русского названия, поэтому в данной книге мы будем называть ее ДОС. Принятие ДОС в качестве главной операционной системы для персональных компьютеров, имеющих широкое распространение, является стимулом для многих программистов к созданию для нее многочисленных инструментальных н прикладных систем. В результате ДОС приобрела статус фактического стандарта операционной системы для 16-разрядных персональных компьютеров. Это, в свою очередь, привлекло к ней интерес со стороны массового потребителя.
К основным достоинствам ДОС относятся:
- развитый командный язык;
- возможность организации многоуровневых каталогов;
- возможность работы со всеми последовательными устройствами как с файлами;
- возможность подключения пользователем дополнительных драйверов внешних устройств;
- возможность запуска фоновых задач одновременно с диалоговой работой пользователя и др.
Для работы ДОС требуется существенно больше оперативной памяти, чем для CP/M: около 60 Кбайт. В настоящее время для ДОС разработан огромный фонд программного обеспечения. Имеются трансляторы для практически всех популярных языков высокого уровня, включая бейсик, паскаль, фортран, си, модула-2, лисп, лого, апл, форт, ада, кобол, ПЛ-1, пролог, смоллток и др.; причем для большинства языков существует по нескольку вариантов трансляторов. Имеются инструментальные средства для разработки программ в машинных кодах - ассемблеры, символьные отладчики н др. Эти инструментальные средства сопровождаются редакторами, компоновщиками и другими сервисными системами, необходимыми для разработки сложных программ.
Кроме системного программного обеспечения, для ДОС создано множество прикладных программ, которые могут работать на разных машинах, использующих ДОС. Здесь, однако, следует иметь в виду важное обстоятельство, касающееся переносимости программ. Одни прикладные программы могут быть написаны "чисто" с точки зрения операционной системы, т.е. обращаться только к функциям ОС для выполнения любых действий. Такие программы без всяких затруднений могут быть перенесены с одной марки машины на другую; важно только, чтобы эта машины работали с одной и той же версией ДОС.
Имеются, однако, программы, которые с целью повышения эффективности отдельных операций обращаются непосредственно к аппаратным средствам ПЭВМ, в обход функций операционной системы. С такими программами, а их не так уж мало, возникают проблемы при попытке переноса на другую модель ПЭВМ. К сожалению, довольно часто в прикладных пакетах, пользующихся наибольшей популярностью у потребителей, применяются "запрещенные" с точки зрения ОС приемы; это делается для достижения высоких показателей эффективности.
В состав ДОС входят примерно такие же компоненты, как и в CP/M, но на них возложено гораздо больше функций с более богатыми возможностями, что объясняется необходимостью обслуживания более сложных аппаратных средств.
Структура и основные функции ДОС будут рассматриваться подробно в следующих главах. Такое повышенное внимание к ДОС связано с тем, что именно эта операционная система и программы, созданные на ее основе, будут преобладать на 16-разрядных персональных компьютерах - таких, как отечественные профессиональнее ПЭВМ семейств ЕС-1840/1841 или Искра-1130/1030.
1.4. ДРУГИЕ ОПЕРАЦИОННЫЕ СИСТЕМЫ
Помимо операционных систем, относящихся к семействам CP/M и ДОС, определенное распространение получили и другие системы. Идут поиски наиболее подходящей ОС для машин, ориентированных на применение в домашних условиях и в школах. Другие типы ОС ориентированы на профессиональное применение. К таковым относятся ОС семейства UNIX, которые под разными названиями устанавливаются на профессиональные рабочие станции, обладающие более высокими показателями, чем обычные персональные компьютеры. Заслуживают внимания операционные системы, спроектированные для конкретных типов машин.
СТАНДАРТ MSX. Этот стандарт определяет не только ОС, но и характеристики аппаратных средств для школьных ПЭВМ. Согласно стандарту MSX машина должна иметь оперативную память объемом не менее 16 Кбайт, постоянную память объемом 32 Кбайт с встроенным интерпретатором языка бейсик, цветной графический дисплей с разрешающей способностью 256*192 точек н 16 цветами, 3-канальный звуковой генератор на 8 октав, параллельный порт для подключения принтера н контроллер для управления внешним накопителем, подключаемым снаружи.
Операционная система такой машины должна обладать следующими свойствами: требуемая память - не более 16 Кбайт, совместимость с CP/M на уровне системных вызовов, совместимость с ДОС по форматам файлов на внешних накопителях на основе гибких магнитных дисков, поддержка трансляторов языков бейсик, си, фортран и лисп. Таким образом, эта операционная система, получившая название MSX-DOS, учитывает необходимость поддержки обширного программного обеспечения, разработанного для GP/M, и одновременно ориентируется на новые разработки, связанные с популярной для 16-разрядных ПЭВМ ДОС. Прн этом должны учитываться основные тенденции по использованию внешних устройств - дисплеев, накопителей, принтеров.
ОПЕРАЦИОННЫЕ СИСТЕМЫ, ОСНОВАННЫЕ НА ГРАФИЧЕСКОМ ИНТЕРФЕЙСЕ. Помимо широко распространенных машин, проектируемых в соответствии со сложившимися стандартами, часто создаются машины, в которых особо выделяется какое-либо свойство. Так, наибольшее внимание в начале и середине 80-х годов привлекли своими богатыми графическими возможностями машины Macintosh и Amiga. В первой из них дисплей был монохромным (черно-белым), во второй - цветным, но обе отличались высокой разрешающей способностью и скоростью вывода графической информации на дисплей.
Операционные системы для этих машин спроектированы так, чтобы максимально использовать возможности работы с графикой. В них используется многооконный интерфейс и манипулятор "мышь". Для выбора той или иной операции или рабочего объекта на экран выводится несколько условных графических символов (пиктограмм), среди которых пользователь делает выбор, пользуясь манипулятором "мышь". Пиктограммы могут обозначать такие понятия, как файл, принтер, текст и т.п. Работа с такой системой очень удобна и увлекательна. Поскольку такие системы ориентированы лишь на определенные типы машин, число разрабатываемых для них прикладных программ и пакетов существенно меньше, чем для стандартных систем, таких как CP/M или ДОС.
ПИ-СИСТЕМА. В начальный период развития персональных компьютеров была создана операционная система UCSD p-system (здесь мы используем сокращенное название "Пи-система").
Основу этой системы составляет так называемая П-машина - программа, эмулирующая гипотетическую универсальную вычислительную машину. П-машина имитирует работу процессора, памяти и внешних устройств, выполняя специальные команды, называемые П-кодом. Программные компоненты Пи-системы (в том числе компиляторы) составлены на П-коде, прикладные программы также компилируются в П-код. Таким образом, главной отличительной чертой системы является минимальная зависимость от особенностей аппаратуры ПЭВМ. Именно это обеспечило переносимость Пи-системы на различные типы машин. Компактность П-кода н удобно реализованный механизм подкачки позволяют выполнять большие программы на ПЭВМ, имеющих небольшую оперативную память. Другим преимуществом Пи-системы является простота использования.
Однако принципиальной особенностью данной системы является преимущественно интерпретационный режим исполнения прикладных программ, что влечет интенсивные обмены информацией между оперативной памятью и внешними накопителями. В результате происходит существенное замедление работы.
ОПЕРАЦИОННЫЕ СИСТЕМЫ СЕМЕЙСТВА ЮНИКС. Система Юникс {английское название UNIX) приобрела популярность в связи с ее успешным использованием на миниЭВМ. Этот успех послужил толчком к тому, чтобы создать подобную же систему н для персональных компьютеров. Как правило, различные версии ОС, относящихся к этому семейству, имеют свои названия, но в основных чертах повторяют особенности Юникс.
Главной отличительной чертой этой системы является ее модульность и обширный набор системных программ, которые позволяют создать благоприятную операционную обстановку для пользователей-программистов, т.е. тех, основной задачей которых является разработка других программ. Система Юникс органически сочетается с языком си, на котором написано более 90% ее собственных модулей. Командный язык системы практически совпадает с языком си, что позволяет очень легко комбинировать различные программы при создании больших прикладных систем.
Вместе с тем данная ОС является, пожалуй, чрезмерно большой для персонального компьютера среднего класса. Чтобы получить максимум преимуществ от ее использования, нужно выделить на жестком диске 3-5 Мбайт для хранения различных системных программ, в то время как полный объем жесткого диска обычно составляет 10 или 20 Мбайт.
Чаще всего Юннкс устанавливают на профессиональных рабочих станциях, которые имеют большие объемы оперативной и внешней памяти, чем ПЭВМ среднего класса.
ОС CP/M положила начало созданию операционных систем для микроЭВМ. Она была разработана в 1974г., после чего была установлена на многих 8-разрядных машинах. В рамках этой операционной системы было создано программное обеспечение значительного объема, включающее трансляторы с языков бейсик, паскаль, си, фортран, кобол, лисп, ада и многих других, текстовые и табличные процессоры, системы управления базами данных, графические пакеты, символьные отладчики и другие проблемно-ориентированные программы.
Успех системы в значительной степени был обусловлен ее предельной простотой и компактностью, возможностью быстрой настройки на разные конфигурации ПЭВМ. Первая версия системы занимала всего 4 Кбайт, что было весьма важно в условиях ограниченных объемов памяти персональных компьютеров того времени. Затем система была реконструирована с целью обеспечения большей независимости от состава и параметров внешних устройств, применяемых на ПЭВМ. В современных версиях этой системы настройка на конкретную архитектуру машины обеспечивается с помощью специального текстового файла, описывающего конфигурацию подключенных внешних устройств.
CP/M постоянно хранится иа диске и состоит из трех частей: базовой системы ввода/вывода, базовой дисковой операционной системы и командного процессора. Эти части содержатся в специальных файлах с именами BIOS, BDOS и CCP. В начале работы, при включении машины, указанные файлы загружаются в оперативную память. При этом они располагаются на старших адресах, оставляя младшие адреса для программ пользователя, загружаемых с диска. Требуемая для работы память невелика - в пределах 16 Кбайт.
БАЗОВАЯ СИСТЕМА ВВОДА/ВЫВОДА (БСВВ). БСВВ содержит в основном подпрограммы-драйверы внешних устройств. Это единственная часть CP/M, которая требует настройки на конкретное оборудование. Таблицы, описывающие характеристики используемых дисковых накопителей, параметры дисплея, клавиатуры и последовательного канала, формируются при генерации ОС, во время которой происходит перекомпиляция БСВВ с использованием специального файла конфигурации CONFIG.CPM. При установке нового устройства достаточно внести в CONFIG.CPM соответствующую информацию, скомпилировать новый вариант БСВВ, и система оказывается готовой к работе.
БАЗОВАЯ ДИСКОВАЯ ОПЕРАЦИОННАЯ СИСТЕМА. Часть CP/M, называемая БАЗОВОЙ ДИСКОВОЙ ОПЕРАЦИОННОЙ СИСТЕМОЙ (БДОС), содержит функции управления файловой системой и общего управления машиной (таких функций около 40). Файловая система CP/M довольно ограниченна. Имена всех дисковых файлов хранятся в одном большом каталоге, который можно разделить на несколько нумерованных пользовательских областей.
Такая организация файловой системы не очень удобна, так как не позволяет структурировать хранимую информацию. Весьма ограниченны возможности улавливания ошибочных ситуаций, диагностические сообщения чрезмерно лаконичны. Компенсацией за эти ограничения является компактность системы и удобство ее настройки на заданную конфигурацию.
КОМАНДНЫЙ ПРОЦЕССОР (КП). КП нмеет средства для обработки лишь нескольких встроенных команд. Сюда относятся команды настройки на рабочий диск, команда USER - настройка на нового пользователя, DIR - выдача каталога диска, TYPE - вывод содержимого файла на экран дисплея, REN - переименование файла, ERA - удаление файла. Это самый минимальный набор команд, которыми приходится пользоваться при общении с ОС. Другие команды (а их число в развитых ОС может составлять несколько сотен) реализуются в виде независимых программ, работающих под управлением CP/M.
Некоторые из этих служебных программ поставляются вместе с системой. К ним относятся: программа PIP, обеспечивающая пересылку содержимого файлов, программа STAT, позволяющая просматривать и изменять атрибуты файлов на дисках, FORMAT - программа форматирования (начальной разметки) дисков и некоторые другие. Любая программа, в том числе реализующая какую-либо команду общего пользования, запускается очень просто: пользователь в ответ на "приглашение" системы вводит имя программы и параметры, если они необходимы, после чего система автоматически находит соответствующую программу на диске, загружает ее в память и начинает исполнение. Имеется возможность объединения нескольких команд в одном файле н последующего исполнения такого командного файла; при этом последовательно исполняются все записанные в нем команды.
Система CP/M послужила образцом и основой для создании целого семейства ОС как для 8-, так и для 16-разрядных ПЭВМ. Многопользовательская версия этой системы называется MP/M, а на 16-разрядных ПЭВМ соответствующие версии называются CP/M-86 и MP/M-86. Эти версии по всем функциям похожи на CP/M и МР/М, но ориентированы на работу с 16-разрядным микропроцессором 8086. Еще две версии этой системы - Concurrent CPM и Concurrent DOS - поддерживают многозадачный режим работы.
Операционные системы семейства CP/M оказали заметное влияние на техническую политику многих разработчиков ПЭВМ. Некоторые на них выбирали CP/M или CP/M-86 в качестве основных ОС для своих машин, другие создавали собственные системы по образу и подобию CP/M, давая им другие названия. На 8-разрядных персональных компьютерах CP/M и по сей день считается одной из лучших операционных систем.
1.3. ОСНОВНЫЕ СВОЙСТВА ОПЕРАЦИОННОЙ СИСТЕМЫ MS-DOS (ДОС)
На 16-разрядных ПЭВМ, использующих 16-разрядные микропроцессоры типа 8088 н 8086, безусловно, доминируют операционные системы типа MS-DOS. Пока у этой системы нет закрепленного русского названия, поэтому в данной книге мы будем называть ее ДОС. Принятие ДОС в качестве главной операционной системы для персональных компьютеров, имеющих широкое распространение, является стимулом для многих программистов к созданию для нее многочисленных инструментальных н прикладных систем. В результате ДОС приобрела статус фактического стандарта операционной системы для 16-разрядных персональных компьютеров. Это, в свою очередь, привлекло к ней интерес со стороны массового потребителя.
К основным достоинствам ДОС относятся:
- развитый командный язык;
- возможность организации многоуровневых каталогов;
- возможность работы со всеми последовательными устройствами как с файлами;
- возможность подключения пользователем дополнительных драйверов внешних устройств;
- возможность запуска фоновых задач одновременно с диалоговой работой пользователя и др.
Для работы ДОС требуется существенно больше оперативной памяти, чем для CP/M: около 60 Кбайт. В настоящее время для ДОС разработан огромный фонд программного обеспечения. Имеются трансляторы для практически всех популярных языков высокого уровня, включая бейсик, паскаль, фортран, си, модула-2, лисп, лого, апл, форт, ада, кобол, ПЛ-1, пролог, смоллток и др.; причем для большинства языков существует по нескольку вариантов трансляторов. Имеются инструментальные средства для разработки программ в машинных кодах - ассемблеры, символьные отладчики н др. Эти инструментальные средства сопровождаются редакторами, компоновщиками и другими сервисными системами, необходимыми для разработки сложных программ.
Кроме системного программного обеспечения, для ДОС создано множество прикладных программ, которые могут работать на разных машинах, использующих ДОС. Здесь, однако, следует иметь в виду важное обстоятельство, касающееся переносимости программ. Одни прикладные программы могут быть написаны "чисто" с точки зрения операционной системы, т.е. обращаться только к функциям ОС для выполнения любых действий. Такие программы без всяких затруднений могут быть перенесены с одной марки машины на другую; важно только, чтобы эта машины работали с одной и той же версией ДОС.
Имеются, однако, программы, которые с целью повышения эффективности отдельных операций обращаются непосредственно к аппаратным средствам ПЭВМ, в обход функций операционной системы. С такими программами, а их не так уж мало, возникают проблемы при попытке переноса на другую модель ПЭВМ. К сожалению, довольно часто в прикладных пакетах, пользующихся наибольшей популярностью у потребителей, применяются "запрещенные" с точки зрения ОС приемы; это делается для достижения высоких показателей эффективности.
В состав ДОС входят примерно такие же компоненты, как и в CP/M, но на них возложено гораздо больше функций с более богатыми возможностями, что объясняется необходимостью обслуживания более сложных аппаратных средств.
Структура и основные функции ДОС будут рассматриваться подробно в следующих главах. Такое повышенное внимание к ДОС связано с тем, что именно эта операционная система и программы, созданные на ее основе, будут преобладать на 16-разрядных персональных компьютерах - таких, как отечественные профессиональнее ПЭВМ семейств ЕС-1840/1841 или Искра-1130/1030.
1.4. ДРУГИЕ ОПЕРАЦИОННЫЕ СИСТЕМЫ
Помимо операционных систем, относящихся к семействам CP/M и ДОС, определенное распространение получили и другие системы. Идут поиски наиболее подходящей ОС для машин, ориентированных на применение в домашних условиях и в школах. Другие типы ОС ориентированы на профессиональное применение. К таковым относятся ОС семейства UNIX, которые под разными названиями устанавливаются на профессиональные рабочие станции, обладающие более высокими показателями, чем обычные персональные компьютеры. Заслуживают внимания операционные системы, спроектированные для конкретных типов машин.
СТАНДАРТ MSX. Этот стандарт определяет не только ОС, но и характеристики аппаратных средств для школьных ПЭВМ. Согласно стандарту MSX машина должна иметь оперативную память объемом не менее 16 Кбайт, постоянную память объемом 32 Кбайт с встроенным интерпретатором языка бейсик, цветной графический дисплей с разрешающей способностью 256*192 точек н 16 цветами, 3-канальный звуковой генератор на 8 октав, параллельный порт для подключения принтера н контроллер для управления внешним накопителем, подключаемым снаружи.
Операционная система такой машины должна обладать следующими свойствами: требуемая память - не более 16 Кбайт, совместимость с CP/M на уровне системных вызовов, совместимость с ДОС по форматам файлов на внешних накопителях на основе гибких магнитных дисков, поддержка трансляторов языков бейсик, си, фортран и лисп. Таким образом, эта операционная система, получившая название MSX-DOS, учитывает необходимость поддержки обширного программного обеспечения, разработанного для GP/M, и одновременно ориентируется на новые разработки, связанные с популярной для 16-разрядных ПЭВМ ДОС. Прн этом должны учитываться основные тенденции по использованию внешних устройств - дисплеев, накопителей, принтеров.
ОПЕРАЦИОННЫЕ СИСТЕМЫ, ОСНОВАННЫЕ НА ГРАФИЧЕСКОМ ИНТЕРФЕЙСЕ. Помимо широко распространенных машин, проектируемых в соответствии со сложившимися стандартами, часто создаются машины, в которых особо выделяется какое-либо свойство. Так, наибольшее внимание в начале и середине 80-х годов привлекли своими богатыми графическими возможностями машины Macintosh и Amiga. В первой из них дисплей был монохромным (черно-белым), во второй - цветным, но обе отличались высокой разрешающей способностью и скоростью вывода графической информации на дисплей.
Операционные системы для этих машин спроектированы так, чтобы максимально использовать возможности работы с графикой. В них используется многооконный интерфейс и манипулятор "мышь". Для выбора той или иной операции или рабочего объекта на экран выводится несколько условных графических символов (пиктограмм), среди которых пользователь делает выбор, пользуясь манипулятором "мышь". Пиктограммы могут обозначать такие понятия, как файл, принтер, текст и т.п. Работа с такой системой очень удобна и увлекательна. Поскольку такие системы ориентированы лишь на определенные типы машин, число разрабатываемых для них прикладных программ и пакетов существенно меньше, чем для стандартных систем, таких как CP/M или ДОС.
ПИ-СИСТЕМА. В начальный период развития персональных компьютеров была создана операционная система UCSD p-system (здесь мы используем сокращенное название "Пи-система").
Основу этой системы составляет так называемая П-машина - программа, эмулирующая гипотетическую универсальную вычислительную машину. П-машина имитирует работу процессора, памяти и внешних устройств, выполняя специальные команды, называемые П-кодом. Программные компоненты Пи-системы (в том числе компиляторы) составлены на П-коде, прикладные программы также компилируются в П-код. Таким образом, главной отличительной чертой системы является минимальная зависимость от особенностей аппаратуры ПЭВМ. Именно это обеспечило переносимость Пи-системы на различные типы машин. Компактность П-кода н удобно реализованный механизм подкачки позволяют выполнять большие программы на ПЭВМ, имеющих небольшую оперативную память. Другим преимуществом Пи-системы является простота использования.
Однако принципиальной особенностью данной системы является преимущественно интерпретационный режим исполнения прикладных программ, что влечет интенсивные обмены информацией между оперативной памятью и внешними накопителями. В результате происходит существенное замедление работы.
ОПЕРАЦИОННЫЕ СИСТЕМЫ СЕМЕЙСТВА ЮНИКС. Система Юникс {английское название UNIX) приобрела популярность в связи с ее успешным использованием на миниЭВМ. Этот успех послужил толчком к тому, чтобы создать подобную же систему н для персональных компьютеров. Как правило, различные версии ОС, относящихся к этому семейству, имеют свои названия, но в основных чертах повторяют особенности Юникс.
Главной отличительной чертой этой системы является ее модульность и обширный набор системных программ, которые позволяют создать благоприятную операционную обстановку для пользователей-программистов, т.е. тех, основной задачей которых является разработка других программ. Система Юникс органически сочетается с языком си, на котором написано более 90% ее собственных модулей. Командный язык системы практически совпадает с языком си, что позволяет очень легко комбинировать различные программы при создании больших прикладных систем.
Вместе с тем данная ОС является, пожалуй, чрезмерно большой для персонального компьютера среднего класса. Чтобы получить максимум преимуществ от ее использования, нужно выделить на жестком диске 3-5 Мбайт для хранения различных системных программ, в то время как полный объем жесткого диска обычно составляет 10 или 20 Мбайт.
Чаще всего Юннкс устанавливают на профессиональных рабочих станциях, которые имеют большие объемы оперативной и внешней памяти, чем ПЭВМ среднего класса.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Брябрин. Программное обеспечение персональных ЭВМ. 1990
ГЛАВА 2. КАК РАБОТАТЬ НА ПЕРСОНАЛЬНОМ КОМПЬЮТЕРЕ - НЕСКОЛЬКО УРОКОВ
Трудно ли научиться работать на персональном компьютере? В данной главе будут рассмотрены несколько характерных этапов в работе пользователя, в том числе первые действия при включении машины, работа с иерархической файловой системой, способы конфигурирования системы и создания удобной операционной обстановки для решения конкретных задач.
2.1. ОСНОВНЫЕ ПОНЯТИЯ И ОБОЗНАЧЕНИЯ
Рассмотрим основные понятия, касающиеся персональных компьютеров, составляющие как бы азбуку работы на ПЭВМ. Ниже приведены несколько типичных сценариев диалога человека с машиной, но, конечно, собственный опыт работы даст читателю возможность проверить все рассматриваемые приемы и рекомендации н гораздо глубже усвоить их. Приводимые ниже рассуждения ориентируются на ПЭВМ среднего класса - 16-разрядную машину типа ЕС-1841 с операционной системой ДОС.
НАКОПИТЕЛИ. ВНЕШНИЕ НАКОПИТЕЛИ (диски) именуются латинскими буквами A, B, C и т.д., вслед за которыми пишут двоеточие, например, A:, B:, C:, ... (Помните, что имена накопителей не имеют никакого отношения к меткам дисков, которые используются для идентификации физических носителей, например, гибких дисков). Соответствие между реальными накопителями и указанными именами определяется прежде всего тем, сколько и какие именно устройства имеются на машине. Рассмотрим два типичных варианта аппаратных средств ПЭВМ.
Вариант 1. Машина снабжена двумя накопителями на гибких магнитных дисках - НГМД. Этим накопителям обычно даются имена A: и B:, причем A: соответствует первому (главному) накопителю, B: - второму (вспомогательному) накопителю. Начальный запуск системы всегда осуществляется с "системного" диска, установленного в накопитель A:. Вспомогательный накопитель может и вовсе не использоваться, если все необходимые для работы программы и данные располагаются на одном диске. Данный вариант соответствует более дешевым ПЭВМ, и многие прикладные программы составляются в расчете именно на него, т.е. на установку в машине двух НГМД.
Вариант 2. На машине установлен один НГМД и один накопитель на жестком диске типа "Винчестер" - НМД. При таком составе накопителей их имена обычно распределяются следующим образом:
A: и B: указывают на одно и то же устройство - НГМД;
C: указывает на НМД.
Другие имена остаются незадействованными. Странное, на первый взгляд, двойное имя у накопителя на гибком диске имеет очень простое объяснение. Оно дает логическую совместимость ПЭВМ с разным составом дисковых накопителей. Прикладные программы, рассчитанные на вариант 1 с двумя НГМД, могут запускаться с диска A:, но время от времени обращаться к диску B:, о чем система извещает специальным сообщением. В случае появления на экране такого сообщения достаточно вынуть из накопителя первый диск, вставить другой и нажать любую клавишу, чтобы "подтолкнуть" систему к продолжению работы. Система после этого работает как бы с диском B:, а потом снова может запросить диск A:, и все манипуляции повторяются. Таким образом, на одном и том же физическом накопителе можно работать с двумя логическими устройствами A: и B:.
ФАЙЛЫ. ФАЙЛ - это именованная область памяти на каком-либо физическом носителе (обычно на диске), в которой может храниться исходный текст программы, какое-либо из ее промежуточных представлений, программа в машинном коде, готовая к исполнению, или данные для ее работы. В файлах могут содержаться любые текстовые документы и числовые данные, закодированная табличная, графическая и любая другая информация.
В соответствии с характером хранимой информации файлу обычно приписывают ТИП. Задание типа осуществляет либо сам пользователь, либо программа, порождающая файл. Имя и тип используются совместно для идентификации файла. Имя может состоять из 1-8 букв, цифр и знаков ("минус", "подчерк"), расположенных в произвольном порядке. Тип может состоять из 1-3 букв или цифр (а также некоторых других символов) или же отсутствовать вообще.
ПОЛНОЕ ИМЯ файла образуется из двух слов - имени и типа, разделяемых знаком "точка" (при отсутствии типа точка необязательна); поэтому тип иногда называют РАСШИРЕНИЕМ имени. Примеры полных имен файлов:
COMMAND.COM
START.BAT
123.DOC
PLAY-l.BAS
XONIX.EXE
HELP.1
PR0G1.PAS
MYFILE
При создании файла или изменении его содержимого автоматически регистрируются ДАТА и ВРЕМЯ, снятые с текущих показаний календаря и часов системы. Имя, тип, дата и время являются АТРИБУТАМИ файла, которые фиксируются в каталоге.
КАТАЛОГИ ФАЙЛОВ. Умело подобранные имена файлов могут значительно облегчить работу пользователя, помочь ему сориентироваться в большом объеме разнородной информации, обычно размещаемой во внешней памяти. При интенсивном использовании ПЭВМ, однако, число файлов неизбежно растет и "следить за порядком" на диске становится все сложнее. Возможность как-то структурировать, упорядочить дисковое пространство позволяют КАТАЛОГИ ФАЙЛОВ.
КАТАЛОГ - это группа файлов на одном носителе, объединяемых по какому-либо критерию (обычно логически взаимосвязанных). Каталог можно рассматривать как раздел внешней памяти, с содержимым которого можно работать достаточно независимо. Каждый файл может находиться только в одном каталоге.
Каталог имеет ИМЯ и в свою очередь может быть зарегистрирован в другом каталоге; это значит, что он включен в последний как целое, и тогда говорят, что он является ПОДЧИНЕННЫМ КАТАЛОГОМ (ПОДКАТАЛОГОМ). Так образуется иерархическая, древовидная файловая система.
На каждом дисковом носителе всегда имеется КОРНЕВОЙ КАТАЛОГ: тот, в котором начинают регистрироваться обычные файлы и подкаталоги 1-го уровня. В последних, в свою очередь, регистрируются обычные файлы и подкаталоги 2-го уровня и т.д. Цепочки подчиненных (включенных друг в друга) каталогов обозначаются их именами, разделяемыми знаком \ (в некоторых версиях ОС вместо знака \ используется знак /). Если этот знак стоит перед первым именем, значит, "выше" по иерархии находится только корневой каталог. Примеры цепочек подчиненных каталогов:
\DEMO - DEMO находится на 1-м уровне;
\DEMO\VICONT - VICONT находится на 2-м уровне.
МАРШРУТ - ПРЕФИКС ИМЕНИ ФАЙЛА. При сложной, древовидной структуре файлов на диске для указании файла уже недостаточно задать только его имя: одноименные (и притом различные по содержанию) файлы могут фигурировать в нескольких каталогах. Для точной идентификации файла необходимо, кроме имени, указать его местоположение - цепочку подчиненных каталогов. Такая цепочка называется МАРШРУТОМ, или ПУТЕМ, по файловой системе.
Маршрут может использоваться как ПРЕФИКС к имени файла, отделяемый от собственно имени файла тем же разделителем \.
Итак, файл полностью задается следующими элементами: 1) именем накопителя (оно может опускаться), 2) местоположением, или маршрутом: цепочкой имен каталогов, в которой каждый последующий является подкаталогом предыдущего (маршрут также может опускаться), 3) собственно именем файла, завершающим цепочку (файл должен содержаться в последнем упомянутом каталоге).
В любой момент времени системе известен текущий маршрут на каждом из накопителей, который может быть изменен соответствующей командой пользователя; один из накопителей является РАБОЧИМ (ТЕКУЩИМ). Если имя накопителя при указании файла опущено, то подразумевается текущий накопитель.
Если маршрут начинается со знака \, то местоположение файла вычисляется от корня данного накопителя, если нет (в частности, когда маршрут опущен) - то от текущего маршрута данного накопителя. В последнем случае текущий маршрут и префикс имени файла, объединенные через символ \, дают точное местонахождение файла.
Примеры имен файлов с префиксами;
C:PROGl.PAS
\EXE\FORMAT.COM
A:VICONT\HELP. TXT
В первом случае файл PROG1.PAS находится в текущем каталоге на носителе C:. Во втором случае файл FORMAT.COM располагается в каталоге EXE 1-го уровня на текущем накопителе. В третьем случае файл HELP.TXT находится в подкаталоге VICONT текущего каталога накопителя A:
ПРИГЛАШЕНИЕ ДОС. ПРИГЛАШЕНИЕ к вводу команд выдается операционной системой, когда она находится в состоянии ожидания каких-либо действий пользователя. Отсутствие нормального приглашения ДОС означает, что пользователь общается не с операционной системой, а с какой-либо прикладной программой или транслятором.
СТАНДАРТНОЕ ПРИГЛАШЕНИЕ ДОС указывает имя рабочего накопителя. Примеры стандартных приглашений:
A> - указывает на накопитель A:;
С> - указывает на накопитель C:.
Пользователь может изменить стандартное приглашение, включив в него, например, указание иа рабочий каталог, текущее время и/или дату, какой-либо текст и некоторую другую информацию (см. описание команды PROMPT в разд.2.7).
Примеры возможных приглашений:
A:\>
C:\DEMO\VICONT>
C:\WORK 12:20 VICTOR>
КОМАНДЫ ДОС. КОМАНДЫ вводятся с клавиатуры в ответ на приглашение. Команда имеет ИМЯ и, возможно, ПАРАМЕТРЫ, отделенные от имени команды и друг от друга пробелами. Команда может быть ВСТРОЕННОЙ или ВНЕШНЕЙ. Встроенные команды (их немного) исполняются командным процессором. Внешняя команда реализуется программой, находящейся в файле и запускаемой по обычным правилам ДОС (см. разд.2.5). Имя такой программы является тем самым именем команды. Ниже приведены примеры обращений к командам с разным числом параметров.
Встроенные команды:
DIR
TYPE CONFIG.SYS
COPY A:PROG1.BAS C:
Внешние команды:
BASIC
FORMAT A:
DISKCOPY A: B:
ШАБЛОНЫ ИМЕН ФАЙЛОВ. ШАБЛОН ИМЕНИ ФАЙЛА часто употребляется в командах для обозначения сразу нескольких файлов (там, где это допустимо и имеет смысл) или для сокращения записи имен файлов. В шаблонах употребляется знак *, обозначающий любое число любых символов, которые допускаются в именах н типах файлов. Кроме того, в шаблонах используется вопросительный знак, который позволяет "замаскировать" любой одиночный символ в имени или типе файла. Примеры шаблонов:
PR*.* - все файлы с именами, начинающимися с PR;
*.EXE - все файлы типа EXE;
*.* - все файлы текущего каталога;
*. - все файлы, у которых отсутствует тип;
???.BAS - все файлы типа BAS с не более, чем трехбуквенными именами;
A?.* - все файлы, имена которых начинаются с A и состоят из одной или двух букв.
ВВОД КОМАНД С КЛАВИАТУРЫ. Рассмотрим кратко технику ввода команд с клавиатуры. Стандартная клавиатура ПЭВМ обычно имеет несколько групп клавиш (рис.2.1):
- алфавитно-цифровые и знаковые клавиши, расположенные примерно как на пишущей машинке;
- функциональные клавиши (F1..F10);
- служебные клавиши для управления перемещением курсора;
- служебные клавиши для управления редактированием;
- служебные клавиши для смены регистров и модификации кодов других клавиш;
- служебные клавиши для фиксации регистров;
- разные вспомогательные клавиши.
Рис.2.1. Клавиатура персонального компьютера
Для ввода команды нужно набрать ее имя и параметры с помощью соответствующих алфавитно-цифровых клавиш. Имя команды должно отделяться от параметров одним или несколькими пробелами. Параметры также должны разделяться пробелами.
Передать несколько команд сразу (в одной строке) нельзя - для этого служат командные файлы (см. разд.2.5). Регистр, на котором набираются буквы, в командах ДОС безразличен: в любом слове можно свободно смешивать заглавные и строчные буквы.
Ввод любой команды завершается после нажатия специальной клавиши "Исполнение", расположенной справа от алфавитно-цифровых клавиш (иа этой клавише обычно изображен специальный значок в виде "кочерги"). Другие названия или обозначения этой клавиши в различных руководствах - "Ввод", Return, CR, Enter. При вводе можно исправлять неправильно набранные символы, удаляя их специальной клавишей "Стирание влево" (Backspace). Эта клавиша обычно расположена над клавишей "Исполнение". Отменить всю команду до нажатия клавиши "Исполнение" можно, нажав клавишу Esc (обычно расположенную в том же ряду, что и цифры).
Таковы основные понятия и обозначения, которыми приходится постоянно пользоваться при общении с операционной системой. Следует обратить внимание, что к ОС (в частности к ее важнейшей части - файловой системе) обращается не только пользователь, но и прикладные программы; при этом в них используются те же соглашения по обозначению накопителей, имен файлов, каталогов, маршрутов и шаблонов имей, что и в командах пользователя, вводимых с клавиатуры.
2.2. ПЕРВЫЕ ШАГИ
Рассмотрим начальные действия человека, который впервые сел за машину и хочет запустить на ней какую-нибудь программу.
ВКЛЮЧЕНИЕ МАШИНЫ. Первое, что нужно сделать, это включить машину и дисплей. Машина начинает работать, и на экране дисплея появляются сменяющие друг друга сообщения. Сначала машина осуществляет САМОТЕСТИРОВАНИЕ. Прн этом на экран могут выдаваться различные контрольные цифры. Чаще всего тестированию подвергается установленная в машине оперативная память и основные устройства - клавиатура, дисплей. Если что-либо окажется неисправным, то на экран будут выданы соответствующие диагностические сообщения и работу придется прекратить. Во время самотестирования машиной управляет специальная программа, записанная в постоянном запоминающем устройстве. В зависимости от типа ПЭВМ и объема установленной памяти тестирование может занять от нескольких секунд до минуты и больше.
ИНИЦИАЛИЗАЦИЯ. Если тестирование проходит нормально, то вслед за этим начинается ЗАГРУЗКА с системного диска и ИНИЦИАЛИЗАЦИЯ операционной системы. Здесь возможны два основных варианта:
1) система загружается с гибкого магнитного диска (дискеты), установленного на устройстве A:;
2) система загружается с жесткого диска, т.е. с устройства C: (если оно имеется на машине).
Встроенная в машину процедура начальной загрузки всегда начинает работу с варианта 1. Если в этот момент на устройстве A: не стоит никакой диск, то происходит переход к варианту 2. Если диск на устройстве A: установлен, но на нем нет операционной системы, то в этом случае выдается диагностическое сообщение, после чего пользователь должен поставить системный диск и, нажав какую-либо клавишу, повторить загрузку.
Процесс загрузки и инициализации, как правило, сопровождается выдачей сообщений, связанных с конкретной конфигурацией системы и настройкой на определенную рабочую обстановку. Задается этот процесс содержимым двух специальных файлов - CONFIG.SYS и AUTOEXEC.BAT, о которых будет идти речь дальше (см. разд.2.7).
Большинство выдаваемых при инициализации и настройке сообщений носят уведомительный характер, и на них можно не обращать особого внимания, но некоторые содержат вопросы, обращенные к пользователю (см. ниже). При ответах на вопросы пользователь может вводить "пустые" значения, для чего ему достаточно просто нажимать клавишу "Исполнение". При таких ответах система обычно сама (по умолчанию) устанавливает определенные значения запрашиваемых величин.
ДАТА И ВРЕМЯ. Если в машине есть постоянные внутренние часы и календарь, работа которых поддерживается аккумуляторной батарейкой, то операционная система при очередном запуске может "снимать" с них ВРЕМЯ и ДАТУ; в противном случае она запрашивает текущую дату и время у пользователя. Указывая эти величины, необходимо строго придерживаться принятого для них формата. Формат, как правило, виден из того сообщения, которое выдает система. Обычно дата должна вводиться в следующем виде:
DD-MM-YY или DD/MM/YY
Этот формат означает, что при задании даты нужно ввести три числа (DD - день, ММ - месяц и YY - год), разделяя их знаками - или /. Следует быть внимательным к порядку задания этих чисел, так как в некоторых версиях ОС требуется, чтобы на первом месте стояли цифры, означающие месяц, а на втором месте - день.
Время может задаваться в следующих форматах:
HH:MM:SS.ss
HH:MM:SS
НН:ММ
НН
Здесь цифры, означающие текущий час, минуты и секунды, разделяются знаками :. Можно задать даже сотые доли секуид (в первом формате ss означает сотые доли). Как только пользователь наберет соответствующие цифры (например, 10:35) и нажмет клавишу "Исполнение", в системе зарегистрируется это время, и далее будут работать внутренние часы, пока не произойдет выключение машины или не будет установлено новое время.
Текущая дата и время используются системой при регистрации файлов в каталогах, а также могут использоваться в прикладных программах.
НАСТРОЙКА НА КОНКРЕТНУЮ РАБОЧУЮ ОБСТАНОВКУ. Очень часто перед началом работы бывает необходимо выполнить определенную, повторяющуюся последовательность действий. Это может быть запуск служебных программ, вывод на экран какого-либо текста (почта), установка параметров операционной обстановки (рабочий каталог, режим работы дисплея, приглашение и др.).
В ДОС имеется удобное средство для выполнения стандартных начальных действий при загрузке системы: так называемый файл "автозагрузки" (AUTOEXEC.BAT), подробно описываемый в разд.2.7. Оставляя пока в стороне различные варианты оформления этого файла, будем считать, что система после инициализации устанавливает в качестве рабочего каталога корневой каталог системного диска, а имя рабочего накопителя и рабочего каталога устанавливает в качестве приглашения. При наличии в машине жесткого диска вероятнее всего он и будет рабочим. Тогда приглашение ДОС будет иметь вид:
C:\>
После завершения инициализации и выдачи приглашения наступает момент запуска прикладной программы.
ЗАПУСК ПРОГРАММ. Допустим, что пользователь пришел со своей дискетой, на которой находится нужная программа. Ясно, что дискету нужно установить в накопитель A: (или B:). Конверт с дискетой вставляется в щель накопителя, опускается шторка и накопитель готов к работе; эта операция не сложнее, чем установка кассеты в магнитофон. Далее пользователь должен указать операционной системе на необходимость перехода на рабочий накопитель A: или B:. Сделать это очень просто - нужно набрать на клавиатуре имя рабочего накопителя, например, A: и нажать клавишу "Исполнение". На экране эти действия отобразятся в следующую картинку (ответы пользователя здесь печатаются малыми буквами, чтобы отличить их от приглашений системы):
C:\> а:
A:\>
Теперь приглашение системы указывает, что рабочим накопителем является устройство A:. Все готово к запуску программы с дискеты, установленной на этом устройстве. Однако прежде чем это сделать, почти любой опытный программист сначала захочет убедиться, действительно ли на диске есть нужная программа. Для этого можно воспользоваться встроенной командой DIR.
A:\> dir
В ответ на эту команду система прочитает каталог диска A:, что можно увидеть по вспыхнувшей сигнальной лампочке накопителя. На экран выводится табличка, строки которой соответствуют файлам, записанным на диск. О каждом файле сообщаются его атрибуты: имя, тип, длина в Кбайтах, дата и время создания. Внимательно просмотрев выданный на экран каталог и увидев в нем имя нужной программы (допустим, мы хотим запустить игровую программу TETRIS), можно загрузить ее с диска в оперативную память и исполнить. Для этого набирается имя соответствующего файла (без расширения) [Подробнее о вызове программ рассказано в разд.2.5]:
A:\> tetris
Программа TETRIS читается с диска и начинает работать: цель достигнута.
Рассмотрим теперь несколько иной вариант запуска. Допустим, что нужная пользователю программа находится на жестком диске, т.е. на устройстве C:. Тогда не нужно переключаться с C: на A:. Можно сразу попробовать запустить программу или дать перед этим команду DIR, чтобы убедиться в ее присутствии на диске C:. Однако здесь возможны осложнения. Жесткие диски, как правило, несут на себе сложную иерархическую файловую структуру. Вполне возможно, что нужный пользователю файл с программой находится не в корневом каталоге, где он доступен сразу же, а в одном из подчиненных каталогов. Допустим, что имя этого каталога - GAMES и находится он на 1-м уровне, т.е. сразу под корневым каталогом. Команда смены каталога, следующая за приглашением, будет выглядеть так:
C:\> cd games
В новом каталоге GAMES можно опять дать команду DIR или сразу же вызвать нужную программу - TETRIS.
C:\GAMES> tetris
Прежде чем перейти к более подробному описанию файловой системы ДОС, коснемся процедуры разметки, или форматирования, дискет. Если дискета не размечена, то разместить на ней информацию (средствами файловой системы) невозможно. Разметка производится командой FORMAT, обращение к которой обычно имеет следующий вид:
C:\> format a:
простое форматирование дискеты в накопителе A:;
C:\> format a: /s
форматирование с переносом операционной системы;
C:\> format a: /v
форматирование с заданием метки диска.
Если форматирование новой дискеты - безопасная и даже необходимая операция, то переформатирование дискет, уже несущих информацию, следует производить с осторожностью, поскольку после разметки прежнее содержимое дискеты полностью уничтожается. Переформатирование может потребоваться в случаях, когда: 1) файловая структура на дискете по каким-либо причинам безнадежно испорчена; 2) требуется изменить (увеличить) емкость дискеты, ранее размеченной с другими параметрами (ДОС позволяет форматировать дискеты, вмещающие 160, 180, 320 или 360 Кбайт; последнее производится по умолчанию); 3) дискета была ранее размечена в формате другой операционной системы.
Следует также избегать ошибочной переразметки жесткого диска (C:), поскольку потери информации в этом случае будут неизмеримо больше. Обычно жесткий диск поставляется в составе ПЭВМ уже размеченным; необходимость же его переразметки возникает чрезвычайно редко.
Таковы минимальные сведения о приемах, которыми необходимо владеть для начального включения машины, поиска и запуска программ.
Трудно ли научиться работать на персональном компьютере? В данной главе будут рассмотрены несколько характерных этапов в работе пользователя, в том числе первые действия при включении машины, работа с иерархической файловой системой, способы конфигурирования системы и создания удобной операционной обстановки для решения конкретных задач.
2.1. ОСНОВНЫЕ ПОНЯТИЯ И ОБОЗНАЧЕНИЯ
Рассмотрим основные понятия, касающиеся персональных компьютеров, составляющие как бы азбуку работы на ПЭВМ. Ниже приведены несколько типичных сценариев диалога человека с машиной, но, конечно, собственный опыт работы даст читателю возможность проверить все рассматриваемые приемы и рекомендации н гораздо глубже усвоить их. Приводимые ниже рассуждения ориентируются на ПЭВМ среднего класса - 16-разрядную машину типа ЕС-1841 с операционной системой ДОС.
НАКОПИТЕЛИ. ВНЕШНИЕ НАКОПИТЕЛИ (диски) именуются латинскими буквами A, B, C и т.д., вслед за которыми пишут двоеточие, например, A:, B:, C:, ... (Помните, что имена накопителей не имеют никакого отношения к меткам дисков, которые используются для идентификации физических носителей, например, гибких дисков). Соответствие между реальными накопителями и указанными именами определяется прежде всего тем, сколько и какие именно устройства имеются на машине. Рассмотрим два типичных варианта аппаратных средств ПЭВМ.
Вариант 1. Машина снабжена двумя накопителями на гибких магнитных дисках - НГМД. Этим накопителям обычно даются имена A: и B:, причем A: соответствует первому (главному) накопителю, B: - второму (вспомогательному) накопителю. Начальный запуск системы всегда осуществляется с "системного" диска, установленного в накопитель A:. Вспомогательный накопитель может и вовсе не использоваться, если все необходимые для работы программы и данные располагаются на одном диске. Данный вариант соответствует более дешевым ПЭВМ, и многие прикладные программы составляются в расчете именно на него, т.е. на установку в машине двух НГМД.
Вариант 2. На машине установлен один НГМД и один накопитель на жестком диске типа "Винчестер" - НМД. При таком составе накопителей их имена обычно распределяются следующим образом:
A: и B: указывают на одно и то же устройство - НГМД;
C: указывает на НМД.
Другие имена остаются незадействованными. Странное, на первый взгляд, двойное имя у накопителя на гибком диске имеет очень простое объяснение. Оно дает логическую совместимость ПЭВМ с разным составом дисковых накопителей. Прикладные программы, рассчитанные на вариант 1 с двумя НГМД, могут запускаться с диска A:, но время от времени обращаться к диску B:, о чем система извещает специальным сообщением. В случае появления на экране такого сообщения достаточно вынуть из накопителя первый диск, вставить другой и нажать любую клавишу, чтобы "подтолкнуть" систему к продолжению работы. Система после этого работает как бы с диском B:, а потом снова может запросить диск A:, и все манипуляции повторяются. Таким образом, на одном и том же физическом накопителе можно работать с двумя логическими устройствами A: и B:.
ФАЙЛЫ. ФАЙЛ - это именованная область памяти на каком-либо физическом носителе (обычно на диске), в которой может храниться исходный текст программы, какое-либо из ее промежуточных представлений, программа в машинном коде, готовая к исполнению, или данные для ее работы. В файлах могут содержаться любые текстовые документы и числовые данные, закодированная табличная, графическая и любая другая информация.
В соответствии с характером хранимой информации файлу обычно приписывают ТИП. Задание типа осуществляет либо сам пользователь, либо программа, порождающая файл. Имя и тип используются совместно для идентификации файла. Имя может состоять из 1-8 букв, цифр и знаков ("минус", "подчерк"), расположенных в произвольном порядке. Тип может состоять из 1-3 букв или цифр (а также некоторых других символов) или же отсутствовать вообще.
ПОЛНОЕ ИМЯ файла образуется из двух слов - имени и типа, разделяемых знаком "точка" (при отсутствии типа точка необязательна); поэтому тип иногда называют РАСШИРЕНИЕМ имени. Примеры полных имен файлов:
COMMAND.COM
START.BAT
123.DOC
PLAY-l.BAS
XONIX.EXE
HELP.1
PR0G1.PAS
MYFILE
При создании файла или изменении его содержимого автоматически регистрируются ДАТА и ВРЕМЯ, снятые с текущих показаний календаря и часов системы. Имя, тип, дата и время являются АТРИБУТАМИ файла, которые фиксируются в каталоге.
КАТАЛОГИ ФАЙЛОВ. Умело подобранные имена файлов могут значительно облегчить работу пользователя, помочь ему сориентироваться в большом объеме разнородной информации, обычно размещаемой во внешней памяти. При интенсивном использовании ПЭВМ, однако, число файлов неизбежно растет и "следить за порядком" на диске становится все сложнее. Возможность как-то структурировать, упорядочить дисковое пространство позволяют КАТАЛОГИ ФАЙЛОВ.
КАТАЛОГ - это группа файлов на одном носителе, объединяемых по какому-либо критерию (обычно логически взаимосвязанных). Каталог можно рассматривать как раздел внешней памяти, с содержимым которого можно работать достаточно независимо. Каждый файл может находиться только в одном каталоге.
Каталог имеет ИМЯ и в свою очередь может быть зарегистрирован в другом каталоге; это значит, что он включен в последний как целое, и тогда говорят, что он является ПОДЧИНЕННЫМ КАТАЛОГОМ (ПОДКАТАЛОГОМ). Так образуется иерархическая, древовидная файловая система.
На каждом дисковом носителе всегда имеется КОРНЕВОЙ КАТАЛОГ: тот, в котором начинают регистрироваться обычные файлы и подкаталоги 1-го уровня. В последних, в свою очередь, регистрируются обычные файлы и подкаталоги 2-го уровня и т.д. Цепочки подчиненных (включенных друг в друга) каталогов обозначаются их именами, разделяемыми знаком \ (в некоторых версиях ОС вместо знака \ используется знак /). Если этот знак стоит перед первым именем, значит, "выше" по иерархии находится только корневой каталог. Примеры цепочек подчиненных каталогов:
\DEMO - DEMO находится на 1-м уровне;
\DEMO\VICONT - VICONT находится на 2-м уровне.
МАРШРУТ - ПРЕФИКС ИМЕНИ ФАЙЛА. При сложной, древовидной структуре файлов на диске для указании файла уже недостаточно задать только его имя: одноименные (и притом различные по содержанию) файлы могут фигурировать в нескольких каталогах. Для точной идентификации файла необходимо, кроме имени, указать его местоположение - цепочку подчиненных каталогов. Такая цепочка называется МАРШРУТОМ, или ПУТЕМ, по файловой системе.
Маршрут может использоваться как ПРЕФИКС к имени файла, отделяемый от собственно имени файла тем же разделителем \.
Итак, файл полностью задается следующими элементами: 1) именем накопителя (оно может опускаться), 2) местоположением, или маршрутом: цепочкой имен каталогов, в которой каждый последующий является подкаталогом предыдущего (маршрут также может опускаться), 3) собственно именем файла, завершающим цепочку (файл должен содержаться в последнем упомянутом каталоге).
В любой момент времени системе известен текущий маршрут на каждом из накопителей, который может быть изменен соответствующей командой пользователя; один из накопителей является РАБОЧИМ (ТЕКУЩИМ). Если имя накопителя при указании файла опущено, то подразумевается текущий накопитель.
Если маршрут начинается со знака \, то местоположение файла вычисляется от корня данного накопителя, если нет (в частности, когда маршрут опущен) - то от текущего маршрута данного накопителя. В последнем случае текущий маршрут и префикс имени файла, объединенные через символ \, дают точное местонахождение файла.
Примеры имен файлов с префиксами;
C:PROGl.PAS
\EXE\FORMAT.COM
A:VICONT\HELP. TXT
В первом случае файл PROG1.PAS находится в текущем каталоге на носителе C:. Во втором случае файл FORMAT.COM располагается в каталоге EXE 1-го уровня на текущем накопителе. В третьем случае файл HELP.TXT находится в подкаталоге VICONT текущего каталога накопителя A:
ПРИГЛАШЕНИЕ ДОС. ПРИГЛАШЕНИЕ к вводу команд выдается операционной системой, когда она находится в состоянии ожидания каких-либо действий пользователя. Отсутствие нормального приглашения ДОС означает, что пользователь общается не с операционной системой, а с какой-либо прикладной программой или транслятором.
СТАНДАРТНОЕ ПРИГЛАШЕНИЕ ДОС указывает имя рабочего накопителя. Примеры стандартных приглашений:
A> - указывает на накопитель A:;
С> - указывает на накопитель C:.
Пользователь может изменить стандартное приглашение, включив в него, например, указание иа рабочий каталог, текущее время и/или дату, какой-либо текст и некоторую другую информацию (см. описание команды PROMPT в разд.2.7).
Примеры возможных приглашений:
A:\>
C:\DEMO\VICONT>
C:\WORK 12:20 VICTOR>
КОМАНДЫ ДОС. КОМАНДЫ вводятся с клавиатуры в ответ на приглашение. Команда имеет ИМЯ и, возможно, ПАРАМЕТРЫ, отделенные от имени команды и друг от друга пробелами. Команда может быть ВСТРОЕННОЙ или ВНЕШНЕЙ. Встроенные команды (их немного) исполняются командным процессором. Внешняя команда реализуется программой, находящейся в файле и запускаемой по обычным правилам ДОС (см. разд.2.5). Имя такой программы является тем самым именем команды. Ниже приведены примеры обращений к командам с разным числом параметров.
Встроенные команды:
DIR
TYPE CONFIG.SYS
COPY A:PROG1.BAS C:
Внешние команды:
BASIC
FORMAT A:
DISKCOPY A: B:
ШАБЛОНЫ ИМЕН ФАЙЛОВ. ШАБЛОН ИМЕНИ ФАЙЛА часто употребляется в командах для обозначения сразу нескольких файлов (там, где это допустимо и имеет смысл) или для сокращения записи имен файлов. В шаблонах употребляется знак *, обозначающий любое число любых символов, которые допускаются в именах н типах файлов. Кроме того, в шаблонах используется вопросительный знак, который позволяет "замаскировать" любой одиночный символ в имени или типе файла. Примеры шаблонов:
PR*.* - все файлы с именами, начинающимися с PR;
*.EXE - все файлы типа EXE;
*.* - все файлы текущего каталога;
*. - все файлы, у которых отсутствует тип;
???.BAS - все файлы типа BAS с не более, чем трехбуквенными именами;
A?.* - все файлы, имена которых начинаются с A и состоят из одной или двух букв.
ВВОД КОМАНД С КЛАВИАТУРЫ. Рассмотрим кратко технику ввода команд с клавиатуры. Стандартная клавиатура ПЭВМ обычно имеет несколько групп клавиш (рис.2.1):
- алфавитно-цифровые и знаковые клавиши, расположенные примерно как на пишущей машинке;
- функциональные клавиши (F1..F10);
- служебные клавиши для управления перемещением курсора;
- служебные клавиши для управления редактированием;
- служебные клавиши для смены регистров и модификации кодов других клавиш;
- служебные клавиши для фиксации регистров;
- разные вспомогательные клавиши.
Рис.2.1. Клавиатура персонального компьютера
Для ввода команды нужно набрать ее имя и параметры с помощью соответствующих алфавитно-цифровых клавиш. Имя команды должно отделяться от параметров одним или несколькими пробелами. Параметры также должны разделяться пробелами.
Передать несколько команд сразу (в одной строке) нельзя - для этого служат командные файлы (см. разд.2.5). Регистр, на котором набираются буквы, в командах ДОС безразличен: в любом слове можно свободно смешивать заглавные и строчные буквы.
Ввод любой команды завершается после нажатия специальной клавиши "Исполнение", расположенной справа от алфавитно-цифровых клавиш (иа этой клавише обычно изображен специальный значок в виде "кочерги"). Другие названия или обозначения этой клавиши в различных руководствах - "Ввод", Return, CR, Enter. При вводе можно исправлять неправильно набранные символы, удаляя их специальной клавишей "Стирание влево" (Backspace). Эта клавиша обычно расположена над клавишей "Исполнение". Отменить всю команду до нажатия клавиши "Исполнение" можно, нажав клавишу Esc (обычно расположенную в том же ряду, что и цифры).
Таковы основные понятия и обозначения, которыми приходится постоянно пользоваться при общении с операционной системой. Следует обратить внимание, что к ОС (в частности к ее важнейшей части - файловой системе) обращается не только пользователь, но и прикладные программы; при этом в них используются те же соглашения по обозначению накопителей, имен файлов, каталогов, маршрутов и шаблонов имей, что и в командах пользователя, вводимых с клавиатуры.
2.2. ПЕРВЫЕ ШАГИ
Рассмотрим начальные действия человека, который впервые сел за машину и хочет запустить на ней какую-нибудь программу.
ВКЛЮЧЕНИЕ МАШИНЫ. Первое, что нужно сделать, это включить машину и дисплей. Машина начинает работать, и на экране дисплея появляются сменяющие друг друга сообщения. Сначала машина осуществляет САМОТЕСТИРОВАНИЕ. Прн этом на экран могут выдаваться различные контрольные цифры. Чаще всего тестированию подвергается установленная в машине оперативная память и основные устройства - клавиатура, дисплей. Если что-либо окажется неисправным, то на экран будут выданы соответствующие диагностические сообщения и работу придется прекратить. Во время самотестирования машиной управляет специальная программа, записанная в постоянном запоминающем устройстве. В зависимости от типа ПЭВМ и объема установленной памяти тестирование может занять от нескольких секунд до минуты и больше.
ИНИЦИАЛИЗАЦИЯ. Если тестирование проходит нормально, то вслед за этим начинается ЗАГРУЗКА с системного диска и ИНИЦИАЛИЗАЦИЯ операционной системы. Здесь возможны два основных варианта:
1) система загружается с гибкого магнитного диска (дискеты), установленного на устройстве A:;
2) система загружается с жесткого диска, т.е. с устройства C: (если оно имеется на машине).
Встроенная в машину процедура начальной загрузки всегда начинает работу с варианта 1. Если в этот момент на устройстве A: не стоит никакой диск, то происходит переход к варианту 2. Если диск на устройстве A: установлен, но на нем нет операционной системы, то в этом случае выдается диагностическое сообщение, после чего пользователь должен поставить системный диск и, нажав какую-либо клавишу, повторить загрузку.
Процесс загрузки и инициализации, как правило, сопровождается выдачей сообщений, связанных с конкретной конфигурацией системы и настройкой на определенную рабочую обстановку. Задается этот процесс содержимым двух специальных файлов - CONFIG.SYS и AUTOEXEC.BAT, о которых будет идти речь дальше (см. разд.2.7).
Большинство выдаваемых при инициализации и настройке сообщений носят уведомительный характер, и на них можно не обращать особого внимания, но некоторые содержат вопросы, обращенные к пользователю (см. ниже). При ответах на вопросы пользователь может вводить "пустые" значения, для чего ему достаточно просто нажимать клавишу "Исполнение". При таких ответах система обычно сама (по умолчанию) устанавливает определенные значения запрашиваемых величин.
ДАТА И ВРЕМЯ. Если в машине есть постоянные внутренние часы и календарь, работа которых поддерживается аккумуляторной батарейкой, то операционная система при очередном запуске может "снимать" с них ВРЕМЯ и ДАТУ; в противном случае она запрашивает текущую дату и время у пользователя. Указывая эти величины, необходимо строго придерживаться принятого для них формата. Формат, как правило, виден из того сообщения, которое выдает система. Обычно дата должна вводиться в следующем виде:
DD-MM-YY или DD/MM/YY
Этот формат означает, что при задании даты нужно ввести три числа (DD - день, ММ - месяц и YY - год), разделяя их знаками - или /. Следует быть внимательным к порядку задания этих чисел, так как в некоторых версиях ОС требуется, чтобы на первом месте стояли цифры, означающие месяц, а на втором месте - день.
Время может задаваться в следующих форматах:
HH:MM:SS.ss
HH:MM:SS
НН:ММ
НН
Здесь цифры, означающие текущий час, минуты и секунды, разделяются знаками :. Можно задать даже сотые доли секуид (в первом формате ss означает сотые доли). Как только пользователь наберет соответствующие цифры (например, 10:35) и нажмет клавишу "Исполнение", в системе зарегистрируется это время, и далее будут работать внутренние часы, пока не произойдет выключение машины или не будет установлено новое время.
Текущая дата и время используются системой при регистрации файлов в каталогах, а также могут использоваться в прикладных программах.
НАСТРОЙКА НА КОНКРЕТНУЮ РАБОЧУЮ ОБСТАНОВКУ. Очень часто перед началом работы бывает необходимо выполнить определенную, повторяющуюся последовательность действий. Это может быть запуск служебных программ, вывод на экран какого-либо текста (почта), установка параметров операционной обстановки (рабочий каталог, режим работы дисплея, приглашение и др.).
В ДОС имеется удобное средство для выполнения стандартных начальных действий при загрузке системы: так называемый файл "автозагрузки" (AUTOEXEC.BAT), подробно описываемый в разд.2.7. Оставляя пока в стороне различные варианты оформления этого файла, будем считать, что система после инициализации устанавливает в качестве рабочего каталога корневой каталог системного диска, а имя рабочего накопителя и рабочего каталога устанавливает в качестве приглашения. При наличии в машине жесткого диска вероятнее всего он и будет рабочим. Тогда приглашение ДОС будет иметь вид:
C:\>
После завершения инициализации и выдачи приглашения наступает момент запуска прикладной программы.
ЗАПУСК ПРОГРАММ. Допустим, что пользователь пришел со своей дискетой, на которой находится нужная программа. Ясно, что дискету нужно установить в накопитель A: (или B:). Конверт с дискетой вставляется в щель накопителя, опускается шторка и накопитель готов к работе; эта операция не сложнее, чем установка кассеты в магнитофон. Далее пользователь должен указать операционной системе на необходимость перехода на рабочий накопитель A: или B:. Сделать это очень просто - нужно набрать на клавиатуре имя рабочего накопителя, например, A: и нажать клавишу "Исполнение". На экране эти действия отобразятся в следующую картинку (ответы пользователя здесь печатаются малыми буквами, чтобы отличить их от приглашений системы):
C:\> а:
A:\>
Теперь приглашение системы указывает, что рабочим накопителем является устройство A:. Все готово к запуску программы с дискеты, установленной на этом устройстве. Однако прежде чем это сделать, почти любой опытный программист сначала захочет убедиться, действительно ли на диске есть нужная программа. Для этого можно воспользоваться встроенной командой DIR.
A:\> dir
В ответ на эту команду система прочитает каталог диска A:, что можно увидеть по вспыхнувшей сигнальной лампочке накопителя. На экран выводится табличка, строки которой соответствуют файлам, записанным на диск. О каждом файле сообщаются его атрибуты: имя, тип, длина в Кбайтах, дата и время создания. Внимательно просмотрев выданный на экран каталог и увидев в нем имя нужной программы (допустим, мы хотим запустить игровую программу TETRIS), можно загрузить ее с диска в оперативную память и исполнить. Для этого набирается имя соответствующего файла (без расширения) [Подробнее о вызове программ рассказано в разд.2.5]:
A:\> tetris
Программа TETRIS читается с диска и начинает работать: цель достигнута.
Рассмотрим теперь несколько иной вариант запуска. Допустим, что нужная пользователю программа находится на жестком диске, т.е. на устройстве C:. Тогда не нужно переключаться с C: на A:. Можно сразу попробовать запустить программу или дать перед этим команду DIR, чтобы убедиться в ее присутствии на диске C:. Однако здесь возможны осложнения. Жесткие диски, как правило, несут на себе сложную иерархическую файловую структуру. Вполне возможно, что нужный пользователю файл с программой находится не в корневом каталоге, где он доступен сразу же, а в одном из подчиненных каталогов. Допустим, что имя этого каталога - GAMES и находится он на 1-м уровне, т.е. сразу под корневым каталогом. Команда смены каталога, следующая за приглашением, будет выглядеть так:
C:\> cd games
В новом каталоге GAMES можно опять дать команду DIR или сразу же вызвать нужную программу - TETRIS.
C:\GAMES> tetris
Прежде чем перейти к более подробному описанию файловой системы ДОС, коснемся процедуры разметки, или форматирования, дискет. Если дискета не размечена, то разместить на ней информацию (средствами файловой системы) невозможно. Разметка производится командой FORMAT, обращение к которой обычно имеет следующий вид:
C:\> format a:
простое форматирование дискеты в накопителе A:;
C:\> format a: /s
форматирование с переносом операционной системы;
C:\> format a: /v
форматирование с заданием метки диска.
Если форматирование новой дискеты - безопасная и даже необходимая операция, то переформатирование дискет, уже несущих информацию, следует производить с осторожностью, поскольку после разметки прежнее содержимое дискеты полностью уничтожается. Переформатирование может потребоваться в случаях, когда: 1) файловая структура на дискете по каким-либо причинам безнадежно испорчена; 2) требуется изменить (увеличить) емкость дискеты, ранее размеченной с другими параметрами (ДОС позволяет форматировать дискеты, вмещающие 160, 180, 320 или 360 Кбайт; последнее производится по умолчанию); 3) дискета была ранее размечена в формате другой операционной системы.
Следует также избегать ошибочной переразметки жесткого диска (C:), поскольку потери информации в этом случае будут неизмеримо больше. Обычно жесткий диск поставляется в составе ПЭВМ уже размеченным; необходимость же его переразметки возникает чрезвычайно редко.
Таковы минимальные сведения о приемах, которыми необходимо владеть для начального включения машины, поиска и запуска программ.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Брябрин. Программное обеспечение персональных ЭВМ. 1990
2.3. ПУТЕШЕСТВИЕ ПО ФАЙЛОВОЙ СИСТЕМЕ
Термин "файловая система" часто употребляют в двух разных значениях. С одной стороны, файловой системой называют всю совокупность каталогов и файлов, хранимых на внешних носителях ПЭВМ. Эта точка зрения естественна для конечного пользователя, и мы ниже будем употреблять термин именно в таком смысле. С другой стороны, нужно иметь в виду, что файловой системой иногда называют ту часть операционной системы, которая ведает доступом к каталогам и файлам, распределяет для них дисковое пространство и является, таким образом, программным средством. (Надо сказать, что подобное же двоякое толкование имеет термин "база данных").
Операционная система ДОС 2.0 и ее более старшие версии, следуя зарекомендовавшему себя опыту системы Юникс, поддерживает иерархическую структуру хранения файлов на дисках. Такая структура образуется благодаря тому, что каталоги файлов сами трактуются как файлы и могут регистрироваться в каталоге предшествующего уровня (рис.2.2).
Рис.2.2. Структура файловой системы ДОС
Для чего нужно делить дисковое пространство на несколько областей, разнося файлы по разным каталогам? Целей может быть несколько:
- выделить в отдельные группы логически однородные файлы (например, все исполняемые программы общего пользования или все файлы с текстовой документацией);
- выделить отдельное пространство на диске для каждого из пользователей данной машины, чтобы они могли свободно манипулировать своими файлами "без оглядки" на других пользователей;
- выделить все файлы, относящиеся к какой-либо подсистеме, например, к текстовому редактору, транслятору языка паскаль или интегрированной системе Symphony.
Если на ПЭВМ имеются только накопители на гибких дисках, как это принято в дешевых машинах, то иерархическая файловая система не дает большого преимущества, поскольку группы файлов естественнее всего хранить просто на отдельных дискетах. Но при использовании жесткого несъемного диска большого объема подобное деление на области очень удобно.
Тот факт, что файлы входят в один каталог, совсем не означает, что на диске они физически занимают какую-то связную область, однако логически, с точки зрения конечного пользователя, это выглядит именно так; поэтому и произносится фраза "файлы данного каталога". В пределах каждого каталога файлы должны иметь различные полные имена (имя+тип), но в разных каталогах вполне могут уживаться файлы с одинаковыми именами, в том числе просто идентичные файлы. Всякий файл, как уже говорилось, может входить только в один каталог.
Для работы о файловой системой в ДОС имеется несколько встроенных команд;
DIR - вывод (распечатка) содержимого каталога;
MKDIR или MD - создание нового (пустого) каталога;
CHDIR или CD - смена текущего каталога;
RMDIR или RD - удаление каталога.
Рассмотрим подробнее действие этих команд.
КОМАНДА DIR. Выдает список полных имен и атрибутов файлов, зарегистрированных в каталоге. DIR используется гораздо чаще других команд операционной системы, и это вполне понятно: человек, активно общающийся с машиной, постоянно нуждается в информации о том, что где находится. В предыдущих разделах уже были приведены примеры простейшего использования этой команды. Дадим теперь более детальное описание ее возможностей.
Допустим, после начального входа система оказалась настроенной на корневой каталог системного диска C: и приглашение имеет вид:
C:\>
Простейшее использование команды DIR без параметров приводит к выводу иа экран содержимого текущего каталога. Изображение на экране приобретает, например, такой вид:
C:\> dir
Volume in drive С is ACADEMYSOFT
Directory of C:\
CONFIG SYS 118 6-03-85 11:42p
AUTOEXEC BAT 994 7-20-85 12:59p
COMMAND COM 22042 8-14-84 8:00p
SYS <DIR> 5-19-85 2:19p
EXE <DIR> 2-26-83 4:44p
ABC <D1R> 6-29-85 9:47a
VICTOR <DIR> 9-11-84 12:00a
PAPERS <DIR> 4-30-85 9:43a
DOC <DIR> 4-30-85 9:43a
WORK <DIR> 1-20-84 4:44a
GAMES <DIR> 1-20-84 12:04a
SYMPHONY <DIR> 5-30-85 10:29p
12 File(s) 6500344 bytes free
Выведенный на экран текст говорит о следующем.
1) Диск C: имеет МЕТКУ ACADEMYSOFT, что, впрочем, не оказывает никакого воздействия на работу, а служит исключительно информационной цели.
2) В корневом каталоге зарегистрированы 3 обычных файла (CONFIG.SYS, AUTOEXEC.BAT и COMMAND.COM) и 9 подчиненны" каталогов. Имена подкаталогов позволяют примерно судить о назначении и составе содержащихся в них файлов.
3) Все файлы, вместе взятые, занимают на диске около 3.5 Мбайт, Это следует из того, что полный объем диска - 10 Мбайт, а свободными остались примерно 6.5 Мбайт (1 Мбайт = 1024*1024 байт, что чуть больше, чем 1млн. байт).
Теперь пользователь имеет возможность "заглянуть" в любой из подчиненны" каталогов, например, в DOC. Для этого достаточно дать команду DIR с параметром - именем подкаталога:
C:\> dir doc
Volume in drive С Is ACADEMYSOFT
Directory of C:\DOC
. <DIR> 4-30-85 9:43a
.. <DIR> 4-30-85 9:43a
VICONT TXT 19303 3-07-85 10:07a
MOMON TXT 10079 4-18-85 9:39a
FORMS TXT 18280 7-26-85 l:55p
SOFT1 1054 4-11-85 10:49a
SOFT2 1553 4-11-85 12:08p
ABC <DIR> 12-17-85 2:26a
DOS <DIR> 5-23-85 7:50p
7 File(s) 6500344 bytes free
В этом каталоге, в свою очередь, зарегистрировано 5 обычных файлов и 2 подкаталога 2-го уровня - ABC и DOS. Кроме того, в начале выданной таблицы появились 2 строчки особого вида;
. <DIR> 4-30-85 9:43a
.. <DIR> 4-30-85 9:43a
Эти строчки указывают, что выданный каталог является подчиненным; при этом указаны дата и время его создания.
Параметром команды DIR может быть любой МАРШРУТ, включающий имя накопителя. Рассмотрим несколько примеров.
C:\> dir doc\abc
Данная команда обеспечит выдачу каталога ABC, входящего в DOC, который, в свою очередь, входит в текущий каталог текущего накопителя (C:).
C:\DOC\ABC> dir \work
Текущим является подкаталог второго уровня DOC\ABC, но маршрут говорит о необходимости выдать каталог WORK, входящий в корневой каталог
C:\WORK> dir \
Данная команда требует выдачи корневого каталога диска C:.
A:\> dir с:\
Здесь текущим является корневой каталог диска A:, а маршрут указывает на корневой каталог диска C:.
Таким образом, на какой бы текущий каталог ни была настроена система, пользователь имеет возможность "не сходя с места" просмотреть любой интересующий его каталог файлов, задавая в качестве параметра команды DIR соответствующий маршрут.
Следует еще раз обратить внимание на важный момент. В первом примере маршрут указан без префикса \ или C:\. Это соответствует просмотру подчиненных каталогов, считая "от текущего". В трех последних примерах эти префиксы указывали на необходимость отсчитывать от корневого каталога, невзирая иа текущий.
Кроме указания маршрута, параметр команды DIR может содержать шаблон имен файлов, позволяя выделить из них только некоторые. Так, чтобы выделить из каталога DOC файлы типа TXT, можно дать команду DIR с шаблоном *.TXT, Команда и ее результат имеют вид:
C:\> dir doc\*.txt
Volume in drive С is ACADEMYSOFT
Directory of C:\DOC
VICONT TXT 19303 3-07-85 10:07a
MOMON TXT 10079 4-18-86 9:39a
FORMS TXT 18280 7-26-85 1:55p
3 File(s) 6500344 bytes free
Если шаблон указывать без маршрута, то происходит выделение группы файлов в текущем каталоге. Здесь важно подчеркнуть, что команда DIR в любых ее разновидностях НЕ ИЗМЕНЯЕТ каталогов, а лишь выдает их содержимое.
Заканчивая обсуждение команды DIR, опишем еще несколько возможностей манипулирования каталогами. При выдаче длинного каталога часто случается, что экрана "не хватает" для отображения всех файлов каталога. Чтобы иметь возможность внимательно просмотреть все строки, можно дать в конце текста команды специальный указатель /P. В этом случае каталог выдается "постранично": после заполнения информацией полного экрана система приостанавливает выдачу. Изучив первую порцию выданного каталога, пользователь нажимает любую клавишу и получает на экране следующую порцию.
Еще один способ выдачи каталога - "в ширину" - обеспечивается указателем /W. При его задании система выдает лишь имена и типы файлов, без остальных атрибутов; при этом выдача происходит не в столбец, а по строкам. Благодаря такому способу на экране помещается гораздо больше имен файлов, чем при обычном формате, котя читать их менее удобно. Примеры команд с указателями:
C:\> dir /p
C:\> dir doc\abc /w
C:\> dir doc\*.txt /p
Наконец, покажем, как можно выдать каталог на печатающее устройство. Для этого используется особое свойство операционной системы ДОС - переадресация потока вывода:
C:\> dir > prn
Знак > означает, что результат команды DIR вместо стандартной выдачи на дисплей следует переадресовать на принтер (обозначенный именем PRN). Точно так же можно записать содержимое каталога в любой файл (здесь - в файл под именем catalog):
C:\> dir > catalog
Переадресация потоков ввода/вывода - это общее свойство системы, которое подробнее будет рассмотрено в дальнейшем.
КОМАНДЫ MKDIR, RMDIR И CHDIR. Обеспечивают соответственно создание нового каталога, удаление каталога и настройку на тот или иной рабочий каталог. Их сокращенные имена - MD, RD и CD.
СОЗДАНИЕ нового каталога может быть произведено в любом уже существующем каталоге. Пусть, например, в текущем каталоге WORK зарегистрированы 2 файла:
LESSON 1 10744 7-01-85 10:49a
LESSON 2 18845 7-05-86 2:08p
Применим команду MD для создания в WORK подкаталога LOTUS:
C:\WORK> md lotus
После этого в каталоге WORK появится новая строка вида:
LOTUS <DIR> 7-05-85 5:26p
Вновь созданный каталог, вначале пустой, можно заполнять файлами. Как образуются файлы, мы рассмотрим в следующем разделе. Пока в каталоге зарегистрирован хотя бы один файл, удалить его нельзя; если все же попытаться это сделать, система не выполнит эту операцию.
Создание нового каталога "обходится" в 4 Кбайт памяти на внешнем носителе; так что это не вполне безобидная операция с точки зрения расходования внешней памяти.
УДАЛЕНИЕ каталога (обязательно пустого) осуществляется командой RD. Нельзя удалить корневой каталог, а также тот, в котором вы находитесь (текущий). Примеры команд удаления подкаталогов:
C:\WORK> rd lotus
C:\DOC> rd \work\lotus
Первая команда удаляет подкаталог LOTUS из текущего каталога WORK; вторая команда удаляет тот же каталог, указывая полный префикс, поскольку текущим в этот момент является не WORK, а соподчиненный ему каталог DOC.
СМЕНА ТЕКУЩЕГО КАТАЛОГА - одна из часто используемых операций. Осуществляется она командой CD. Допустим, система настроена на текущий корневой каталог диска С;, который имеет вид, представленный в первом примере. Чтобы перейти в каталог 2-го уровня ABC, можно применить следующую команду:
C:\> cd doc\abc
Этого же результата можно было добиться, применяя две последовательные команды CD; это имеет смысл, если между ними даются еще какие-нибудь команды (например, DIR):
C:\> cd doc
C:\DOC> cd abc
C:\DOC\ABC>
Теперь можно "перепрыгнуть" в каталог WORK, дав команду С соответствующим маршрутом в качестве параметра:
C:\DOC\ABC> cd \work
Возврат из подчиненного каталога на один уровень вверх осуществляется командой:
cd ..
Для возврата на самый верхний уровень дается команда:
cd \
Заметим, что символ .. может входить в обозначения маршрутов, когда требуется указывать сложные переходы между (со)подчиненным и каталогами. Например, маршрут ..\GAMES означает "подняться на один уровень вверх и затем спуститься в подкаталог GAMES", а маршрут ..\.. означает "подняться на два уровня вверх". Подобные обозначения маршрутов могут фигурировать в командах DIR, CD, RD, PATH, COPY, DEL и других, но пользоваться ими нужно с большой аккуратностью, особенно в командах удаления, так как задавая удаляемый файл относительно текущего каталога, а не полным маршрутом, легко ошибиться.
ВСПОМОГАТЕЛЬНЫЕ ПРОГРАММЫ ДЛЯ РАБОТЫ С КАТАЛОГАМИ. Рассмотренные выше встроенные команды ДОС обеспечивают наиболее важные операции над каталогами. Однако на практике часто возникают и другие потребности, которые можно удовлетворить, составив соответствующие служебные программы. Рассмотрим 3 таких программы: WHERE, DIRS, VDIR.
Программа WHERE позволяет разыскать местонахождение какого-либо файла или группы файлов с похожими именами. Аргументом является полное имя или шаблон имей файлов. Пример обращения и результат работы программы:
C:\WORK> where les*.*
C:\PAPERS\BOOK2\LESSON.1
C:\PAPERS\BOOK2\LESSON.2
C:\PAPERS\BOOK2\LESSON.3
C:\WORK\LESSON.1
C:\WORK\LESSON.2
Здесь файлы, имена которых начинаются с букв LES, найдены в двух каталогах - PAPERS\BOOK2 и WORK.
Программа DIRS (авторы В.В.Пономарев, О.А.Гончаров - ВЦ АН СССР) выдает соответствующие заданному шаблону имена файлов указанного каталога и подсчитывает объем памяти, фактически занятой этими файлами. Это компенсирует недостаток команды DIR, которая выдает объем ОСТАВШЕЙСЯ свободной памяти на диске, но не выдает объем памяти, ЗАНЯТОЙ файлами данного каталога. Пример обращения к программе DIRS:
A:\> dirs с :\work\*.*
LESSON 1 11
LESSON 2 18
29 (32) KBytes in 2 File(s)
Этой командой запрашивается объем всех файлов в каталоге WORK на диске C:. Следует отметить, что длина файла и объем занимаемого им места на диске обычно не совпадают, так как пространство на жестком диске выделяется порциями по 4 Кбайт, а на гибком диске - порциями по 1 Кбайт. Программа DIRS учитывает это и выдает оба числа - сумму длин файлов и суммарное занятое пространство на диске. Кстати, следует иметь в виду, что "короткие" файлы, реальная длина которых по каталогу всего несколько десятков или сотен байт, на жестком диске занимают все равно по 4 Кбайт, а на гибком диске - по 1 Кбайт.
Программа VDIR (авторы: В.В.Пономарев, О.А.Гончаров - ВЦ АН СССР) выдает полный объем всех файлов и подкаталогов, начиная с текущего каталога. Аргумент при обращении к VDIR не нужен. Эта программа применяется для того, чтобы оценить распределение дискового пространства под разные каталоги. Пример обращения к команде VDIR из текущего каталога PAPERS:
C:\PAPERS> vdir
BOOK1 132 KB 12 files
BOOK2 128 KB 11 files
SCHOOL 20 KB 3 files
REPORT 240 KB 14 files
= 752 KB 232 KB 24 files
Первые 4 строчки указывают объемы занятого пространства и количества файлов в 4-х подкаталогах, входящих в текущий каталог (PAPERS), Последняя строчка содержит сумму длин файлов в самом PAPERS (232 Кбайт), их число (24) и полный объем каталога PAPERS вместе с подкаталогами (752 Кбайт).
В стандартный комплект ДОС входит программа (внешняя команда) TREE, которая предназначена для показа всех каталогов заданного диска. Однако TREE, в отличие от VDIR, не выдает объемов занятого пространства, что сильно снижает ее ценность. Пример обращения к TREE:
C:\> tree /f
Указатель /f говорит о необходимости показа не только каталогов, но и входящих в них файлов.
Таковы основные приемы "хождения" по иерархической файловой системе и просмотра каталогов.
2.4. КОПИРОВАНИЕ, УДАЛЕНИЕ, РАСПЕЧАТКА ФАЙЛОВ
Рассмотренные в предыдущем параграфе команды позволяют пользователю манипулировать каталогами файловой системы, никак не затрагивая самих файлов. Рассмотрим теперь Основные команды для работы с содержимым файлов. Наиболее часто используются следующие команды:
COPY - копирование,
RENAME - переименование,
DEL - удаление,
TYPE - распечатка содержимого файла на экране.
КОМАНДА COPY. Команда COPY (скопировать, сдублировать файл) имеет один или два основных аргумента и еще может дополнительно сопровождаться указателем верификации. Основной формат команды предполагает задание ИСТОЧНИКА, т.е. указания файлов, содержимое которых нужно скопировать (1-й аргумент), и НАЗНАЧЕНИЯ, т.е. указания файлов, в которые нужно копировать (2-й аргумент). В качестве источника может указываться любой маршрут, имя файла или шаблон имен. При этом в зависимости от задания копируется все содержимое указанного каталога, группа файлов или отдельный файл. В качестве назначения часто задается лишь маршрут, который указывает, в какой каталог нужно перенести копируемые файлы. При этом копирование происходит в файлы с теми же именами, что исходные.
Файлы источника должны существовать до начала копирования при копировании их содержимое не меняется. Файлы назначения не обязаны существовать до начала копирования - в этом случае образуются новые файлы.
Примеры:
C:\> сору а:*.* с:
копирование всех файлов из текущего каталога диска А: в текущий каталог диска C:;
C:\> сору \work \papers
копирование всех файлов каталога WORK в каталог PAPERS;
C:\> сору \doc\abc \
копирование всех файлов каталога \DOC\ABC в каталог верхнего уровня.
В назначении можно указать конкретное имя файла:
C:\> copy f1 f2
файл с именем F1 копируется в том же каталоге и приобретает имя F2;
C:\>сору a:basica.com \exe\bas.com
при переносе файла BASICA.COM с диска A: в каталог EXE он получит новое имя BAS.COM.
Следующим способом можно изменить только типы файлов без изменения их имен:
C:\> copy \work\*.txt \papers\*.doc
при переносе файлов из WORK в PAPERS произойдет изменение их типов с TXT на DOC.
Командой COPY можно пользоваться для конкатенации (соединения) нескольких файлов и записи результата в один новый файл. Для этого имена соединяемых файлов нужно перечислить через знак +, Пример такой операции:
C:\> cору fl+f2+f3 f4
файл с именем F4 образуется путем конкатенации файлов F1, F2 и F3.
Если результирующий файл не указывать, то соединенные файлы будут записаны в файл, имя которого задано первым (в вышеприведенном примере - в файл F1). Конкатенация производится и в другом случае - если в качестве источника указан шаблон, который соответствует нескольким файлам, а в качестве назначения - одно конкретное имя. Пример такой операции:
C:\> copy lesson.* lessons.all
файл с именем lessons.all является результатом конкатенации всех файлов, имена которых соответствуют шаблону lesson.*; имейте в виду, что файлы будут соединены в том порядке, в котором они расположены в каталоге (что может не соответствовать их логическому порядку).
Если в команде COPY 2-й аргумент не указывается, то назначением считается текущий каталог. Например, чтобы скопировать все файлы из каталога WORK в каталог DOC, можно сначала настроиться на DOC командой CD, а затем дать команду COPY с одним аргументом:
C:\> cd doc
C:\DOC> сору \work
При всех операциях копирования можно задавать указатель /V в конце команды, который вызывает верификацию - проверку правильности копирования. Это более долгая операция, чем простое копирование, и, поскольку сбои копирования происходят редко, задавать этот указатель имеет смысл лишь при копировании очень важной информации.
Следует также иметь в виду, что многие прикладные системы, поставляемые на дискетах, защищаются специальным образом от возможности копирования на другие дискеты. Это делается с целью защиты авторских прав разработчиков. Защищенные дискеты обычно имеют на ярлыке пометку: Copyright (С) ... . При попытке копировать файлы с таких дисков с помощью COPY все операции по внешним признакам могут пройти нормально, но на самом деле отдельные файлы скопируются не полностью и программа работать не будет.
В качестве имени файла в аргументах команды COPY могут называться стандартные устройства:
PRN - основной (1-й) принтер;
LPT1 - другое имя для основного принтера;
LPT2 - дополнительный (2-й) принтер;
AUX - основной (1-й) коммуникационный канал;
COM1 - другое имя 1-го коммуникационного канала;
COM2 - дополнительный (2-й) коммуникационный канал;
CON - "консоль", т.е. дисплей + клавиатура;
NUL - "пустое устройство".
Кроме этих стандартных имен, могут использоваться и другие, появляющиеся в случае присоединения к машине новых устройств и включения в операционную систему программ-драйверов, поддерживающих их работу.
Некоторые из устройств могут служить лишь назначеиием (LPT1, LPT2, PRN), другие - также и источником копирования.
Примеры:
C:\> сору vicont.doc prn
файл с именем VICONT.DOC копируется на устройство PRN, т.е. печатается на принтере;
C:\> copy con t.bat
файл с именем T.BAT создается в результате копирования с устройства CON, т.е. путем ввода текста с клавиатуры (вводимый текст должен заканчиваться признаком конца, который возникает при одновременном нажатии клавиш Ctrl и Z); это - один из простейших способов образования новых файлов;
C:\> copy com1 \work\mes.1
прием из коммуникационного канала в файл MES.1 (предварительно с помощью команды MODE должны быть настроены параметры канала).
Нужно помнить, что копировать файлы с помощью команды COPY с одного диска на другой можно лишь в том случае, если диск, являющийся местом назначения, предварительно размечен (см.разд.2.2).
КОМАНДА RENAME. Используется для переименования файлов. Она имеет сокращенное имя REN. При обращении должны задаваться два аргумента - старое имя (или шаблон) и новое имя (или шаблон). Если оба аргумента представляют собой полные имена, то действие команды ясно - происходит изменение старого имени файла на новое. Если же в качестве аргументов заданы шаблоны, то происходит модификация группы имен (могут быть изменены типы, имена или отдельные буквы в том и другом).
Первому аргументу может предшествовать префикс-маршрут, указывающий, в каком каталоге производится переименование. По умолчанию переименование происходит в текущем каталоге. Примеры применения команды:
C:\WORK> ren a:*.txt *.doc
происходит изменение типов файлов, находящихся иа диске A:; вместо типа TXT устанавливается тип DOC;
C:\WORК> ren les*.* text.*
происходит изменение имен файлов - вместо имен, начинающихся с LES*, подставляется TEXT (в таких случаях нужно следить за корректностью переименования: например, два файла LES1.DOC и LES2.DOC не могут быть переименованы в один TEXT.DOC);
C:\WORK> ren t???.* k???.*
происходит изменение 4-буквенных имен, начинающихся с буквы T, вместо нее подставляется буква К.
Команда RENAME не затрагивает содержимого файлов; изменения касаются только имен файлов в каталоге (по этому признаку данную команду можно было бы отнести к группе команд, рассмотренных в предыдущем параграфе).
КОМАНДА DEL. Удаление файлов из текущего или указанного префиксом каталога производится командой DEL. Другие имена этой команды - ERASE, ERA. Аргумент команды DEL может содержать маршрут, конкретное имя удаляемого файла или шаблон имен.
C:\> del \work\*.txt
из каталога WORK удаляются все файлы, имеющие тип TXT;
C:\> del work
по такой команде удаляются все файлы подкаталога WORK (если только в текущем каталоге нет обычного файла с именем WORK);
C:\WORK> del *.*
удаление всех файлов из текущего каталога WORK.
В двух последних примерах, когда должны удаляться все файлы какого-либо каталога, система, прежде чем приступить к удалению, задает пользователю предупредительный вопрос - "уверен ли он, что все нужно удалять?". Ответ пользователя "да" (буква Y) сигнализирует об уверенности пользователя, и операция удаления выполняется. Ответ "нет" (буква N) отменяет операцию.
При удалении файла происходит вычеркивание из каталога ссылки на него, информационное же содержимое файла не уничтожается, и если вовремя спохватиться, его можно восстановить с помощью специальных служебных программ. Если же вслед за удалением на данном диске создаются новые файлы, то не исключено, что они будут физически размещены на месте удаленных файлов; после этого восстановление последних уже невозможно.
КОМАНДА TYPE. Используется для вывода содержимого текстового файла на экран. Ее аргументом должно быть полное имя файла (шаблон не допускается). Имени может предшествовать префикс, указывающий местонахождение файла. Команда TYPE предполагает, что в файле содержится информация, закодированная в соответствии со стандартом ASCII (или его модификацией); при этом каждый байт хранимой информации обозначает букву, цифру или знак, представимые на экране. В противном случае на экране будет возникать мешанина знаков, сопровождаемая выдачей звуковых сигналов (некоторые коды вместо печати на экране генерируют звуковые сигналы).
Примеры команды TYPE:
C:\> type prog1.pas
C:\> type \work\vicont.txt
Обычно по типу файла можно косвенно судить о том, можно ли его вывести на экран командой TYPE, хотя, вообще говоря, тип файла может назначаться пользователем произвольно. Как правило, файлы, которым приписан тип TXT, DOC, BAT, могут быть выведены на экран (и на принтер); с другой стороны, заведомо известно, что файлы типов COM, EXE, OBJ на экран не выводятся (см. разд.2.5). Файлы с текстами программ на паскале, си, фортране, лиспе обычно снабжаются соответствующими типами - PAS, C, FOR, LSP; их можно выводить на экран и печатать на принтере. Текстовые файлы, содержащие программы на бейсике и порожденные самим интерпретатором языка, как правило, имеют специальное внутреннее представление, не пригодное к выводу на экран. То же самое можно сказать о рабочих файлах многих прикладных систем - Framework, Symphony и др.
Термин "файловая система" часто употребляют в двух разных значениях. С одной стороны, файловой системой называют всю совокупность каталогов и файлов, хранимых на внешних носителях ПЭВМ. Эта точка зрения естественна для конечного пользователя, и мы ниже будем употреблять термин именно в таком смысле. С другой стороны, нужно иметь в виду, что файловой системой иногда называют ту часть операционной системы, которая ведает доступом к каталогам и файлам, распределяет для них дисковое пространство и является, таким образом, программным средством. (Надо сказать, что подобное же двоякое толкование имеет термин "база данных").
Операционная система ДОС 2.0 и ее более старшие версии, следуя зарекомендовавшему себя опыту системы Юникс, поддерживает иерархическую структуру хранения файлов на дисках. Такая структура образуется благодаря тому, что каталоги файлов сами трактуются как файлы и могут регистрироваться в каталоге предшествующего уровня (рис.2.2).
Рис.2.2. Структура файловой системы ДОС
Для чего нужно делить дисковое пространство на несколько областей, разнося файлы по разным каталогам? Целей может быть несколько:
- выделить в отдельные группы логически однородные файлы (например, все исполняемые программы общего пользования или все файлы с текстовой документацией);
- выделить отдельное пространство на диске для каждого из пользователей данной машины, чтобы они могли свободно манипулировать своими файлами "без оглядки" на других пользователей;
- выделить все файлы, относящиеся к какой-либо подсистеме, например, к текстовому редактору, транслятору языка паскаль или интегрированной системе Symphony.
Если на ПЭВМ имеются только накопители на гибких дисках, как это принято в дешевых машинах, то иерархическая файловая система не дает большого преимущества, поскольку группы файлов естественнее всего хранить просто на отдельных дискетах. Но при использовании жесткого несъемного диска большого объема подобное деление на области очень удобно.
Тот факт, что файлы входят в один каталог, совсем не означает, что на диске они физически занимают какую-то связную область, однако логически, с точки зрения конечного пользователя, это выглядит именно так; поэтому и произносится фраза "файлы данного каталога". В пределах каждого каталога файлы должны иметь различные полные имена (имя+тип), но в разных каталогах вполне могут уживаться файлы с одинаковыми именами, в том числе просто идентичные файлы. Всякий файл, как уже говорилось, может входить только в один каталог.
Для работы о файловой системой в ДОС имеется несколько встроенных команд;
DIR - вывод (распечатка) содержимого каталога;
MKDIR или MD - создание нового (пустого) каталога;
CHDIR или CD - смена текущего каталога;
RMDIR или RD - удаление каталога.
Рассмотрим подробнее действие этих команд.
КОМАНДА DIR. Выдает список полных имен и атрибутов файлов, зарегистрированных в каталоге. DIR используется гораздо чаще других команд операционной системы, и это вполне понятно: человек, активно общающийся с машиной, постоянно нуждается в информации о том, что где находится. В предыдущих разделах уже были приведены примеры простейшего использования этой команды. Дадим теперь более детальное описание ее возможностей.
Допустим, после начального входа система оказалась настроенной на корневой каталог системного диска C: и приглашение имеет вид:
C:\>
Простейшее использование команды DIR без параметров приводит к выводу иа экран содержимого текущего каталога. Изображение на экране приобретает, например, такой вид:
C:\> dir
Volume in drive С is ACADEMYSOFT
Directory of C:\
CONFIG SYS 118 6-03-85 11:42p
AUTOEXEC BAT 994 7-20-85 12:59p
COMMAND COM 22042 8-14-84 8:00p
SYS <DIR> 5-19-85 2:19p
EXE <DIR> 2-26-83 4:44p
ABC <D1R> 6-29-85 9:47a
VICTOR <DIR> 9-11-84 12:00a
PAPERS <DIR> 4-30-85 9:43a
DOC <DIR> 4-30-85 9:43a
WORK <DIR> 1-20-84 4:44a
GAMES <DIR> 1-20-84 12:04a
SYMPHONY <DIR> 5-30-85 10:29p
12 File(s) 6500344 bytes free
Выведенный на экран текст говорит о следующем.
1) Диск C: имеет МЕТКУ ACADEMYSOFT, что, впрочем, не оказывает никакого воздействия на работу, а служит исключительно информационной цели.
2) В корневом каталоге зарегистрированы 3 обычных файла (CONFIG.SYS, AUTOEXEC.BAT и COMMAND.COM) и 9 подчиненны" каталогов. Имена подкаталогов позволяют примерно судить о назначении и составе содержащихся в них файлов.
3) Все файлы, вместе взятые, занимают на диске около 3.5 Мбайт, Это следует из того, что полный объем диска - 10 Мбайт, а свободными остались примерно 6.5 Мбайт (1 Мбайт = 1024*1024 байт, что чуть больше, чем 1млн. байт).
Теперь пользователь имеет возможность "заглянуть" в любой из подчиненны" каталогов, например, в DOC. Для этого достаточно дать команду DIR с параметром - именем подкаталога:
C:\> dir doc
Volume in drive С Is ACADEMYSOFT
Directory of C:\DOC
. <DIR> 4-30-85 9:43a
.. <DIR> 4-30-85 9:43a
VICONT TXT 19303 3-07-85 10:07a
MOMON TXT 10079 4-18-85 9:39a
FORMS TXT 18280 7-26-85 l:55p
SOFT1 1054 4-11-85 10:49a
SOFT2 1553 4-11-85 12:08p
ABC <DIR> 12-17-85 2:26a
DOS <DIR> 5-23-85 7:50p
7 File(s) 6500344 bytes free
В этом каталоге, в свою очередь, зарегистрировано 5 обычных файлов и 2 подкаталога 2-го уровня - ABC и DOS. Кроме того, в начале выданной таблицы появились 2 строчки особого вида;
. <DIR> 4-30-85 9:43a
.. <DIR> 4-30-85 9:43a
Эти строчки указывают, что выданный каталог является подчиненным; при этом указаны дата и время его создания.
Параметром команды DIR может быть любой МАРШРУТ, включающий имя накопителя. Рассмотрим несколько примеров.
C:\> dir doc\abc
Данная команда обеспечит выдачу каталога ABC, входящего в DOC, который, в свою очередь, входит в текущий каталог текущего накопителя (C:).
C:\DOC\ABC> dir \work
Текущим является подкаталог второго уровня DOC\ABC, но маршрут говорит о необходимости выдать каталог WORK, входящий в корневой каталог
C:\WORK> dir \
Данная команда требует выдачи корневого каталога диска C:.
A:\> dir с:\
Здесь текущим является корневой каталог диска A:, а маршрут указывает на корневой каталог диска C:.
Таким образом, на какой бы текущий каталог ни была настроена система, пользователь имеет возможность "не сходя с места" просмотреть любой интересующий его каталог файлов, задавая в качестве параметра команды DIR соответствующий маршрут.
Следует еще раз обратить внимание на важный момент. В первом примере маршрут указан без префикса \ или C:\. Это соответствует просмотру подчиненных каталогов, считая "от текущего". В трех последних примерах эти префиксы указывали на необходимость отсчитывать от корневого каталога, невзирая иа текущий.
Кроме указания маршрута, параметр команды DIR может содержать шаблон имен файлов, позволяя выделить из них только некоторые. Так, чтобы выделить из каталога DOC файлы типа TXT, можно дать команду DIR с шаблоном *.TXT, Команда и ее результат имеют вид:
C:\> dir doc\*.txt
Volume in drive С is ACADEMYSOFT
Directory of C:\DOC
VICONT TXT 19303 3-07-85 10:07a
MOMON TXT 10079 4-18-86 9:39a
FORMS TXT 18280 7-26-85 1:55p
3 File(s) 6500344 bytes free
Если шаблон указывать без маршрута, то происходит выделение группы файлов в текущем каталоге. Здесь важно подчеркнуть, что команда DIR в любых ее разновидностях НЕ ИЗМЕНЯЕТ каталогов, а лишь выдает их содержимое.
Заканчивая обсуждение команды DIR, опишем еще несколько возможностей манипулирования каталогами. При выдаче длинного каталога часто случается, что экрана "не хватает" для отображения всех файлов каталога. Чтобы иметь возможность внимательно просмотреть все строки, можно дать в конце текста команды специальный указатель /P. В этом случае каталог выдается "постранично": после заполнения информацией полного экрана система приостанавливает выдачу. Изучив первую порцию выданного каталога, пользователь нажимает любую клавишу и получает на экране следующую порцию.
Еще один способ выдачи каталога - "в ширину" - обеспечивается указателем /W. При его задании система выдает лишь имена и типы файлов, без остальных атрибутов; при этом выдача происходит не в столбец, а по строкам. Благодаря такому способу на экране помещается гораздо больше имен файлов, чем при обычном формате, котя читать их менее удобно. Примеры команд с указателями:
C:\> dir /p
C:\> dir doc\abc /w
C:\> dir doc\*.txt /p
Наконец, покажем, как можно выдать каталог на печатающее устройство. Для этого используется особое свойство операционной системы ДОС - переадресация потока вывода:
C:\> dir > prn
Знак > означает, что результат команды DIR вместо стандартной выдачи на дисплей следует переадресовать на принтер (обозначенный именем PRN). Точно так же можно записать содержимое каталога в любой файл (здесь - в файл под именем catalog):
C:\> dir > catalog
Переадресация потоков ввода/вывода - это общее свойство системы, которое подробнее будет рассмотрено в дальнейшем.
КОМАНДЫ MKDIR, RMDIR И CHDIR. Обеспечивают соответственно создание нового каталога, удаление каталога и настройку на тот или иной рабочий каталог. Их сокращенные имена - MD, RD и CD.
СОЗДАНИЕ нового каталога может быть произведено в любом уже существующем каталоге. Пусть, например, в текущем каталоге WORK зарегистрированы 2 файла:
LESSON 1 10744 7-01-85 10:49a
LESSON 2 18845 7-05-86 2:08p
Применим команду MD для создания в WORK подкаталога LOTUS:
C:\WORK> md lotus
После этого в каталоге WORK появится новая строка вида:
LOTUS <DIR> 7-05-85 5:26p
Вновь созданный каталог, вначале пустой, можно заполнять файлами. Как образуются файлы, мы рассмотрим в следующем разделе. Пока в каталоге зарегистрирован хотя бы один файл, удалить его нельзя; если все же попытаться это сделать, система не выполнит эту операцию.
Создание нового каталога "обходится" в 4 Кбайт памяти на внешнем носителе; так что это не вполне безобидная операция с точки зрения расходования внешней памяти.
УДАЛЕНИЕ каталога (обязательно пустого) осуществляется командой RD. Нельзя удалить корневой каталог, а также тот, в котором вы находитесь (текущий). Примеры команд удаления подкаталогов:
C:\WORK> rd lotus
C:\DOC> rd \work\lotus
Первая команда удаляет подкаталог LOTUS из текущего каталога WORK; вторая команда удаляет тот же каталог, указывая полный префикс, поскольку текущим в этот момент является не WORK, а соподчиненный ему каталог DOC.
СМЕНА ТЕКУЩЕГО КАТАЛОГА - одна из часто используемых операций. Осуществляется она командой CD. Допустим, система настроена на текущий корневой каталог диска С;, который имеет вид, представленный в первом примере. Чтобы перейти в каталог 2-го уровня ABC, можно применить следующую команду:
C:\> cd doc\abc
Этого же результата можно было добиться, применяя две последовательные команды CD; это имеет смысл, если между ними даются еще какие-нибудь команды (например, DIR):
C:\> cd doc
C:\DOC> cd abc
C:\DOC\ABC>
Теперь можно "перепрыгнуть" в каталог WORK, дав команду С соответствующим маршрутом в качестве параметра:
C:\DOC\ABC> cd \work
Возврат из подчиненного каталога на один уровень вверх осуществляется командой:
cd ..
Для возврата на самый верхний уровень дается команда:
cd \
Заметим, что символ .. может входить в обозначения маршрутов, когда требуется указывать сложные переходы между (со)подчиненным и каталогами. Например, маршрут ..\GAMES означает "подняться на один уровень вверх и затем спуститься в подкаталог GAMES", а маршрут ..\.. означает "подняться на два уровня вверх". Подобные обозначения маршрутов могут фигурировать в командах DIR, CD, RD, PATH, COPY, DEL и других, но пользоваться ими нужно с большой аккуратностью, особенно в командах удаления, так как задавая удаляемый файл относительно текущего каталога, а не полным маршрутом, легко ошибиться.
ВСПОМОГАТЕЛЬНЫЕ ПРОГРАММЫ ДЛЯ РАБОТЫ С КАТАЛОГАМИ. Рассмотренные выше встроенные команды ДОС обеспечивают наиболее важные операции над каталогами. Однако на практике часто возникают и другие потребности, которые можно удовлетворить, составив соответствующие служебные программы. Рассмотрим 3 таких программы: WHERE, DIRS, VDIR.
Программа WHERE позволяет разыскать местонахождение какого-либо файла или группы файлов с похожими именами. Аргументом является полное имя или шаблон имей файлов. Пример обращения и результат работы программы:
C:\WORK> where les*.*
C:\PAPERS\BOOK2\LESSON.1
C:\PAPERS\BOOK2\LESSON.2
C:\PAPERS\BOOK2\LESSON.3
C:\WORK\LESSON.1
C:\WORK\LESSON.2
Здесь файлы, имена которых начинаются с букв LES, найдены в двух каталогах - PAPERS\BOOK2 и WORK.
Программа DIRS (авторы В.В.Пономарев, О.А.Гончаров - ВЦ АН СССР) выдает соответствующие заданному шаблону имена файлов указанного каталога и подсчитывает объем памяти, фактически занятой этими файлами. Это компенсирует недостаток команды DIR, которая выдает объем ОСТАВШЕЙСЯ свободной памяти на диске, но не выдает объем памяти, ЗАНЯТОЙ файлами данного каталога. Пример обращения к программе DIRS:
A:\> dirs с :\work\*.*
LESSON 1 11
LESSON 2 18
29 (32) KBytes in 2 File(s)
Этой командой запрашивается объем всех файлов в каталоге WORK на диске C:. Следует отметить, что длина файла и объем занимаемого им места на диске обычно не совпадают, так как пространство на жестком диске выделяется порциями по 4 Кбайт, а на гибком диске - порциями по 1 Кбайт. Программа DIRS учитывает это и выдает оба числа - сумму длин файлов и суммарное занятое пространство на диске. Кстати, следует иметь в виду, что "короткие" файлы, реальная длина которых по каталогу всего несколько десятков или сотен байт, на жестком диске занимают все равно по 4 Кбайт, а на гибком диске - по 1 Кбайт.
Программа VDIR (авторы: В.В.Пономарев, О.А.Гончаров - ВЦ АН СССР) выдает полный объем всех файлов и подкаталогов, начиная с текущего каталога. Аргумент при обращении к VDIR не нужен. Эта программа применяется для того, чтобы оценить распределение дискового пространства под разные каталоги. Пример обращения к команде VDIR из текущего каталога PAPERS:
C:\PAPERS> vdir
BOOK1 132 KB 12 files
BOOK2 128 KB 11 files
SCHOOL 20 KB 3 files
REPORT 240 KB 14 files
= 752 KB 232 KB 24 files
Первые 4 строчки указывают объемы занятого пространства и количества файлов в 4-х подкаталогах, входящих в текущий каталог (PAPERS), Последняя строчка содержит сумму длин файлов в самом PAPERS (232 Кбайт), их число (24) и полный объем каталога PAPERS вместе с подкаталогами (752 Кбайт).
В стандартный комплект ДОС входит программа (внешняя команда) TREE, которая предназначена для показа всех каталогов заданного диска. Однако TREE, в отличие от VDIR, не выдает объемов занятого пространства, что сильно снижает ее ценность. Пример обращения к TREE:
C:\> tree /f
Указатель /f говорит о необходимости показа не только каталогов, но и входящих в них файлов.
Таковы основные приемы "хождения" по иерархической файловой системе и просмотра каталогов.
2.4. КОПИРОВАНИЕ, УДАЛЕНИЕ, РАСПЕЧАТКА ФАЙЛОВ
Рассмотренные в предыдущем параграфе команды позволяют пользователю манипулировать каталогами файловой системы, никак не затрагивая самих файлов. Рассмотрим теперь Основные команды для работы с содержимым файлов. Наиболее часто используются следующие команды:
COPY - копирование,
RENAME - переименование,
DEL - удаление,
TYPE - распечатка содержимого файла на экране.
КОМАНДА COPY. Команда COPY (скопировать, сдублировать файл) имеет один или два основных аргумента и еще может дополнительно сопровождаться указателем верификации. Основной формат команды предполагает задание ИСТОЧНИКА, т.е. указания файлов, содержимое которых нужно скопировать (1-й аргумент), и НАЗНАЧЕНИЯ, т.е. указания файлов, в которые нужно копировать (2-й аргумент). В качестве источника может указываться любой маршрут, имя файла или шаблон имен. При этом в зависимости от задания копируется все содержимое указанного каталога, группа файлов или отдельный файл. В качестве назначения часто задается лишь маршрут, который указывает, в какой каталог нужно перенести копируемые файлы. При этом копирование происходит в файлы с теми же именами, что исходные.
Файлы источника должны существовать до начала копирования при копировании их содержимое не меняется. Файлы назначения не обязаны существовать до начала копирования - в этом случае образуются новые файлы.
Примеры:
C:\> сору а:*.* с:
копирование всех файлов из текущего каталога диска А: в текущий каталог диска C:;
C:\> сору \work \papers
копирование всех файлов каталога WORK в каталог PAPERS;
C:\> сору \doc\abc \
копирование всех файлов каталога \DOC\ABC в каталог верхнего уровня.
В назначении можно указать конкретное имя файла:
C:\> copy f1 f2
файл с именем F1 копируется в том же каталоге и приобретает имя F2;
C:\>сору a:basica.com \exe\bas.com
при переносе файла BASICA.COM с диска A: в каталог EXE он получит новое имя BAS.COM.
Следующим способом можно изменить только типы файлов без изменения их имен:
C:\> copy \work\*.txt \papers\*.doc
при переносе файлов из WORK в PAPERS произойдет изменение их типов с TXT на DOC.
Командой COPY можно пользоваться для конкатенации (соединения) нескольких файлов и записи результата в один новый файл. Для этого имена соединяемых файлов нужно перечислить через знак +, Пример такой операции:
C:\> cору fl+f2+f3 f4
файл с именем F4 образуется путем конкатенации файлов F1, F2 и F3.
Если результирующий файл не указывать, то соединенные файлы будут записаны в файл, имя которого задано первым (в вышеприведенном примере - в файл F1). Конкатенация производится и в другом случае - если в качестве источника указан шаблон, который соответствует нескольким файлам, а в качестве назначения - одно конкретное имя. Пример такой операции:
C:\> copy lesson.* lessons.all
файл с именем lessons.all является результатом конкатенации всех файлов, имена которых соответствуют шаблону lesson.*; имейте в виду, что файлы будут соединены в том порядке, в котором они расположены в каталоге (что может не соответствовать их логическому порядку).
Если в команде COPY 2-й аргумент не указывается, то назначением считается текущий каталог. Например, чтобы скопировать все файлы из каталога WORK в каталог DOC, можно сначала настроиться на DOC командой CD, а затем дать команду COPY с одним аргументом:
C:\> cd doc
C:\DOC> сору \work
При всех операциях копирования можно задавать указатель /V в конце команды, который вызывает верификацию - проверку правильности копирования. Это более долгая операция, чем простое копирование, и, поскольку сбои копирования происходят редко, задавать этот указатель имеет смысл лишь при копировании очень важной информации.
Следует также иметь в виду, что многие прикладные системы, поставляемые на дискетах, защищаются специальным образом от возможности копирования на другие дискеты. Это делается с целью защиты авторских прав разработчиков. Защищенные дискеты обычно имеют на ярлыке пометку: Copyright (С) ... . При попытке копировать файлы с таких дисков с помощью COPY все операции по внешним признакам могут пройти нормально, но на самом деле отдельные файлы скопируются не полностью и программа работать не будет.
В качестве имени файла в аргументах команды COPY могут называться стандартные устройства:
PRN - основной (1-й) принтер;
LPT1 - другое имя для основного принтера;
LPT2 - дополнительный (2-й) принтер;
AUX - основной (1-й) коммуникационный канал;
COM1 - другое имя 1-го коммуникационного канала;
COM2 - дополнительный (2-й) коммуникационный канал;
CON - "консоль", т.е. дисплей + клавиатура;
NUL - "пустое устройство".
Кроме этих стандартных имен, могут использоваться и другие, появляющиеся в случае присоединения к машине новых устройств и включения в операционную систему программ-драйверов, поддерживающих их работу.
Некоторые из устройств могут служить лишь назначеиием (LPT1, LPT2, PRN), другие - также и источником копирования.
Примеры:
C:\> сору vicont.doc prn
файл с именем VICONT.DOC копируется на устройство PRN, т.е. печатается на принтере;
C:\> copy con t.bat
файл с именем T.BAT создается в результате копирования с устройства CON, т.е. путем ввода текста с клавиатуры (вводимый текст должен заканчиваться признаком конца, который возникает при одновременном нажатии клавиш Ctrl и Z); это - один из простейших способов образования новых файлов;
C:\> copy com1 \work\mes.1
прием из коммуникационного канала в файл MES.1 (предварительно с помощью команды MODE должны быть настроены параметры канала).
Нужно помнить, что копировать файлы с помощью команды COPY с одного диска на другой можно лишь в том случае, если диск, являющийся местом назначения, предварительно размечен (см.разд.2.2).
КОМАНДА RENAME. Используется для переименования файлов. Она имеет сокращенное имя REN. При обращении должны задаваться два аргумента - старое имя (или шаблон) и новое имя (или шаблон). Если оба аргумента представляют собой полные имена, то действие команды ясно - происходит изменение старого имени файла на новое. Если же в качестве аргументов заданы шаблоны, то происходит модификация группы имен (могут быть изменены типы, имена или отдельные буквы в том и другом).
Первому аргументу может предшествовать префикс-маршрут, указывающий, в каком каталоге производится переименование. По умолчанию переименование происходит в текущем каталоге. Примеры применения команды:
C:\WORK> ren a:*.txt *.doc
происходит изменение типов файлов, находящихся иа диске A:; вместо типа TXT устанавливается тип DOC;
C:\WORК> ren les*.* text.*
происходит изменение имен файлов - вместо имен, начинающихся с LES*, подставляется TEXT (в таких случаях нужно следить за корректностью переименования: например, два файла LES1.DOC и LES2.DOC не могут быть переименованы в один TEXT.DOC);
C:\WORK> ren t???.* k???.*
происходит изменение 4-буквенных имен, начинающихся с буквы T, вместо нее подставляется буква К.
Команда RENAME не затрагивает содержимого файлов; изменения касаются только имен файлов в каталоге (по этому признаку данную команду можно было бы отнести к группе команд, рассмотренных в предыдущем параграфе).
КОМАНДА DEL. Удаление файлов из текущего или указанного префиксом каталога производится командой DEL. Другие имена этой команды - ERASE, ERA. Аргумент команды DEL может содержать маршрут, конкретное имя удаляемого файла или шаблон имен.
C:\> del \work\*.txt
из каталога WORK удаляются все файлы, имеющие тип TXT;
C:\> del work
по такой команде удаляются все файлы подкаталога WORK (если только в текущем каталоге нет обычного файла с именем WORK);
C:\WORK> del *.*
удаление всех файлов из текущего каталога WORK.
В двух последних примерах, когда должны удаляться все файлы какого-либо каталога, система, прежде чем приступить к удалению, задает пользователю предупредительный вопрос - "уверен ли он, что все нужно удалять?". Ответ пользователя "да" (буква Y) сигнализирует об уверенности пользователя, и операция удаления выполняется. Ответ "нет" (буква N) отменяет операцию.
При удалении файла происходит вычеркивание из каталога ссылки на него, информационное же содержимое файла не уничтожается, и если вовремя спохватиться, его можно восстановить с помощью специальных служебных программ. Если же вслед за удалением на данном диске создаются новые файлы, то не исключено, что они будут физически размещены на месте удаленных файлов; после этого восстановление последних уже невозможно.
КОМАНДА TYPE. Используется для вывода содержимого текстового файла на экран. Ее аргументом должно быть полное имя файла (шаблон не допускается). Имени может предшествовать префикс, указывающий местонахождение файла. Команда TYPE предполагает, что в файле содержится информация, закодированная в соответствии со стандартом ASCII (или его модификацией); при этом каждый байт хранимой информации обозначает букву, цифру или знак, представимые на экране. В противном случае на экране будет возникать мешанина знаков, сопровождаемая выдачей звуковых сигналов (некоторые коды вместо печати на экране генерируют звуковые сигналы).
Примеры команды TYPE:
C:\> type prog1.pas
C:\> type \work\vicont.txt
Обычно по типу файла можно косвенно судить о том, можно ли его вывести на экран командой TYPE, хотя, вообще говоря, тип файла может назначаться пользователем произвольно. Как правило, файлы, которым приписан тип TXT, DOC, BAT, могут быть выведены на экран (и на принтер); с другой стороны, заведомо известно, что файлы типов COM, EXE, OBJ на экран не выводятся (см. разд.2.5). Файлы с текстами программ на паскале, си, фортране, лиспе обычно снабжаются соответствующими типами - PAS, C, FOR, LSP; их можно выводить на экран и печатать на принтере. Текстовые файлы, содержащие программы на бейсике и порожденные самим интерпретатором языка, как правило, имеют специальное внутреннее представление, не пригодное к выводу на экран. То же самое можно сказать о рабочих файлах многих прикладных систем - Framework, Symphony и др.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Брябрин. Программное обеспечение персональных ЭВМ. 1990
2.5. ПРОГРАММЫ В МАШИННОМ КОДЕ И КОМАНДНЫЕ ФАЙЛЫ
Текстовые файлы, о которых говорилось выше, являются одним из самых распространенных видов файлов: в них могут храниться любые текстовые документы (в том числе тексты программ на языках программирования). Другая важная категория - это файлы, хранящие программы в машинном коде. В отличие от программы в текстовой форме, в которой она создается программистом, программа в машинном коде готова к загрузке в оперативную память и исполнению (поэтому иногда файл с машинным кодом называют загрузочным или исполняемым). Машинный код создается из исходного текста программы в процессе трансляции и компоновки, осуществляемых особыми системными программами.
МАШИННЫЙ КОД ПРОГРАММЫ. Он хранится в файле, имеющем один из двух типов: COM или EXE (файл типа EXE порождается компоновщиком из объектных модулей; файлы типа COM - некоторыми трансляторами; подробнее об этом - в разд.4.5). Различаются эти два типа файлов лишь способом загрузки с внешних носителей в оперативную память и настройки на фактические адреса. Для пользователя эта разница неощутима и запуск программ обоих типов выглядит одинаково. Пусть текущий каталог имеет вид:
VICONT EXE 46080 3-12-85 4:28p
BASRUN EXE 31744 5-07-82 12:42a
GRPACK EXE 24954 1-11-84 12:37p
VDRAW COM 13908 3-29-85 4:30p
BASIC COM 25984 3-08-83 12:00p
VIC-PLOT BAS 6719 12-20-84 9:58p
FIG 1 10496 6-24-85 1:49a
VIC HLP 2563 11-26-84 6:46p
START BAT 326 12-20-84 10:01p
9 File(s) 4501064 bytes free
В каталоге имеется несколько программ типа COM и EXE. Для запуска любой из них пользователю достаточно указать имя соответствующего файла без расширения, например:
C:\VIC> vicont
Некоторые программы требуют для своей работы задания параметров. Параметры могут быть числовыми или текстовыми константами; довольно часто в качестве параметра необходимо указывать имя файла, находящегося в этом же или в другом каталоге.
Так, например, если программа рисования на экране VDRAW использует в качестве источника данных содержимое файла FIG.1, то обращение к ней выглядит следующим образом;
C:\VIC> vdraw fig.1
(Отметим, что вызов прикладных программ внешне выглядит точно так же, как выполнение команд ДОС).
Иногда задание параметра является необязательным; при этом сама исполняемая программа определяет, был ли задан параметр при ее запуске. Примером может служить транслятор языка бейсик, который фигурирует в вышеприведенном каталоге под именем BASIC. Если при его запуске не указывать параметра, то в память загружается только сам транслятор (отдельной командой "изнутри" бейсика можно затем загрузить с диска рабочую программу). Но можно поступить и иначе - сразу же при запуске бейсик-транслятора указать имя файла с рабочей программой. Тогда после загрузки транслятора автоматически загружается и исполняется (интерпретируется) бейсик-программа:
C:\VIC> basic vic-plot
Следует обратить внимание на то, что, в отличие от предыдущего примера, не требуется даже указывать полное имя файла с рабочей программой - VIC-PLOT.BAS, поскольку бейсик-транслятор работает только с файлами определенного типа.
Запускаемая программа не обязательно должна находиться в текущем каталоге. Если файла нет в текущем каталоге, то производится его поиск в альтернативных каталогах, указанных командой PATH. (Это относится как к программам в машинном коде - файлам типа COM и EXE, так и к командным файлам типа BAT, рассматриваемым ниже).
КОМАНДА PATH. Аргумент команды PATH содержит обозначения одного или нескольких маршрутов, разделяемых "точкой с запятой", например:
C:\> path c:\;c:\exe
Операционная система запоминает список маршрутов, указанных в команде PATH, и использует его в дальнейшем всякий раз, когда пользователь выполняет внешнюю команду ДОС или обращается из ДОС к прикладной программе. Такая команда означает, что файл (типа COM, EXE или BAT), не найденный в текущем каталоге, следует искать сначала по маршруту C:\, т.е. в корневом каталоге диска C:, а в случае неуспеха - по маршруту G\EXE, т.е. в подкаталоге 1-го уровня EXE. Можно задать и более длинные предписания, но тогда поиск каждого файла будет происходить дольше.
Предписание альтернативных маршрутов становится очень удобным, если программы общего пользования сгруппированы в несколько каталогов. Так, все программы в машинном коде (исполняемые файлы) можно разместить в одном подкаталоге \EXE, и тогда приведенная выше команда заставит операционную систему загружать программы из каталога \EXE всякий раз, когда откуда бы то ни было возникнут обращения к этим программам. Это общепринятый прием конфигурирования системы.
Команда PATH обычно фигурирует в командном файле "автозагрузки" - AUTOEXEC.BAT и срабатывает "незаметно" для пользователя. Узнать, какие альтернативные маршруты установлены в данный момент, пользователь может, давая команду PATH без аргументов.
Отменить установленные альтернативные маршруты можно следующей командой:
C:\> path;
Вызов программы из другого каталога можно также осуществить, снабдив имя запускаемой программы соответствующим префиксом: тогда файл будет загружаться из указанного префиксом каталога (независимо от установленных альтернативных маршрутов) [Такой вызов программы возможен только в версиях ДОС 3.0 и старше. (Примеч. ред.)]. Пример такого обращения к программе VICONT:
A:\> c:\vic\vicont
Рабочим здесь является диск A:, а программа VICONT запускается из каталога VIC, находящегося на диске C:.
Точно так же и параметры - имена файлов - могут снабжаться необходимыми префиксами, обеспечивающими их поиск в соответствующих каталогах.
КОМАНДНЫЕ ФАЙЛЫ. Командные файлы также принадлежат к категории исполняемых файлов. Такие файлы снабжаются типом BAT (от английского слова batch - пачка), и в жаргонной речи их называют иногда "бэтч-файлами". В приведенном выше примере каталога имеется один командный файл - START.BAT.
Запуск (исполнение) командного файла осуществляется точно так же, как запуск программы в машинном коде (файла типа COM или EXE): указывается имя файла без расширения и, если требуется, параметры. Пример запуска командного файла START:
C:\VIC) start
Роль командных файлов особая. Они могут содержать целую группу команд ДОС или обращений к прикладным программам, которые выполняются последовательно или в более сложном порядке, в зависимости от некоторых условий (разд.2.6). Командный файл, в отличие от исполняемых файлов остальных двух типов, содержит не машинный код программы, а текст, который интерпретируется командным процессором ДОС. (Таким образом, по форме это обычный текстовый файл, содержимое которого можно вывести на принтер или экран) [Попутно внесем терминологическую ясность: командный файл совершенно естественно относить к категории исполняемых файлов, но никак нельзя называть загрузочным, поскольку он не содержит машинного кода, загружаемого в оперативную память. (Примеч. ред.)]. Строки этого текста могут представлять собой:
- встроенные команды ДОС,
- обращения к исполняемым программам,
- вызовы других командных файлов,
- специальные команды для управления выдачей на экран,
- специальные команды для организации ветвлений и циклов,
- метки.
Все эти конструкции (за исключением меток) могут не только фигурировать в командных файлах, но и просто вводиться пользователем с клавиатуры. Однако в практической работе лишь команды первых трех типов вводятся пользователем, а остальные конструкции, включая метки, служат главным образом для создания нетривиальных командных файлов.
Рассмотрим несколько простых примеров применения командных файлов.
Пример 1. Допустим, наша регулярная работа осуществляется в каталоге WORK, но время от времени мы хотим переходить в другой каталог - GRAPH, запускать там графический пакет VICONT, а по окончании работы с этой программой возвращаться в каталог WORK. Последовательность команд при этом должна быть следующей:
cd \graph
vicont
cd \work
Эту последовательность можно разместить с помощью текстового редактора в командном файле. Каждая команда должна следовать на отдельной строке (регистр, на котором набирается текст, безразличен).
Дадим этому файлу имя V.BAT. Достаточно теперь задать в качестве одной команды имя этого файла - V, и содержащиеся в нем несколько команд начнут интерпретироваться одна за другой, избавляя нас от необходимости вводить их текст с клавиатуры. Первая команда сменит каталог, а вторая погрузит нас в операционную среду системы VICONT. Когда после выполнения необходимых действий мы, наконец, закончим работу с VICONT, управление вернется в командный файл. Выполнение третьей команды вернет нас в каталог WORK.
Заметим, что при выполнении каждой команды в данном примере на экране печатается приглашение, затем текст самой команды (эхо) и, наконец, результат ее работы. В следующем примере будет показано, как можно отключить выдачу приглашений и текстов команд, чтобы не загромождать экран лишней информацией.
Пример 2. Допустим, мы хотим предельно сократить число манипуляций для создания необходимой рабочей обстановки при запуске системы. Мы можем заставить ДОС автоматически провести всю необходимую подготовку операционной среды с помощью командного файла следующего вида:
echo off
mode co80
path c:\;c:\exe;c:\turbo
cd \work
turbo
Дав этому файлу какое-либо простое запоминающееся имя, например, START.BAT, мы избавим себя от систематического набора указанных команд: достаточно набирать лишь слово START. Первая команда этого файла ECHO OFF отключает "эхо", т.е. блокирует выдачу на экран приглашений ДОС н текстов последующих команд. Три следующие команды осуществляют настройку необходимых параметров (установка режима дисплея, задание альтернативных маршрутов и рабочего каталога), а последняя команда производит запуск системы TURBO Pascal.
Пример 3. Для подготовки принтера к печати русского текста мы можем воспользоваться специальной программой загрузки шрифта, обращение к которой имеет вид: LFONT 0. Перед запуском этой программы нужно проделать подготовительные действия - включить принтер, вставить бумагу. Можно создать небольшой командный файл, который будет выдавать на экран соответствующее уведомление и затем запускать программу LFONT с указанным параметром. Вид такого файла:
echo off
echo Включите принтер, вставьте бумагу
echo Будет загружен русский шрифт
pause
lfont 0
Дадим этому файлу имя LF.BAT: для загрузки русского шрифы достаточно набрать команду LF. Исполнение этого командного файла начинается, как и в предыдущем примере, с команды ECHO OFF. Две следующие команды ECHO выводят на экран сообщения, заданные в файле в качестве текстовых строк - аргументов команд: "Включите принтер, вставьте бумагу" и "Будет загружен русский шрифт". Четвертая команда, PAUSE (пауза), приостанавливает дальнейшую обработку файла LF в ожидании, пока пользователь не нажмет какую-либо клавишу. Пауза нужна для того, чтобы можно было не спеша включить принтер и заправить бумагу. Наконец, последняя команда запускает программу LFONT.
В последнем примере были использованы команды ECHO и PAUSE, управляющие выдачей информации на экран. К этой же категории можно отнести команду REM, которая служит для внесения в текст командного файла комментария. Строка, следующая за символом REM, никак не интерпретируется "командным процессором - она используется лишь для пояснений пользователю. С помощью команды REM удобно блокировать исполнение некоторых команд, не удаляя их из текста командного файла.
Использование команд ECHO, PAUSE и REM полезно лишь в командных файлах; вводить их с клавиатуры для непосредственного исполнения не имеет особого смысла. Есть и другие команды, предназначенные главным образом для использования в командных файлах. К ним относятся:
GOTO - безусловный переход (на метку),
IF - проверка условия и ветвление,
FOR - управление повторным выполнением команд,
SHIFT - сдвиг списка формальных параметров.
Эти команды будут рассмотрены в следующем разделе.
Отметим еще одно важное свойство командных файлов - возможность использования внутри них ФОРМАЛЬНЫХ ПАРАМЕТРОВ.
Для пояснения этой возможности обратимся еще раз к первому примеру. Допустим, нам хотелось бы применять одну и ту же последовательность команд, приведенную в примере 1, для запуска разных подсистем. Тогда можно видоизменить приведенный выше текст файла V.BAT, заменив имя каталога GRAPH и имя вызываемой программы VICONT формальными параметрами. Командный файл при этом приобретает вид:
cd \%1
%2
cd \work
Символы % 1 и % 2 обозначают формальные параметры, вместо которых при обращении к V.BAT будут подставлены в текстовом виде фактические параметры, указанные в командной строке. Обращение к V.BAT может иметь вид:
v graph vicont
Строки graph и vicont займут место соответственно параметров %1 и %2, в результате чего получится точно такой же текст, как и в примере 1. Однако новый командный файл, в отличие от прежнего, можно использовать для запуска других подсистем, например:
v ss symphony или v ww word.
Эффект таких обращений очевиден. В первом случае из каталога SS будет вызвана система SYMPHONY, во втором случае из каталога WW вызывается система WORD.
ОРГАНИЗАЦИЯ РАБОТЫ С ТРАНСЛЯТОРАМИ. Подстановка формальных параметров в командные файлы часто используется при организации работы с системами программирования на языках паскаль, си, фортран и др. Дело в том, что трансляция программ из исходных текстов на этих языках в большинстве случаев осуществляется в несколько этапов, или "проходов". При этом на разных этапах с помощью отдельных команд требуется вызывать разные части трансляторов, подставляя им в качестве параметров имена файлов с исходными текстами, библиотеками загрузочных модулей и др. И вот здесь можно заметно упростить работу, применяя командные файлы с формальными параметрами. Пример такого файла для трансляции программ с языка паскаль:
echo off
echo ----- 1-й проход -----
pas1 %1
pause
echo ----- 2-й проход -----
pas2
pause
echo ----- 3-й проход -----
link %1+%2
Если такому файлу дать имя PAS.BAT, то вызов его может выглядеть следующим образом:
pas mod1 mod2+mod3
Здесь MOD1 - имя файла с исходным текстом транслируемой программы (полное имя этого файла должно быть MOD1.PAS). Это имя подставляется в командный файл вместо параметра %1. MOD2 и MOD3 - имена объектных модулей, присоединяемых к транслируемой программе на стадии компоновки (их полные имена в каталоге имеют расширение OBJ). Эти имена, разделенные знаком +, подставятся в командный файл вместо параметра %2.
Первая строка данного файла, как и в предыдущих примерах, отключает эхо до конца исполнения. Следующая строка выдает на экран сообщение о начале 1-го прохода трансляции. Затем вызывается соответствующая фаза транслятора - PAS1, и в качестве параметра подставляется имя файла с исходным текстам транслируемой программы. Пятая строка обеспечивает выдачу сообщения о начале 2-го прохода, а шестая строка - вызов второй фазы транслятора - PAS2. Наконец, восьмая строка извещает о начале 3-го прохода, а девятая строка вызывает компоновщик программ - LINK, которому в качестве параметра подставляется имя только что оттранслированного модуля MOD1 и имена других.модулей,- в данном случае MOD2 и MOD3.
Между командами, осуществляющими вызовы основных частей транслятора, вставлены команды PAUSE, которые позволяют программисту проанализировать результат каждого прохода, прежде чем подтолкнуть систему к выполнению следующего. Заметим, что пользователь может прервать исполнение командного файла, нажав во время паузы клавиши Ctrl и C (такую комбинацию будем обозначать Ctrl+C). При нажатии указанных клавиш ДОС приостанавливает исполнение командного файла и переспрашивает пользователя, действительно ли он хочет прервать работу. Согласие пользователя выражается нажатием клавиши Y (Yes); отрицательный ответ - N (No) вызывает продолжение работы.
Приведенный пример типичен для организации запуска трансляторов, хотя конкретное оформление командного файла зависит от программиста.
2.6. РАЗВИТЫЕ КОМАНДНЫЕ ФАЙЛЫ
Рассмотрим действие специальных команд, позволяющих управлять интерпретацией командных файлов. К ним, как указывалось, относятся команды GOTO, IF, FOR, SHIFT, а также команда EXIT, играющая особую роль при рекурсивном (вложенном) вызове командных файлов.
КОМАНДА GOTO. Позволяет передавать управление на метку и тем самым осуществлять повторное исполнение участков командного файла или, наоборот, обходить некоторые участки (что обычно имеет смысл в сочетании с командой ветвления IF).
Пример 1. Пусть командный файл C.BAT имеет вид:
echo off
:m1
echo Вывод на принтер файла %1
echo Для остановки нажмите CtrlC
сору %1 prn
pause
goto m1
В данном примере вторая строка содержит метку ml (признаком метки является двоеточие в начале строчки), а последняя строка - команду перехода на эту метку. Четыре команды внутри повторяемого участка командного файла служат для выдачи на экран поясняющих сообщений (команды ECHO) и копирования на принтер (т.е. печати) файла, имя которого подставляется вместо формального параметра %1. Команда PAUSE приостанавливает исполнение, чтобы пользователь имел возможность осмотреться и либо прервать работу, либо продолжить ее дальше.
Допустим, пользователь дает в терминала команду:
c spectr.doc
Тогда начинается циклическое исполнение файла СВАТ с фактическим параметром SPECTR.DOC. На принтер начнут выдаваться одна за другой копии этого текстового файла, прерываемые паузами после каждой очередной копии. Пользователь может прервать исполнение этого командного файла, нажав одновременно клавиши Ctrl и C.
КОМАНДА IF. Позволяет проверять условие и выполнять команду в зависимости от результата его проверки. Что можно задавать в качестве условии? Для этого имеется три возможности:
1. Проверка КОДА ЗАВЕРШЕНИЯ какой-либо программы, сработавшей перед оператором IF. При атом в начале оператора IF используется конструкция следующего вида:
IF ERRORLEVEL <N>
Любая программа может с помощью специального прерывания ДОС выработать в момент своего окончания так называемый код завершения. Этот код сравнивается с числом N. Условие считается выполненным (истинным), если выработанный код завершения равен или больше указанного числа N.
2. Проверка наличия файла в каталоге. В этом случае начало оператора IF имеет вид:
IF EXIST <имя файла или шаблон>
В данном случае команда IF проверяет, действительно ли существует файл с заданным именем в указанном или в текущем каталоге. При обнаружении файла условие считается выполненным.
3. Сравнение двух строк, которые, в частности, могут задаваться через формальные параметры. Соответствующая конструкция может иметь вид:
IF %<N>==<текстовая строка>
Здесь значение формального параметра %<N> сопоставляется с конкретной строкой. При абсолютном совпадении двух строк условие считается выполненным.
Любое из этих условий может задаваться со знаком логического отрицания NOT; отрицание условия считается выполненным, если само условие не выполнено (ложно).
Пример 2. Опишем прием, который часто используется для организации ветвления по коду, введенному пользователем с терминала (настройка на пользователя). Будем предполагать наличие специальной программы (назовем ее ASK-CODE), которая выполняет следующие операции:
- выдает на экран текст сообщения,
- принимает введенное пользователем с клавиатуры число,
- вырабатывает код завершения, совпадающий с этим числом.
Фрагмент командного файла, использующего программу ASK-CODE, может иметь следующий вид:
...
ASK-CODE "Ваш код?"
if errorlevel 5 goto USER5
if errorlevel 4 goto USER4
...
if errorlevel 1 goto USER1
cd \work
...
goto end
:USER5
cd \user5
...
goto end
:USER4
cd \user4
...
goto end
...
:USER1
cd \userl
...
:end
В данном примере группа команд IF ERRORLEVEL ... осуществляет анализ кода завершения, выработанного программой ASK-CODE (равного, напомним, числу, введенному пользователем с терминала в ответ иа вопрос "Ваш код?"). В зависимости от значения происходит переход на одну из меток USER6, USER4, ... USER1, где затем происходит настройка операционной среды на конкретного пользователя. Если введенный пользователем код превышает 5, то переход все равно происходит на метку USER5; если же код равен 0, происходит переход на следующую команду под указанной группой операторов (cd \work). Таким образом, осуществляется ветвление внутри командного файла.
Пример 3. Иногда в начале работы пользователю необходимо узнать, не оставил ли ему кто-либо из коллег какое-нибудь сообщение. Допустим, имеется договоренность, что такие сообщения заносятся в файл MAIL.<N> в каталоге USER<N>, где <N> - код пользователя-адресата. Тогда проверка наличия сообщения и его печать для пользователя с кодом 1 может осуществляться командой вида:
if exist MAIL.1 type MAIL.1
Такая команда может стоять внутри участка командного файла, рассмотренного выше, после строки cd \user1. Аналогичные команды могут находиться в других участках этого командного файла после меток USER5, USER4 ...
Пример 4. Допустим, в общедоступном каталоге имеется программа NOTES.EXE, реализующая работу с картотекой/записной книжкой. Такую программу пользователь должен запускать с разными параметрами - именами картотек, которые находятся в разных каталогах:
- картотека TELEF в каталоге TEL,
- картотека PAPERS в каталоге PAPERS,
- картотека PERSON в каталоге ADMIN.
При обычном способе запуска пользователю пришлось бы набирать каждый раз по две команды с длинными именами, например:
cd \tel
notes telef
Можно создать в общедоступном каталоге командный файл, который позволит осуществлять необходимые вызовы с использованием простых однобуквенных мнемонических имен. Такой командный файл с именем N.BAT может иметь вид (выделение меток большими буквами здесь сделано лишь для наглядности):
echo off
if %1.==. goto exit
if %1==t goto TEL
if %1==p goto PAP
if %1==s goto PERS
goto exit
:TEL
cd \tel
notes telef
goto exit
:PAP
cd \papers
notes papers
goto exit
:PERS
cd \admin
notes person
:exit
Обращение к указанному файлу при вызове разных картотек должно иметь вид:
n t или n р или n s.
При этом буквы t, p, s должны быть малыми, поскольку именно в таком виде они заданы в условиях операторов IF.
Отсутствие букв t, p или s при вызове этого файла приведет к переходу иа метку exit.
КОМАНДА FOR. Обеспечивает циклическое выполнение команд ДОС. При этом можно задать формальный параметр и список фактических параметров (обычно - имен файлов), которые последовательно подставляются вместо формального параметра в текст исполняемой команды.
Пример 5. Пусть имеется необходимость систематически копировать файлы PROG.PAS, PROG.OBJ и PROG.EXE из рабочего каталога иа виртуальный диск D:. С этой целью можно в соответствующем командном файле дать команду:
for %%A in (PAS OBJ EXE) do copy PROG.%%A d:
Здесь формальный параметр %%А последовательно сопоставляется со списком фактических параметров в круглых скобках и используется в команде COPY, которая в даииом случае сработает 3 раза подряд.
Подставив в качестве второго аргумента команды COPY вместо имени D: еще один формальный параметр %1, можно будет менять назначение копирования, задавая его с терминала.
КОМАНДА SHIFT. Вызывает сдвиг списка формальных параметров относительно списка фактических параметров. Так, если в командном файле фигурируют формальные параметры %1 и %2, а в обращении к командному файлу - фактические параметры A, B, C, D, то сначала соответствие формальных и фактических параметров выглядит следующим образом:
%1=А %2=В
Однократное применения команды SHIFT дает следующее соответствие:
%1=В %2=C
Двукратное применение вызывает дальнейший сдвиг:
%1=C %2=D
Пример 6. Пусть стоит задача, обратная той, которая рассмотрена в примере 5; а именно, - нужно копировать на виртуальный диск D: файлы, имена которых пользователь будет вводить с терминала. Эту задачу позволит решить командный файл следующего вида:
echo off
:loop
copy %1 d:
shift
goto loop
Если дать этому файлу имя D.BAT и вызвать его с произвольным числом аргументов:
d f.1 f.2 f.3 f.4 f.5
то будет происходить последовательное присваивание формальному параметру %1 значений F.1, F.2, F.3, F.4, F.5 и циклическое исполнение команд COPY и SHIFT. После исчерпания фактических параметров команда COPY выдаст сообщение об ошибке, поскольку ее первый аргумент будет отсутствовать. В этот момент пользователь сможет прервать работу командного файла, нажав клавиши Ctrl и C [Команду SHIFT приходится использовать также в тех случаях, когда число параметров командного файла превышает 9, так как изнутри командного файла можно адресоваться к внешним формальным параметрам только от % 0 до %9. (Примеч. ред.)]).
ВЛОЖЕННЫЕ ВЫЗОВЫ КОМАНДНЫХ ФАЙЛОВ. ВЛОЖЕННЫЕ (рекурсивные) вызовы командных файлов с возвратом, вообще говоря, не предусмотрены в ДОС. Если из одного командного файла X.BAT вызвать другой командный файл - Y.BAT, то управление уже не возвращается обратно в Х.BAT.
Вложенные вызовы с возвратом, однако, возможны, если применять особый способ - обращение к командному процессору COMMAND.COM с указанием в качестве аргумента имени вызываемого командного файла.
Пример 7. Пусть имеется два командных файла - "вызывающий" Х.BAT и "вызываемый" Y.BAT. Оформление вызова Y.BAT из Х.BAT и возврат обратно осуществляется согласно схеме, представленной на рис.2.3.
Рис.2.3. Вложенный вызов командного файла
Из приведенной схемы видно, что обращение к командному процессору вида COMMAND /C позволяет приостановить исполнение текущего командного файла X.BAT и начать исполнение Y.BAT. Возврат из Y.BAT осуществляется специальной командой EXIT. Таким образом можно структурировать командные файлы. При этом есть, впрочем, и свои потери, поскольку при вызове еще одной копии командного процессора (COMMAND.COM) расходуется дополнительно около 4 Кбайт оперативной памяти.
Текстовые файлы, о которых говорилось выше, являются одним из самых распространенных видов файлов: в них могут храниться любые текстовые документы (в том числе тексты программ на языках программирования). Другая важная категория - это файлы, хранящие программы в машинном коде. В отличие от программы в текстовой форме, в которой она создается программистом, программа в машинном коде готова к загрузке в оперативную память и исполнению (поэтому иногда файл с машинным кодом называют загрузочным или исполняемым). Машинный код создается из исходного текста программы в процессе трансляции и компоновки, осуществляемых особыми системными программами.
МАШИННЫЙ КОД ПРОГРАММЫ. Он хранится в файле, имеющем один из двух типов: COM или EXE (файл типа EXE порождается компоновщиком из объектных модулей; файлы типа COM - некоторыми трансляторами; подробнее об этом - в разд.4.5). Различаются эти два типа файлов лишь способом загрузки с внешних носителей в оперативную память и настройки на фактические адреса. Для пользователя эта разница неощутима и запуск программ обоих типов выглядит одинаково. Пусть текущий каталог имеет вид:
VICONT EXE 46080 3-12-85 4:28p
BASRUN EXE 31744 5-07-82 12:42a
GRPACK EXE 24954 1-11-84 12:37p
VDRAW COM 13908 3-29-85 4:30p
BASIC COM 25984 3-08-83 12:00p
VIC-PLOT BAS 6719 12-20-84 9:58p
FIG 1 10496 6-24-85 1:49a
VIC HLP 2563 11-26-84 6:46p
START BAT 326 12-20-84 10:01p
9 File(s) 4501064 bytes free
В каталоге имеется несколько программ типа COM и EXE. Для запуска любой из них пользователю достаточно указать имя соответствующего файла без расширения, например:
C:\VIC> vicont
Некоторые программы требуют для своей работы задания параметров. Параметры могут быть числовыми или текстовыми константами; довольно часто в качестве параметра необходимо указывать имя файла, находящегося в этом же или в другом каталоге.
Так, например, если программа рисования на экране VDRAW использует в качестве источника данных содержимое файла FIG.1, то обращение к ней выглядит следующим образом;
C:\VIC> vdraw fig.1
(Отметим, что вызов прикладных программ внешне выглядит точно так же, как выполнение команд ДОС).
Иногда задание параметра является необязательным; при этом сама исполняемая программа определяет, был ли задан параметр при ее запуске. Примером может служить транслятор языка бейсик, который фигурирует в вышеприведенном каталоге под именем BASIC. Если при его запуске не указывать параметра, то в память загружается только сам транслятор (отдельной командой "изнутри" бейсика можно затем загрузить с диска рабочую программу). Но можно поступить и иначе - сразу же при запуске бейсик-транслятора указать имя файла с рабочей программой. Тогда после загрузки транслятора автоматически загружается и исполняется (интерпретируется) бейсик-программа:
C:\VIC> basic vic-plot
Следует обратить внимание на то, что, в отличие от предыдущего примера, не требуется даже указывать полное имя файла с рабочей программой - VIC-PLOT.BAS, поскольку бейсик-транслятор работает только с файлами определенного типа.
Запускаемая программа не обязательно должна находиться в текущем каталоге. Если файла нет в текущем каталоге, то производится его поиск в альтернативных каталогах, указанных командой PATH. (Это относится как к программам в машинном коде - файлам типа COM и EXE, так и к командным файлам типа BAT, рассматриваемым ниже).
КОМАНДА PATH. Аргумент команды PATH содержит обозначения одного или нескольких маршрутов, разделяемых "точкой с запятой", например:
C:\> path c:\;c:\exe
Операционная система запоминает список маршрутов, указанных в команде PATH, и использует его в дальнейшем всякий раз, когда пользователь выполняет внешнюю команду ДОС или обращается из ДОС к прикладной программе. Такая команда означает, что файл (типа COM, EXE или BAT), не найденный в текущем каталоге, следует искать сначала по маршруту C:\, т.е. в корневом каталоге диска C:, а в случае неуспеха - по маршруту G\EXE, т.е. в подкаталоге 1-го уровня EXE. Можно задать и более длинные предписания, но тогда поиск каждого файла будет происходить дольше.
Предписание альтернативных маршрутов становится очень удобным, если программы общего пользования сгруппированы в несколько каталогов. Так, все программы в машинном коде (исполняемые файлы) можно разместить в одном подкаталоге \EXE, и тогда приведенная выше команда заставит операционную систему загружать программы из каталога \EXE всякий раз, когда откуда бы то ни было возникнут обращения к этим программам. Это общепринятый прием конфигурирования системы.
Команда PATH обычно фигурирует в командном файле "автозагрузки" - AUTOEXEC.BAT и срабатывает "незаметно" для пользователя. Узнать, какие альтернативные маршруты установлены в данный момент, пользователь может, давая команду PATH без аргументов.
Отменить установленные альтернативные маршруты можно следующей командой:
C:\> path;
Вызов программы из другого каталога можно также осуществить, снабдив имя запускаемой программы соответствующим префиксом: тогда файл будет загружаться из указанного префиксом каталога (независимо от установленных альтернативных маршрутов) [Такой вызов программы возможен только в версиях ДОС 3.0 и старше. (Примеч. ред.)]. Пример такого обращения к программе VICONT:
A:\> c:\vic\vicont
Рабочим здесь является диск A:, а программа VICONT запускается из каталога VIC, находящегося на диске C:.
Точно так же и параметры - имена файлов - могут снабжаться необходимыми префиксами, обеспечивающими их поиск в соответствующих каталогах.
КОМАНДНЫЕ ФАЙЛЫ. Командные файлы также принадлежат к категории исполняемых файлов. Такие файлы снабжаются типом BAT (от английского слова batch - пачка), и в жаргонной речи их называют иногда "бэтч-файлами". В приведенном выше примере каталога имеется один командный файл - START.BAT.
Запуск (исполнение) командного файла осуществляется точно так же, как запуск программы в машинном коде (файла типа COM или EXE): указывается имя файла без расширения и, если требуется, параметры. Пример запуска командного файла START:
C:\VIC) start
Роль командных файлов особая. Они могут содержать целую группу команд ДОС или обращений к прикладным программам, которые выполняются последовательно или в более сложном порядке, в зависимости от некоторых условий (разд.2.6). Командный файл, в отличие от исполняемых файлов остальных двух типов, содержит не машинный код программы, а текст, который интерпретируется командным процессором ДОС. (Таким образом, по форме это обычный текстовый файл, содержимое которого можно вывести на принтер или экран) [Попутно внесем терминологическую ясность: командный файл совершенно естественно относить к категории исполняемых файлов, но никак нельзя называть загрузочным, поскольку он не содержит машинного кода, загружаемого в оперативную память. (Примеч. ред.)]. Строки этого текста могут представлять собой:
- встроенные команды ДОС,
- обращения к исполняемым программам,
- вызовы других командных файлов,
- специальные команды для управления выдачей на экран,
- специальные команды для организации ветвлений и циклов,
- метки.
Все эти конструкции (за исключением меток) могут не только фигурировать в командных файлах, но и просто вводиться пользователем с клавиатуры. Однако в практической работе лишь команды первых трех типов вводятся пользователем, а остальные конструкции, включая метки, служат главным образом для создания нетривиальных командных файлов.
Рассмотрим несколько простых примеров применения командных файлов.
Пример 1. Допустим, наша регулярная работа осуществляется в каталоге WORK, но время от времени мы хотим переходить в другой каталог - GRAPH, запускать там графический пакет VICONT, а по окончании работы с этой программой возвращаться в каталог WORK. Последовательность команд при этом должна быть следующей:
cd \graph
vicont
cd \work
Эту последовательность можно разместить с помощью текстового редактора в командном файле. Каждая команда должна следовать на отдельной строке (регистр, на котором набирается текст, безразличен).
Дадим этому файлу имя V.BAT. Достаточно теперь задать в качестве одной команды имя этого файла - V, и содержащиеся в нем несколько команд начнут интерпретироваться одна за другой, избавляя нас от необходимости вводить их текст с клавиатуры. Первая команда сменит каталог, а вторая погрузит нас в операционную среду системы VICONT. Когда после выполнения необходимых действий мы, наконец, закончим работу с VICONT, управление вернется в командный файл. Выполнение третьей команды вернет нас в каталог WORK.
Заметим, что при выполнении каждой команды в данном примере на экране печатается приглашение, затем текст самой команды (эхо) и, наконец, результат ее работы. В следующем примере будет показано, как можно отключить выдачу приглашений и текстов команд, чтобы не загромождать экран лишней информацией.
Пример 2. Допустим, мы хотим предельно сократить число манипуляций для создания необходимой рабочей обстановки при запуске системы. Мы можем заставить ДОС автоматически провести всю необходимую подготовку операционной среды с помощью командного файла следующего вида:
echo off
mode co80
path c:\;c:\exe;c:\turbo
cd \work
turbo
Дав этому файлу какое-либо простое запоминающееся имя, например, START.BAT, мы избавим себя от систематического набора указанных команд: достаточно набирать лишь слово START. Первая команда этого файла ECHO OFF отключает "эхо", т.е. блокирует выдачу на экран приглашений ДОС н текстов последующих команд. Три следующие команды осуществляют настройку необходимых параметров (установка режима дисплея, задание альтернативных маршрутов и рабочего каталога), а последняя команда производит запуск системы TURBO Pascal.
Пример 3. Для подготовки принтера к печати русского текста мы можем воспользоваться специальной программой загрузки шрифта, обращение к которой имеет вид: LFONT 0. Перед запуском этой программы нужно проделать подготовительные действия - включить принтер, вставить бумагу. Можно создать небольшой командный файл, который будет выдавать на экран соответствующее уведомление и затем запускать программу LFONT с указанным параметром. Вид такого файла:
echo off
echo Включите принтер, вставьте бумагу
echo Будет загружен русский шрифт
pause
lfont 0
Дадим этому файлу имя LF.BAT: для загрузки русского шрифы достаточно набрать команду LF. Исполнение этого командного файла начинается, как и в предыдущем примере, с команды ECHO OFF. Две следующие команды ECHO выводят на экран сообщения, заданные в файле в качестве текстовых строк - аргументов команд: "Включите принтер, вставьте бумагу" и "Будет загружен русский шрифт". Четвертая команда, PAUSE (пауза), приостанавливает дальнейшую обработку файла LF в ожидании, пока пользователь не нажмет какую-либо клавишу. Пауза нужна для того, чтобы можно было не спеша включить принтер и заправить бумагу. Наконец, последняя команда запускает программу LFONT.
В последнем примере были использованы команды ECHO и PAUSE, управляющие выдачей информации на экран. К этой же категории можно отнести команду REM, которая служит для внесения в текст командного файла комментария. Строка, следующая за символом REM, никак не интерпретируется "командным процессором - она используется лишь для пояснений пользователю. С помощью команды REM удобно блокировать исполнение некоторых команд, не удаляя их из текста командного файла.
Использование команд ECHO, PAUSE и REM полезно лишь в командных файлах; вводить их с клавиатуры для непосредственного исполнения не имеет особого смысла. Есть и другие команды, предназначенные главным образом для использования в командных файлах. К ним относятся:
GOTO - безусловный переход (на метку),
IF - проверка условия и ветвление,
FOR - управление повторным выполнением команд,
SHIFT - сдвиг списка формальных параметров.
Эти команды будут рассмотрены в следующем разделе.
Отметим еще одно важное свойство командных файлов - возможность использования внутри них ФОРМАЛЬНЫХ ПАРАМЕТРОВ.
Для пояснения этой возможности обратимся еще раз к первому примеру. Допустим, нам хотелось бы применять одну и ту же последовательность команд, приведенную в примере 1, для запуска разных подсистем. Тогда можно видоизменить приведенный выше текст файла V.BAT, заменив имя каталога GRAPH и имя вызываемой программы VICONT формальными параметрами. Командный файл при этом приобретает вид:
cd \%1
%2
cd \work
Символы % 1 и % 2 обозначают формальные параметры, вместо которых при обращении к V.BAT будут подставлены в текстовом виде фактические параметры, указанные в командной строке. Обращение к V.BAT может иметь вид:
v graph vicont
Строки graph и vicont займут место соответственно параметров %1 и %2, в результате чего получится точно такой же текст, как и в примере 1. Однако новый командный файл, в отличие от прежнего, можно использовать для запуска других подсистем, например:
v ss symphony или v ww word.
Эффект таких обращений очевиден. В первом случае из каталога SS будет вызвана система SYMPHONY, во втором случае из каталога WW вызывается система WORD.
ОРГАНИЗАЦИЯ РАБОТЫ С ТРАНСЛЯТОРАМИ. Подстановка формальных параметров в командные файлы часто используется при организации работы с системами программирования на языках паскаль, си, фортран и др. Дело в том, что трансляция программ из исходных текстов на этих языках в большинстве случаев осуществляется в несколько этапов, или "проходов". При этом на разных этапах с помощью отдельных команд требуется вызывать разные части трансляторов, подставляя им в качестве параметров имена файлов с исходными текстами, библиотеками загрузочных модулей и др. И вот здесь можно заметно упростить работу, применяя командные файлы с формальными параметрами. Пример такого файла для трансляции программ с языка паскаль:
echo off
echo ----- 1-й проход -----
pas1 %1
pause
echo ----- 2-й проход -----
pas2
pause
echo ----- 3-й проход -----
link %1+%2
Если такому файлу дать имя PAS.BAT, то вызов его может выглядеть следующим образом:
pas mod1 mod2+mod3
Здесь MOD1 - имя файла с исходным текстом транслируемой программы (полное имя этого файла должно быть MOD1.PAS). Это имя подставляется в командный файл вместо параметра %1. MOD2 и MOD3 - имена объектных модулей, присоединяемых к транслируемой программе на стадии компоновки (их полные имена в каталоге имеют расширение OBJ). Эти имена, разделенные знаком +, подставятся в командный файл вместо параметра %2.
Первая строка данного файла, как и в предыдущих примерах, отключает эхо до конца исполнения. Следующая строка выдает на экран сообщение о начале 1-го прохода трансляции. Затем вызывается соответствующая фаза транслятора - PAS1, и в качестве параметра подставляется имя файла с исходным текстам транслируемой программы. Пятая строка обеспечивает выдачу сообщения о начале 2-го прохода, а шестая строка - вызов второй фазы транслятора - PAS2. Наконец, восьмая строка извещает о начале 3-го прохода, а девятая строка вызывает компоновщик программ - LINK, которому в качестве параметра подставляется имя только что оттранслированного модуля MOD1 и имена других.модулей,- в данном случае MOD2 и MOD3.
Между командами, осуществляющими вызовы основных частей транслятора, вставлены команды PAUSE, которые позволяют программисту проанализировать результат каждого прохода, прежде чем подтолкнуть систему к выполнению следующего. Заметим, что пользователь может прервать исполнение командного файла, нажав во время паузы клавиши Ctrl и C (такую комбинацию будем обозначать Ctrl+C). При нажатии указанных клавиш ДОС приостанавливает исполнение командного файла и переспрашивает пользователя, действительно ли он хочет прервать работу. Согласие пользователя выражается нажатием клавиши Y (Yes); отрицательный ответ - N (No) вызывает продолжение работы.
Приведенный пример типичен для организации запуска трансляторов, хотя конкретное оформление командного файла зависит от программиста.
2.6. РАЗВИТЫЕ КОМАНДНЫЕ ФАЙЛЫ
Рассмотрим действие специальных команд, позволяющих управлять интерпретацией командных файлов. К ним, как указывалось, относятся команды GOTO, IF, FOR, SHIFT, а также команда EXIT, играющая особую роль при рекурсивном (вложенном) вызове командных файлов.
КОМАНДА GOTO. Позволяет передавать управление на метку и тем самым осуществлять повторное исполнение участков командного файла или, наоборот, обходить некоторые участки (что обычно имеет смысл в сочетании с командой ветвления IF).
Пример 1. Пусть командный файл C.BAT имеет вид:
echo off
:m1
echo Вывод на принтер файла %1
echo Для остановки нажмите CtrlC
сору %1 prn
pause
goto m1
В данном примере вторая строка содержит метку ml (признаком метки является двоеточие в начале строчки), а последняя строка - команду перехода на эту метку. Четыре команды внутри повторяемого участка командного файла служат для выдачи на экран поясняющих сообщений (команды ECHO) и копирования на принтер (т.е. печати) файла, имя которого подставляется вместо формального параметра %1. Команда PAUSE приостанавливает исполнение, чтобы пользователь имел возможность осмотреться и либо прервать работу, либо продолжить ее дальше.
Допустим, пользователь дает в терминала команду:
c spectr.doc
Тогда начинается циклическое исполнение файла СВАТ с фактическим параметром SPECTR.DOC. На принтер начнут выдаваться одна за другой копии этого текстового файла, прерываемые паузами после каждой очередной копии. Пользователь может прервать исполнение этого командного файла, нажав одновременно клавиши Ctrl и C.
КОМАНДА IF. Позволяет проверять условие и выполнять команду в зависимости от результата его проверки. Что можно задавать в качестве условии? Для этого имеется три возможности:
1. Проверка КОДА ЗАВЕРШЕНИЯ какой-либо программы, сработавшей перед оператором IF. При атом в начале оператора IF используется конструкция следующего вида:
IF ERRORLEVEL <N>
Любая программа может с помощью специального прерывания ДОС выработать в момент своего окончания так называемый код завершения. Этот код сравнивается с числом N. Условие считается выполненным (истинным), если выработанный код завершения равен или больше указанного числа N.
2. Проверка наличия файла в каталоге. В этом случае начало оператора IF имеет вид:
IF EXIST <имя файла или шаблон>
В данном случае команда IF проверяет, действительно ли существует файл с заданным именем в указанном или в текущем каталоге. При обнаружении файла условие считается выполненным.
3. Сравнение двух строк, которые, в частности, могут задаваться через формальные параметры. Соответствующая конструкция может иметь вид:
IF %<N>==<текстовая строка>
Здесь значение формального параметра %<N> сопоставляется с конкретной строкой. При абсолютном совпадении двух строк условие считается выполненным.
Любое из этих условий может задаваться со знаком логического отрицания NOT; отрицание условия считается выполненным, если само условие не выполнено (ложно).
Пример 2. Опишем прием, который часто используется для организации ветвления по коду, введенному пользователем с терминала (настройка на пользователя). Будем предполагать наличие специальной программы (назовем ее ASK-CODE), которая выполняет следующие операции:
- выдает на экран текст сообщения,
- принимает введенное пользователем с клавиатуры число,
- вырабатывает код завершения, совпадающий с этим числом.
Фрагмент командного файла, использующего программу ASK-CODE, может иметь следующий вид:
...
ASK-CODE "Ваш код?"
if errorlevel 5 goto USER5
if errorlevel 4 goto USER4
...
if errorlevel 1 goto USER1
cd \work
...
goto end
:USER5
cd \user5
...
goto end
:USER4
cd \user4
...
goto end
...
:USER1
cd \userl
...
:end
В данном примере группа команд IF ERRORLEVEL ... осуществляет анализ кода завершения, выработанного программой ASK-CODE (равного, напомним, числу, введенному пользователем с терминала в ответ иа вопрос "Ваш код?"). В зависимости от значения происходит переход на одну из меток USER6, USER4, ... USER1, где затем происходит настройка операционной среды на конкретного пользователя. Если введенный пользователем код превышает 5, то переход все равно происходит на метку USER5; если же код равен 0, происходит переход на следующую команду под указанной группой операторов (cd \work). Таким образом, осуществляется ветвление внутри командного файла.
Пример 3. Иногда в начале работы пользователю необходимо узнать, не оставил ли ему кто-либо из коллег какое-нибудь сообщение. Допустим, имеется договоренность, что такие сообщения заносятся в файл MAIL.<N> в каталоге USER<N>, где <N> - код пользователя-адресата. Тогда проверка наличия сообщения и его печать для пользователя с кодом 1 может осуществляться командой вида:
if exist MAIL.1 type MAIL.1
Такая команда может стоять внутри участка командного файла, рассмотренного выше, после строки cd \user1. Аналогичные команды могут находиться в других участках этого командного файла после меток USER5, USER4 ...
Пример 4. Допустим, в общедоступном каталоге имеется программа NOTES.EXE, реализующая работу с картотекой/записной книжкой. Такую программу пользователь должен запускать с разными параметрами - именами картотек, которые находятся в разных каталогах:
- картотека TELEF в каталоге TEL,
- картотека PAPERS в каталоге PAPERS,
- картотека PERSON в каталоге ADMIN.
При обычном способе запуска пользователю пришлось бы набирать каждый раз по две команды с длинными именами, например:
cd \tel
notes telef
Можно создать в общедоступном каталоге командный файл, который позволит осуществлять необходимые вызовы с использованием простых однобуквенных мнемонических имен. Такой командный файл с именем N.BAT может иметь вид (выделение меток большими буквами здесь сделано лишь для наглядности):
echo off
if %1.==. goto exit
if %1==t goto TEL
if %1==p goto PAP
if %1==s goto PERS
goto exit
:TEL
cd \tel
notes telef
goto exit
:PAP
cd \papers
notes papers
goto exit
:PERS
cd \admin
notes person
:exit
Обращение к указанному файлу при вызове разных картотек должно иметь вид:
n t или n р или n s.
При этом буквы t, p, s должны быть малыми, поскольку именно в таком виде они заданы в условиях операторов IF.
Отсутствие букв t, p или s при вызове этого файла приведет к переходу иа метку exit.
КОМАНДА FOR. Обеспечивает циклическое выполнение команд ДОС. При этом можно задать формальный параметр и список фактических параметров (обычно - имен файлов), которые последовательно подставляются вместо формального параметра в текст исполняемой команды.
Пример 5. Пусть имеется необходимость систематически копировать файлы PROG.PAS, PROG.OBJ и PROG.EXE из рабочего каталога иа виртуальный диск D:. С этой целью можно в соответствующем командном файле дать команду:
for %%A in (PAS OBJ EXE) do copy PROG.%%A d:
Здесь формальный параметр %%А последовательно сопоставляется со списком фактических параметров в круглых скобках и используется в команде COPY, которая в даииом случае сработает 3 раза подряд.
Подставив в качестве второго аргумента команды COPY вместо имени D: еще один формальный параметр %1, можно будет менять назначение копирования, задавая его с терминала.
КОМАНДА SHIFT. Вызывает сдвиг списка формальных параметров относительно списка фактических параметров. Так, если в командном файле фигурируют формальные параметры %1 и %2, а в обращении к командному файлу - фактические параметры A, B, C, D, то сначала соответствие формальных и фактических параметров выглядит следующим образом:
%1=А %2=В
Однократное применения команды SHIFT дает следующее соответствие:
%1=В %2=C
Двукратное применение вызывает дальнейший сдвиг:
%1=C %2=D
Пример 6. Пусть стоит задача, обратная той, которая рассмотрена в примере 5; а именно, - нужно копировать на виртуальный диск D: файлы, имена которых пользователь будет вводить с терминала. Эту задачу позволит решить командный файл следующего вида:
echo off
:loop
copy %1 d:
shift
goto loop
Если дать этому файлу имя D.BAT и вызвать его с произвольным числом аргументов:
d f.1 f.2 f.3 f.4 f.5
то будет происходить последовательное присваивание формальному параметру %1 значений F.1, F.2, F.3, F.4, F.5 и циклическое исполнение команд COPY и SHIFT. После исчерпания фактических параметров команда COPY выдаст сообщение об ошибке, поскольку ее первый аргумент будет отсутствовать. В этот момент пользователь сможет прервать работу командного файла, нажав клавиши Ctrl и C [Команду SHIFT приходится использовать также в тех случаях, когда число параметров командного файла превышает 9, так как изнутри командного файла можно адресоваться к внешним формальным параметрам только от % 0 до %9. (Примеч. ред.)]).
ВЛОЖЕННЫЕ ВЫЗОВЫ КОМАНДНЫХ ФАЙЛОВ. ВЛОЖЕННЫЕ (рекурсивные) вызовы командных файлов с возвратом, вообще говоря, не предусмотрены в ДОС. Если из одного командного файла X.BAT вызвать другой командный файл - Y.BAT, то управление уже не возвращается обратно в Х.BAT.
Вложенные вызовы с возвратом, однако, возможны, если применять особый способ - обращение к командному процессору COMMAND.COM с указанием в качестве аргумента имени вызываемого командного файла.
Пример 7. Пусть имеется два командных файла - "вызывающий" Х.BAT и "вызываемый" Y.BAT. Оформление вызова Y.BAT из Х.BAT и возврат обратно осуществляется согласно схеме, представленной на рис.2.3.
Рис.2.3. Вложенный вызов командного файла
Из приведенной схемы видно, что обращение к командному процессору вида COMMAND /C позволяет приостановить исполнение текущего командного файла X.BAT и начать исполнение Y.BAT. Возврат из Y.BAT осуществляется специальной командой EXIT. Таким образом можно структурировать командные файлы. При этом есть, впрочем, и свои потери, поскольку при вызове еще одной копии командного процессора (COMMAND.COM) расходуется дополнительно около 4 Кбайт оперативной памяти.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Брябрин. Программное обеспечение персональных ЭВМ. 1990
2.7. КОНФИГУРИРОВАНИЕ СИСТЕМ
Удобная рабочая обстановка для пользователя ПЭВМ может быть создана в результате продуманного конфигурирования и начальной настройки системы. ДОС дает возможность при запуске машины автоматически задавать определенные начальные условия, которые влияют на дальнейшую работу пользователя. Осуществляется это с помощью содержимого двух особых файлов:
CONFIG.SYS
AUTOEXEC.BAT
Указанные файлы, если они имеются в корневом каталоге системного диска, обрабатываются при любом включении или перезапуске машины (напомним, что перезапуск осуществляется путем одновременного нажатия трех клавиш - Alt, Ctrl и Del или нажатием специальной кнопки, если она есть на машине). Рассмотрим, что может быть задано в указанных файлах.
ФАЙЛ КОНФИГУРАЦИИ CONFIG.SYS. С помощью файла конфигурации можно расширять операционную систему и изменять некоторые параметры, влияющие на работу внешних устройств. Одно из важнейших свойств ДОС состоит в возможности добавления новых внешних устройств и подключения специальных программ, обеспечивающих управление их работой.
Эти программы, называемые ДРАЙВЕРАМИ ВНЕШНИХ УСТРОЙСТВ, можно включить в систему, перечислив их в файле CONFIG.SYS. Помимо этого в файле конфигурации можно указать, сколько файлов в системе может быть открыто одновременно, задать количество буферов для обменов с внешними накопителями и некоторые другие параметры.
Пример 1. Рассмотрим типичный вид файла CONFIG.SYS:
break=on
files=12
device=c:\sys\alfa.sys
device=c:\sys\vdisk.sys 20
device=c:\sys\ansi.sys
device=c:\sys\mouse.sys
device=c:\sys\tosh.sys
В первой строке с помощью выражения BREAK=ON устанавливается режим, при котором пользователь будет иметь возможность прервать любую работающую программу при определенных условиях. Для этого дается команда прерывания, вызываемая одновременным нажатием управляющих клавиш Ctrl и Break. Работающая программа будет прервана, если эти клавиши оказываются нажатыми в момент выполнения операций ввода/вывода (включая печать на принтере, обмен с дисками и др.).
Во второй строке командой FILES=12 устанавливается, что количество одновременно открытых файлов может достигать 12, что довольно часто требуется в программах, интенсивно работающих с файловой системой (базах данных, картотеке и др.). По умолчанию же это число равно 8. Следует иметь в виду, что на каждый файл отводится по 48 байт оперативной памяти.
Пять следующих строк имеют одинаковый вид и содержат команды подключения к ДОС дополнительных внешних устройств. В правой части каждого выражения, после знака равенства, задается имя файла, являющегося драйвером нового устройства (такой файл содержит программу в машинном коде, создаваемую по особым соглашениям). Команд такого типа в CONFIG.SYS может быть сколько угодно. В данном примере все имена драйверов имеют префикс C:\SYS, указывающий каталог, в котором находятся соответствующие файлы. В рассматриваемом примере к ДОС подключаются следующие драйверы:
ALFA.SYS - драйвер, обеспечивающий прием с клавиатуры и выдачу на дисплей русских букв (или букв другого алфавита);
VDISK.SYS - драйвер виртуального диска, создаваемого в оперативной памяти;
ANSI.SYS - драйвер "расширенного" управления клавиатурой и дисплеем на основе программируемого набора кодов;
MOUSE.SYS - драйвер манипулятора "мышь";
TOSH.SYS - драйвер принтера типа Toshiba P1350 для печати русскими буквами.
Несколько замечаний по поводу указанных драйверов. Драйвер клавиатуры и дисплея для русских букв, может быть устроен по-разному. Вариант этого драйвера, разработанный в ВЦ АН СССР (автор - А.А.Чижов), обеспечивает переключение с английского алфавита на русский и обратно при нажатии пользователем выделенной клавиши. Чаще всего для этого используется клавиша CapsLock. Кроме того, имеется вариант этого драйвера, учитывающий установку в машине специального ПЗУ знакогенератора для русских букв, а также другие (нестандартные) разновидности адаптеров для цветных графических дисплеев.
Если в машине установлена достаточно большая оперативная память (например, больше 256 Кбайт), то часть ее можно занять под ВИРТУАЛЬНЫЙ ДИСК (их может быть несколько), который будет использоваться точно так же, как и обычный накопитель на магнитном диске (иногда он называется псевдодиском). В момент создания виртуальный диск не содержит никакой информации, а после выключения машины все, что туда было записано, пропадает. Тем не менее работать с ним в некоторых случаях очень удобно, потому что, во-первых, доступ к нему для записи и чтения файлов производится гораздо быстрее, чем к реальному гибкому или жесткому диску; во-вторых, наличие в системе дополнительного накопителя всегда создает определенные удобства для работы.
Накопитель, соответствующий псевдодиску, обозначается очередной буквой латинского алфавита. В системе без жесткого диска 1-й виртуальный диск получает имя C:, следующий - D: и т.д. В системе с жестким диском соответственно - D:, E: и т.д.
Некоторые драйверы виртуального диска требуют, чтобы объем диска был указан вместе с именем драйвера в файле CONFIG.SYS (именно этот вариант использован в примере). Драйвер, разработанный А.А.Чижовым, запрашивает объем псевдодиска у пользователя, который тем самым может регулировать количество выделяемой для диска оперативной памяти при начальной загрузке и инициализации машины. Это удобно, когда на машине используются системы с разными требованиями к оперативной памяти.
Расчет величины псевдодиска может быть приближенным. Для этого следует знать, что операционной системе нужно для работы примерно 60 Кбайт оперативной памяти, а прикладным системам - в среднем от 60 до 300 Кбайт (в отдельных случаях - свыше 300 Кбайт). Таким образом, суммарная оперативная память, необходимая для нормальной работы, должна иметь объем около 300 Кбайт [Во многих практических случаях эта цифра значительно меньше. (Примеч. ред.)]. Все, что остается сверх этого, может быть выделено под виртуальный диск. Следует также иметь в виду, что чем меньше объем диска, тем менее он полезен для работы.
Драйвер расширенного управления клавиатурой и дисплеем позволяет с помощью так называемых Esc-последовательностей (читается "Искейп-последовательностей") управлять режимом приема кодов с клавиатуры и работы дисплея. Ниже будет подробно рассмотрено, как это делается (разд.4.1, 4.2).
Драйвер манипулятора "мышь" проверяет, установлен ли в машине соответствующий адаптер (плата, которая принимает сигналы с манипулятора). Если адаптера нет, то на экран выдается соответствующее сообщение, но никаких фатальных последствий не возникает - можно продолжать работать, не используя "мышь".
Драйвер принтера TOSH.SYS обеспечивает графическое изображение русских букв на точечно-матричном принтере типа Toshiba P1350, который отличается высококачественной печатью. Подключение такого драйвера позволяет считать, будто бы машина снабжена новым внешним устройством с именем TOSH. Можно выдавать на него текстовые файлы, используя, например, команду COPY:
сору <имя печатаемого файла> tosh
Кроме указанных в примере команд, в файле конфигурирования можно установить нестандартное количество буферов для обмена информацией с дисковыми накопителями. Стандартное число равно 2, рекомендуемое для машин с жестким диском - не менее 3, а для некоторых прикладных систем, например, баз данных, картотек и т.п., полезно иметь до 20 буферов с целью ускорения обменов с дисками. Однако при этом следует иметь в виду, что на каждый буфер расходуется по 512 байт оперативной памяти. Задание числа буферов делается с помощью выражения вида:
BUFFERS=<количество буферов>
Еще одна возможность позволяет указывать имя файла, который будет играть роль нестандартного командного процессора (вместо стандартного файла COMMAND.COM). Такое указание осуществляется с помощью выражения вида:
SHELL=<имя файла с новым командным процессором>
Таким образом, с помощью файла конфигурирования пользователь может задать собственные, нестандартные возможности, которые действуют в течение текущего сеанса работы.
ФАЙЛ АВТОЗАПУСКА AUTOEXEC.BAT. С точки зрения содержащейся в файле AUTOEXEC.BAT информации он является обычным командным файлом. Однако он играет особую роль, потому что при начальном запуске и инициализации системы, вслед за обработкой CONFIG.SYS, операционная система пытается найти в корневом каталоге системного диска файл AUTOEXEC.BAT и начинает его обработку автоматически, без какого-либо побуждения со стороны пользователя. В файл AUTOEXEC.BAT удобно занести различные команды, которые осуществят всю необходимую настройку системы и автоматически "погрузят" пользователя в привычную операционную обстановку. Рассмотрим на примерах, что полезно внести в указанный файл, и попутно поясним действие некоторых, пока не рассматривавшихся команд (SET, PROMPT и др.), которые чаще всего употребляются именно в файле автозапуска.
Пример 2. Рассмотрим файл AUTOEXEC.BAT, который может быть установлен на машине, используемой преимущественно одним человеком (далее будет рассмотрен пример для случая, когда иа машине работают попеременно разные люди):
echo off
path с:\;с:\exe
prompt $p$g
set ABC=c:\abc
timer s
ver
remind
fkeys
Начиная со второй строки этого файла, стоят команды, обеспечивающие создание определенной операционной обстановки. Рассмотрим их по порядку.
1. Команда PATH устанавливает альтернативные маршруты для поиска исполняемых файлов. В примере один из маршрутов указывает на системный подкаталог с именем EXE. Кроме того, как возможное место размещения общеупотребительных программ указан корневой каталог диска C:.
Иногда "фирменные" поставки операционной системы типа MS-DOS/PC-DOS в качестве места хранения программ общего назначения используют каталог с именем BIN (или DOS и т.п.). В этом случае именно его нмя полезно указать в команде PATH.
Для пользователей, единолично владеющих машиной и часто обращающихся к какой-либо одной системе программирования или прикладной системе (например, Turbo Pascal), может оказаться полезным включение в число альтернативных маршрутов имени соответствующего "прикладного" подкаталога. Однако увлекаться этим не следует, таи как чем больше будет задано альтернативных каталогов, тем дольше будет происходить поиск файлов в них.
2. Команда PROMPT задает формат приглашения ДОС (разд.2.1). Задание формата приглашения осуществляется аргументом команды - строкой, состоящей из обычных текстовых и специальных управляющих символов. Управляющие символы снабжаются префиксом - знаком $, отличающим их от обычных символов. Наиболее часто используются следующие управляющие символы:
$р - выдача имени текущего (рабочего) каталога,
$t - выдача текущего времени,
$d - выдача текущей даты,
$g - выдача символа-разделителя >,
$b - выдача символа-разделителя |,
$h - стирание предыдущего символа,
$e - начало выдачи Esc-последовательности.
Другие символы используются реже. К ним относятся:
$n - выдача имени текущего накопителя,
$q - выдача символа-разделителя =,
$l - выдача символа-разделителя <,
$$ - выдача символа $,
_ - этот символ (подчерк) указывает на необходимость перехода на следующую строку.
В рассматриваемом примере строка "$p$g" в качестве параметра команды PROMPT обеспечивает выдачу приглашения, которое используется наиболее часто. Оно содержит имя текущего каталога и имеет, например, такой вид:
C:\WORK>
Если бы строка имела вид "$t $d $b $p$g", то в приглашение были бы включены довольно длинные сообщения о времени и дате:
13:55:34.05 Mon 11-25-85 | C:\WORK>
Чтобы подавить выдачу секунд и долей секунд в таком приглашении, можно применить управляющие символы стирания ($h). Их число должно соответствовать числу удаляемых символов. Параметр команды PROMPT приобретает в таком случае вид "$t$h$h$h$h$h$h $d $b $p$g", а приглашение станет несколько компактнее:
13:55 Mon 11-25-85 | C:\WORK>
Приглашение такого вида содержит полезную информацию, но когда оно начнет повторяться в нескольких строчках подряд, то будет выглядеть чересчур навязчиво и неоправданно загромождать экран.
Один из часто используемых приемов состоит в размещении даты и времени в верхнем углу экрана, для чего в параметр команды PROMPT вводятся Esc-последовательности, позволяющие выбирать место на экране для текущей позиции курсора [При этом используется особый драйвер (ANSI.SYS), обеспечивающий управление экраном с помощью Esc-последовательностей (см. разд.4.2). Разумеется, файл CONFIG.SYS должен содержать имя драйвера]. Например (пробелы между отдельными компонентами вставлены здесь только для удобства чтения):
$e[s $e[l;57H $t$h$h$h$h$h$h $d $e[u
Управляющий символ $e обозначает начало Esc-последовательности, обеспечивающей управление экраном. Первая часть, состоящая из символов $e[s, обеспечивает запоминание текущей позиции курсора. Вторая часть, состоящая из символов $e[1;57H, устанавливает курсор в 1-ю строку экрана на 57-ю позицию. Затем уже знакомая нам последовательность "$t$h$h$h$h$h$h $d" вызывает печать с этой позиции времени (с подавлением секунд) и даты. Наконец, заключительная часть управляющей строки при помощи Esc-последовательности $e[u восстанавливает позицию курсора. При этом время и дата будут печататься в правом верхнем углу экрана, а остальная часть приглашения будет располагаться на своем обычном месте.
Дальнейшее усовершенствование или, скорее, украшение может состоять в том, чтобы выдавать время и дату другим цветом, отличным от обычного цвета курсора. Подробнее об Esc-последовательностях и драйвере ANSI.SYS рассказано в разд.4.2.
Командой PROMPT можно выдавать и другие информационные параметры, например, имя пользователя, название организации и др.
3. Команда SET позволяет вводить в операционную обстановку системы различные имена с параметрами, которые затем могут использоваться прикладными программами [Как можно анализировать имена и параметры в операционной обстановке, описано в техническом руководстве по ДОС. (Примеч. ред.)]. Типичное использование таких параметров - задание имей каталогов, где должны находиться все рабочие файлы для данной прикладной системы (например, базы данных или текстового редактора).
В рассматриваемом примере команда SET вводит имя ABC с параметром C:\ABC, которое является указанием текстовому процессору, откуда следует брать вспомогательные файлы (шрифты, схему размещения окон на экране и др.). Подробнее эта программа будет описана в дальнейшем (разд.6.4).
Рассмотренные выше команды PATH и PROMPT также модифицируют обстановку, но в отношении фиксированных имен (а именно, устанавливают параметры для имей PATH и PROMPT). Команда SET позволяет делать то же самое для произвольных имен, и ее, таким образом, можно рассматривать как обобщение вышерассмотренных команд.
Команда SET может использоваться, например, для указания каталога, ориентированного на обслуживание конкретной прикладной системы. На разных машинах и для разных пользователей можно указывать различные каталоги, что дает определенную гибкость в использовании прикладной системы. Кроме того, рабочий каталог такой системы, как правило, неизвестен другим программам, что повышает надежность ее эксплуатации.
4. Команда TIMER не является встроенной. Это одна из утилит (служебных программ), служащая для активизации показаний и выдачи текущей даты и времени со встроенного таймера и календаря (если таковой имеется на машине). Разные модели машин могут использовать различные аппаратные средства для поддержки календаря и таймера, поэтому и программы считывания их показаний могут быть разными. Обращение к программе GETCLOCK обеспечивает считывание первого показания календаря н таймера после включения машины (пока машина выключена, работа календаря и таймера поддерживается встроенной аккумуляторной батарейкой).
Чтобы произвести установку даты и времени на встроенном календаре и таймере, используется другая программа - SETCLOCK (ее имя также может варьироваться в зависимости от типа установленного таймера). Обращаться к этой программе приходится в редких случаях - при начальной установке новой машины, при смене часового пояса, при переходе с зимнего времени на летнее и наоборот.
Если в машине нет аккумуляторной батарейки для поддержки работы календаря и таймера, пока машина выключена, то утилита TIMER бесполезна; в этом случае для установки даты и времени в файле AUTOEXEC.BAT вместо этой команды должны фигурировать две другие (встроенные) команды: date и time.
5. Команда VER в шестой строчке файла AUTOEXEC.BAT является встроенной в ДОС командой. Ее задача очень проста - выдать на экран сообщение о номере версии операционной системы. Это необходимо, поскольку некоторые прикладные программы учитывают особенности той или иной версии ДОС и пользователю полезно знать, какая именно версия установлена в данный момент на машине.
6. Команда REMIND относится к числу служебных; она реализуется программой, разработанной в ВЦ АН СССР (автор - О.А.Гончаров). Ее функция состоит в анализе специального файла REM.REM, в котором с определенными датами или диапазонами дат связываются текстовые сообщения. Если при включении машины программа REMIND выясняет, что текущая дата совпадает с одной из дат, указанных в REM.REM, то на экран выдается соответствующее дате сообщение. Таким образом, через файл AUTOEXEC.BAT можно автоматически выдавать НАПОМИНАЮЩИЕ СООБЩЕНИЯ, связанные с некоторыми датами (это могут быть, к примеру, дни рождений, важные встречи и др.).
7. Последняя команда в файле автозапуска - FKEYS - осуществляет вызов другого командного файла FKEYS.BAT, в котором с помощью Esc-последовательностей происходит переопределение некоторых функциональных клавиш для предоставления пользователю возможности быстрого набора некоторых часто используемых команд.
Следует помнить, что прямой вызов командного файла FKEYS.BAT из AUTOEXEC.BAT не позволяет вернуться назад в файл автозапуска. Возврат в AUTOEXEC.BAT можно, как говорилось выше, обеспечить вызовом командного процессора. В этом случае обращение к FKEYS.BAT должно выглядеть так:
command /c fkeys
Таким образом, в рассмотренном примере файла автозапуска указаны команды, с помощью которых создается определенная операционная обстановка, способствующая удобной дальнейшей работе пользователя. Не все из рассмотренных команд необходимы в равной степени; без команд REMIND или FKEYS можно, разумеется, обойтись. С другой стороны, без команд PATH, SET и PROMPT работать было бы очень неудобно. Весьма часто в файл автозапуска вставляются также команды управления экраном, с тем чтобы перед началом работы сделать цветные заставки, выдать приветственные сообщения и др. Применяется также команда MODE для установки параметров экрана, принтера н коммуникационного канала, а также команда ASSIGN для переназначения логических имен накопителей.
ФАЙЛ АВТОЗАПУСКА ДЛЯ ПЭВМ С НЕСКОЛЬКИМИ ПОЛЬЗОВАТЕЛЯМИ. Часто система конфигурируется таким образом, чтобы ею могли пользоваться несколько человек (компьютер попеременно является "персональным" для каждого из них). Идентификатор, или код пользователя, запрашиваемый во время инициализации, позволяет системе погрузить человека в привычную для него операционную обстановку. В файле AUTOEXEC.BAT могут быть указаны такие параметры операционной обстановки, как имя конкретного рабочего каталога, имена альтернативных каталогов с различными вспомогательными файлами, режим работы дисплея и др. Можно даже указать имя первой исполняемой программы, с тем чтобы система автоматически "вошла" в эту программу, не требуя от пользователя каких-либо команд.
Пример 3. В файл AUTOEXEC.BAT заносится фрагмент, позволяющий запросить код, пользователя, а затем, проанализировав его, передать управление на одну из ветвей. Для этого используется прием, рассмотренный в разд.2.5:
echo off
path c:\;c:\exe
set ABC=c:\abc
prompt $p$g
timer /s
ver
remind
if exist mail type
mail command /c fkeys
:begin
echo Пользователи этой машины:
echo 1-Виктор 2-Олег 3-Валентин 4-остальные
ask-code "Ваш код?"
if errorlevel 4 goto work
if errorlevel 3 goto val
if errorlevel 2 goto oleg
if errorlevel 1 goto victor
goto begin
:val
cd \val
start
:victor
cd \victor
start
:oleg
cd \oleg
start
:work
cd \work
В данном примере в файл AUTOEXEC.BAT, во-первых, введена команда IF EXIST MAIL TYPE MAIL, которая обеспечивает вывод на экран файла MAIL, если он присутствует в корневом каталоге. В этом файле может содержаться общая "почта" для всех пользователей.
Во-вторых, после строки с меткой BEGIN стоит группа команд, которая выдает на экран с помощью ECHO сообщение о постоянныx пользователях машины и приписанных им кодах, затем запрашивает у пользователя его код посредством программы ASK-CODE, анализирует этот код с помощью команд IF ERRORLEVEL .. и передает управление на соответствующую метку.
Под каждой меткой происходит смена каталога для соответствующего пользователя и обращение к команде START. Команда START реализуется в подкаталоге данного пользователя соответствующим командным файлом, составленным по его усмотрению. В индивидуальных командных файлах START.BAT могут, в частности, вновь даваться команды PATH, SET, PROMPT с другими значениями аргументов. Если введен код 0, то происходит переход на метку BEGIN и все вышеописанные операции повторяются. При коде, равном или большем 4, происходит переход в общий рабочий каталог WORK. Такой каталог всегда полезно иметь на машине для выполнения временных работ или для временных пользователей.
Завершая рассуждения о порядке конфигурирования системы, необходимо описать еще возможности управления клавиатурой и дисплеем. Но поскольку соответствующие средства относятся не только к файлам автозапуска, но представляют общий интерес, их описание будет дано отдельно в гл.4.
РАЗМЕЩЕНИЕ ФАЙЛОВ ИА ЖЕСТКОМ ДИСКЕ. В заключение данного раздела рассмотрим в общих чертах, как следует размещать на жестком диске основные компоненты программного обеспечения. Это особенно важно иметь в виду при получении и подготовке к работе новой машины с жестким диском. В период, когда только начинается заполнение жесткого диска, достаточно легко спланировать общую схему размещения на нем файловой системы. По прошествии некоторого времени, когда на диске появляется уже довольно много информации, изменить общую схему его компоновки становится весьма непросто; для этого потребуется кропотливое и длительное переписывание информации на гибкие диски (для этого может понадобиться до 20 дискет), а затем обратное переписывание с дискет на жесткий диск.
Рекомендуется, чтобы в корневом каталоге находились лишь самые необходимые для запуска файлы - CONFIG.SYS, AUTOEXEC.BAT, COMMAND.COM, а также некоторые файлы с информационными сообщениями - такие как MAIL (для общей "почты"), REM.REM (для программы REMIND) и др. Кроме того, в корневом каталоге следует образовать основные подкаталоги для системных и прикладных программ, а также для отдельных пользователей. К таким подкаталогам, в частности, относятся:
SYS - для системных драйверов, запускаемых из CONFIG.SYS,
EXE - для исполняемых программ общего пользования,
ABC - для служебных файлов текстового процессора,
DOC - для текстовой документации по разным системам,
WORK - для временных работ и случайных пользователей,
GAMES - для игровых программ.
Общий вид корневого каталога, выдаваемый командой DIR, может быть при этом следующим:
CONFIG SYS 118 6-03-85 11:42p
AUTOEXEC BAT 994 7-20-85 12:59p
COMMAND COM 22042 8-14-84 8:00p
SYS <DIR> 5-19-85 2:19p
EXE <DIR> 2-25-83 4:44p
ABC <DIR> 5-29-85 9:47a
DOC <DIR> 4-30-85 9:43a
WORK <DIR> 1-20-84 4:44a
VICTOR <DIR> 9-11-84 12:00p
PAPERS <DIR> 4-30-85 9:43a
GAMES <DIR> 1-20-84 12:04p
SYMPHONY <DIR) 6-30-85 10:29p
TURBO <DIR> 6-30-85 11:20a
MAIL 732 11-30-85 12:20p
REM REM 468 10-09-85 4:30p
Все вновь появляющиеся подсистемы, трансляторы и просто отдельные программы следует по возможности размещать в подкаталогах следующих уровней, с тем чтобы на каждом уровне система оставалась обозримой. При этом, соответственно, легче осуществлять "сброс" содержимого отдельных подкаталогов на гибкие диски и перенос их на другие машины.
Удобная рабочая обстановка для пользователя ПЭВМ может быть создана в результате продуманного конфигурирования и начальной настройки системы. ДОС дает возможность при запуске машины автоматически задавать определенные начальные условия, которые влияют на дальнейшую работу пользователя. Осуществляется это с помощью содержимого двух особых файлов:
CONFIG.SYS
AUTOEXEC.BAT
Указанные файлы, если они имеются в корневом каталоге системного диска, обрабатываются при любом включении или перезапуске машины (напомним, что перезапуск осуществляется путем одновременного нажатия трех клавиш - Alt, Ctrl и Del или нажатием специальной кнопки, если она есть на машине). Рассмотрим, что может быть задано в указанных файлах.
ФАЙЛ КОНФИГУРАЦИИ CONFIG.SYS. С помощью файла конфигурации можно расширять операционную систему и изменять некоторые параметры, влияющие на работу внешних устройств. Одно из важнейших свойств ДОС состоит в возможности добавления новых внешних устройств и подключения специальных программ, обеспечивающих управление их работой.
Эти программы, называемые ДРАЙВЕРАМИ ВНЕШНИХ УСТРОЙСТВ, можно включить в систему, перечислив их в файле CONFIG.SYS. Помимо этого в файле конфигурации можно указать, сколько файлов в системе может быть открыто одновременно, задать количество буферов для обменов с внешними накопителями и некоторые другие параметры.
Пример 1. Рассмотрим типичный вид файла CONFIG.SYS:
break=on
files=12
device=c:\sys\alfa.sys
device=c:\sys\vdisk.sys 20
device=c:\sys\ansi.sys
device=c:\sys\mouse.sys
device=c:\sys\tosh.sys
В первой строке с помощью выражения BREAK=ON устанавливается режим, при котором пользователь будет иметь возможность прервать любую работающую программу при определенных условиях. Для этого дается команда прерывания, вызываемая одновременным нажатием управляющих клавиш Ctrl и Break. Работающая программа будет прервана, если эти клавиши оказываются нажатыми в момент выполнения операций ввода/вывода (включая печать на принтере, обмен с дисками и др.).
Во второй строке командой FILES=12 устанавливается, что количество одновременно открытых файлов может достигать 12, что довольно часто требуется в программах, интенсивно работающих с файловой системой (базах данных, картотеке и др.). По умолчанию же это число равно 8. Следует иметь в виду, что на каждый файл отводится по 48 байт оперативной памяти.
Пять следующих строк имеют одинаковый вид и содержат команды подключения к ДОС дополнительных внешних устройств. В правой части каждого выражения, после знака равенства, задается имя файла, являющегося драйвером нового устройства (такой файл содержит программу в машинном коде, создаваемую по особым соглашениям). Команд такого типа в CONFIG.SYS может быть сколько угодно. В данном примере все имена драйверов имеют префикс C:\SYS, указывающий каталог, в котором находятся соответствующие файлы. В рассматриваемом примере к ДОС подключаются следующие драйверы:
ALFA.SYS - драйвер, обеспечивающий прием с клавиатуры и выдачу на дисплей русских букв (или букв другого алфавита);
VDISK.SYS - драйвер виртуального диска, создаваемого в оперативной памяти;
ANSI.SYS - драйвер "расширенного" управления клавиатурой и дисплеем на основе программируемого набора кодов;
MOUSE.SYS - драйвер манипулятора "мышь";
TOSH.SYS - драйвер принтера типа Toshiba P1350 для печати русскими буквами.
Несколько замечаний по поводу указанных драйверов. Драйвер клавиатуры и дисплея для русских букв, может быть устроен по-разному. Вариант этого драйвера, разработанный в ВЦ АН СССР (автор - А.А.Чижов), обеспечивает переключение с английского алфавита на русский и обратно при нажатии пользователем выделенной клавиши. Чаще всего для этого используется клавиша CapsLock. Кроме того, имеется вариант этого драйвера, учитывающий установку в машине специального ПЗУ знакогенератора для русских букв, а также другие (нестандартные) разновидности адаптеров для цветных графических дисплеев.
Если в машине установлена достаточно большая оперативная память (например, больше 256 Кбайт), то часть ее можно занять под ВИРТУАЛЬНЫЙ ДИСК (их может быть несколько), который будет использоваться точно так же, как и обычный накопитель на магнитном диске (иногда он называется псевдодиском). В момент создания виртуальный диск не содержит никакой информации, а после выключения машины все, что туда было записано, пропадает. Тем не менее работать с ним в некоторых случаях очень удобно, потому что, во-первых, доступ к нему для записи и чтения файлов производится гораздо быстрее, чем к реальному гибкому или жесткому диску; во-вторых, наличие в системе дополнительного накопителя всегда создает определенные удобства для работы.
Накопитель, соответствующий псевдодиску, обозначается очередной буквой латинского алфавита. В системе без жесткого диска 1-й виртуальный диск получает имя C:, следующий - D: и т.д. В системе с жестким диском соответственно - D:, E: и т.д.
Некоторые драйверы виртуального диска требуют, чтобы объем диска был указан вместе с именем драйвера в файле CONFIG.SYS (именно этот вариант использован в примере). Драйвер, разработанный А.А.Чижовым, запрашивает объем псевдодиска у пользователя, который тем самым может регулировать количество выделяемой для диска оперативной памяти при начальной загрузке и инициализации машины. Это удобно, когда на машине используются системы с разными требованиями к оперативной памяти.
Расчет величины псевдодиска может быть приближенным. Для этого следует знать, что операционной системе нужно для работы примерно 60 Кбайт оперативной памяти, а прикладным системам - в среднем от 60 до 300 Кбайт (в отдельных случаях - свыше 300 Кбайт). Таким образом, суммарная оперативная память, необходимая для нормальной работы, должна иметь объем около 300 Кбайт [Во многих практических случаях эта цифра значительно меньше. (Примеч. ред.)]. Все, что остается сверх этого, может быть выделено под виртуальный диск. Следует также иметь в виду, что чем меньше объем диска, тем менее он полезен для работы.
Драйвер расширенного управления клавиатурой и дисплеем позволяет с помощью так называемых Esc-последовательностей (читается "Искейп-последовательностей") управлять режимом приема кодов с клавиатуры и работы дисплея. Ниже будет подробно рассмотрено, как это делается (разд.4.1, 4.2).
Драйвер манипулятора "мышь" проверяет, установлен ли в машине соответствующий адаптер (плата, которая принимает сигналы с манипулятора). Если адаптера нет, то на экран выдается соответствующее сообщение, но никаких фатальных последствий не возникает - можно продолжать работать, не используя "мышь".
Драйвер принтера TOSH.SYS обеспечивает графическое изображение русских букв на точечно-матричном принтере типа Toshiba P1350, который отличается высококачественной печатью. Подключение такого драйвера позволяет считать, будто бы машина снабжена новым внешним устройством с именем TOSH. Можно выдавать на него текстовые файлы, используя, например, команду COPY:
сору <имя печатаемого файла> tosh
Кроме указанных в примере команд, в файле конфигурирования можно установить нестандартное количество буферов для обмена информацией с дисковыми накопителями. Стандартное число равно 2, рекомендуемое для машин с жестким диском - не менее 3, а для некоторых прикладных систем, например, баз данных, картотек и т.п., полезно иметь до 20 буферов с целью ускорения обменов с дисками. Однако при этом следует иметь в виду, что на каждый буфер расходуется по 512 байт оперативной памяти. Задание числа буферов делается с помощью выражения вида:
BUFFERS=<количество буферов>
Еще одна возможность позволяет указывать имя файла, который будет играть роль нестандартного командного процессора (вместо стандартного файла COMMAND.COM). Такое указание осуществляется с помощью выражения вида:
SHELL=<имя файла с новым командным процессором>
Таким образом, с помощью файла конфигурирования пользователь может задать собственные, нестандартные возможности, которые действуют в течение текущего сеанса работы.
ФАЙЛ АВТОЗАПУСКА AUTOEXEC.BAT. С точки зрения содержащейся в файле AUTOEXEC.BAT информации он является обычным командным файлом. Однако он играет особую роль, потому что при начальном запуске и инициализации системы, вслед за обработкой CONFIG.SYS, операционная система пытается найти в корневом каталоге системного диска файл AUTOEXEC.BAT и начинает его обработку автоматически, без какого-либо побуждения со стороны пользователя. В файл AUTOEXEC.BAT удобно занести различные команды, которые осуществят всю необходимую настройку системы и автоматически "погрузят" пользователя в привычную операционную обстановку. Рассмотрим на примерах, что полезно внести в указанный файл, и попутно поясним действие некоторых, пока не рассматривавшихся команд (SET, PROMPT и др.), которые чаще всего употребляются именно в файле автозапуска.
Пример 2. Рассмотрим файл AUTOEXEC.BAT, который может быть установлен на машине, используемой преимущественно одним человеком (далее будет рассмотрен пример для случая, когда иа машине работают попеременно разные люди):
echo off
path с:\;с:\exe
prompt $p$g
set ABC=c:\abc
timer s
ver
remind
fkeys
Начиная со второй строки этого файла, стоят команды, обеспечивающие создание определенной операционной обстановки. Рассмотрим их по порядку.
1. Команда PATH устанавливает альтернативные маршруты для поиска исполняемых файлов. В примере один из маршрутов указывает на системный подкаталог с именем EXE. Кроме того, как возможное место размещения общеупотребительных программ указан корневой каталог диска C:.
Иногда "фирменные" поставки операционной системы типа MS-DOS/PC-DOS в качестве места хранения программ общего назначения используют каталог с именем BIN (или DOS и т.п.). В этом случае именно его нмя полезно указать в команде PATH.
Для пользователей, единолично владеющих машиной и часто обращающихся к какой-либо одной системе программирования или прикладной системе (например, Turbo Pascal), может оказаться полезным включение в число альтернативных маршрутов имени соответствующего "прикладного" подкаталога. Однако увлекаться этим не следует, таи как чем больше будет задано альтернативных каталогов, тем дольше будет происходить поиск файлов в них.
2. Команда PROMPT задает формат приглашения ДОС (разд.2.1). Задание формата приглашения осуществляется аргументом команды - строкой, состоящей из обычных текстовых и специальных управляющих символов. Управляющие символы снабжаются префиксом - знаком $, отличающим их от обычных символов. Наиболее часто используются следующие управляющие символы:
$р - выдача имени текущего (рабочего) каталога,
$t - выдача текущего времени,
$d - выдача текущей даты,
$g - выдача символа-разделителя >,
$b - выдача символа-разделителя |,
$h - стирание предыдущего символа,
$e - начало выдачи Esc-последовательности.
Другие символы используются реже. К ним относятся:
$n - выдача имени текущего накопителя,
$q - выдача символа-разделителя =,
$l - выдача символа-разделителя <,
$$ - выдача символа $,
_ - этот символ (подчерк) указывает на необходимость перехода на следующую строку.
В рассматриваемом примере строка "$p$g" в качестве параметра команды PROMPT обеспечивает выдачу приглашения, которое используется наиболее часто. Оно содержит имя текущего каталога и имеет, например, такой вид:
C:\WORK>
Если бы строка имела вид "$t $d $b $p$g", то в приглашение были бы включены довольно длинные сообщения о времени и дате:
13:55:34.05 Mon 11-25-85 | C:\WORK>
Чтобы подавить выдачу секунд и долей секунд в таком приглашении, можно применить управляющие символы стирания ($h). Их число должно соответствовать числу удаляемых символов. Параметр команды PROMPT приобретает в таком случае вид "$t$h$h$h$h$h$h $d $b $p$g", а приглашение станет несколько компактнее:
13:55 Mon 11-25-85 | C:\WORK>
Приглашение такого вида содержит полезную информацию, но когда оно начнет повторяться в нескольких строчках подряд, то будет выглядеть чересчур навязчиво и неоправданно загромождать экран.
Один из часто используемых приемов состоит в размещении даты и времени в верхнем углу экрана, для чего в параметр команды PROMPT вводятся Esc-последовательности, позволяющие выбирать место на экране для текущей позиции курсора [При этом используется особый драйвер (ANSI.SYS), обеспечивающий управление экраном с помощью Esc-последовательностей (см. разд.4.2). Разумеется, файл CONFIG.SYS должен содержать имя драйвера]. Например (пробелы между отдельными компонентами вставлены здесь только для удобства чтения):
$e[s $e[l;57H $t$h$h$h$h$h$h $d $e[u
Управляющий символ $e обозначает начало Esc-последовательности, обеспечивающей управление экраном. Первая часть, состоящая из символов $e[s, обеспечивает запоминание текущей позиции курсора. Вторая часть, состоящая из символов $e[1;57H, устанавливает курсор в 1-ю строку экрана на 57-ю позицию. Затем уже знакомая нам последовательность "$t$h$h$h$h$h$h $d" вызывает печать с этой позиции времени (с подавлением секунд) и даты. Наконец, заключительная часть управляющей строки при помощи Esc-последовательности $e[u восстанавливает позицию курсора. При этом время и дата будут печататься в правом верхнем углу экрана, а остальная часть приглашения будет располагаться на своем обычном месте.
Дальнейшее усовершенствование или, скорее, украшение может состоять в том, чтобы выдавать время и дату другим цветом, отличным от обычного цвета курсора. Подробнее об Esc-последовательностях и драйвере ANSI.SYS рассказано в разд.4.2.
Командой PROMPT можно выдавать и другие информационные параметры, например, имя пользователя, название организации и др.
3. Команда SET позволяет вводить в операционную обстановку системы различные имена с параметрами, которые затем могут использоваться прикладными программами [Как можно анализировать имена и параметры в операционной обстановке, описано в техническом руководстве по ДОС. (Примеч. ред.)]. Типичное использование таких параметров - задание имей каталогов, где должны находиться все рабочие файлы для данной прикладной системы (например, базы данных или текстового редактора).
В рассматриваемом примере команда SET вводит имя ABC с параметром C:\ABC, которое является указанием текстовому процессору, откуда следует брать вспомогательные файлы (шрифты, схему размещения окон на экране и др.). Подробнее эта программа будет описана в дальнейшем (разд.6.4).
Рассмотренные выше команды PATH и PROMPT также модифицируют обстановку, но в отношении фиксированных имен (а именно, устанавливают параметры для имей PATH и PROMPT). Команда SET позволяет делать то же самое для произвольных имен, и ее, таким образом, можно рассматривать как обобщение вышерассмотренных команд.
Команда SET может использоваться, например, для указания каталога, ориентированного на обслуживание конкретной прикладной системы. На разных машинах и для разных пользователей можно указывать различные каталоги, что дает определенную гибкость в использовании прикладной системы. Кроме того, рабочий каталог такой системы, как правило, неизвестен другим программам, что повышает надежность ее эксплуатации.
4. Команда TIMER не является встроенной. Это одна из утилит (служебных программ), служащая для активизации показаний и выдачи текущей даты и времени со встроенного таймера и календаря (если таковой имеется на машине). Разные модели машин могут использовать различные аппаратные средства для поддержки календаря и таймера, поэтому и программы считывания их показаний могут быть разными. Обращение к программе GETCLOCK обеспечивает считывание первого показания календаря н таймера после включения машины (пока машина выключена, работа календаря и таймера поддерживается встроенной аккумуляторной батарейкой).
Чтобы произвести установку даты и времени на встроенном календаре и таймере, используется другая программа - SETCLOCK (ее имя также может варьироваться в зависимости от типа установленного таймера). Обращаться к этой программе приходится в редких случаях - при начальной установке новой машины, при смене часового пояса, при переходе с зимнего времени на летнее и наоборот.
Если в машине нет аккумуляторной батарейки для поддержки работы календаря и таймера, пока машина выключена, то утилита TIMER бесполезна; в этом случае для установки даты и времени в файле AUTOEXEC.BAT вместо этой команды должны фигурировать две другие (встроенные) команды: date и time.
5. Команда VER в шестой строчке файла AUTOEXEC.BAT является встроенной в ДОС командой. Ее задача очень проста - выдать на экран сообщение о номере версии операционной системы. Это необходимо, поскольку некоторые прикладные программы учитывают особенности той или иной версии ДОС и пользователю полезно знать, какая именно версия установлена в данный момент на машине.
6. Команда REMIND относится к числу служебных; она реализуется программой, разработанной в ВЦ АН СССР (автор - О.А.Гончаров). Ее функция состоит в анализе специального файла REM.REM, в котором с определенными датами или диапазонами дат связываются текстовые сообщения. Если при включении машины программа REMIND выясняет, что текущая дата совпадает с одной из дат, указанных в REM.REM, то на экран выдается соответствующее дате сообщение. Таким образом, через файл AUTOEXEC.BAT можно автоматически выдавать НАПОМИНАЮЩИЕ СООБЩЕНИЯ, связанные с некоторыми датами (это могут быть, к примеру, дни рождений, важные встречи и др.).
7. Последняя команда в файле автозапуска - FKEYS - осуществляет вызов другого командного файла FKEYS.BAT, в котором с помощью Esc-последовательностей происходит переопределение некоторых функциональных клавиш для предоставления пользователю возможности быстрого набора некоторых часто используемых команд.
Следует помнить, что прямой вызов командного файла FKEYS.BAT из AUTOEXEC.BAT не позволяет вернуться назад в файл автозапуска. Возврат в AUTOEXEC.BAT можно, как говорилось выше, обеспечить вызовом командного процессора. В этом случае обращение к FKEYS.BAT должно выглядеть так:
command /c fkeys
Таким образом, в рассмотренном примере файла автозапуска указаны команды, с помощью которых создается определенная операционная обстановка, способствующая удобной дальнейшей работе пользователя. Не все из рассмотренных команд необходимы в равной степени; без команд REMIND или FKEYS можно, разумеется, обойтись. С другой стороны, без команд PATH, SET и PROMPT работать было бы очень неудобно. Весьма часто в файл автозапуска вставляются также команды управления экраном, с тем чтобы перед началом работы сделать цветные заставки, выдать приветственные сообщения и др. Применяется также команда MODE для установки параметров экрана, принтера н коммуникационного канала, а также команда ASSIGN для переназначения логических имен накопителей.
ФАЙЛ АВТОЗАПУСКА ДЛЯ ПЭВМ С НЕСКОЛЬКИМИ ПОЛЬЗОВАТЕЛЯМИ. Часто система конфигурируется таким образом, чтобы ею могли пользоваться несколько человек (компьютер попеременно является "персональным" для каждого из них). Идентификатор, или код пользователя, запрашиваемый во время инициализации, позволяет системе погрузить человека в привычную для него операционную обстановку. В файле AUTOEXEC.BAT могут быть указаны такие параметры операционной обстановки, как имя конкретного рабочего каталога, имена альтернативных каталогов с различными вспомогательными файлами, режим работы дисплея и др. Можно даже указать имя первой исполняемой программы, с тем чтобы система автоматически "вошла" в эту программу, не требуя от пользователя каких-либо команд.
Пример 3. В файл AUTOEXEC.BAT заносится фрагмент, позволяющий запросить код, пользователя, а затем, проанализировав его, передать управление на одну из ветвей. Для этого используется прием, рассмотренный в разд.2.5:
echo off
path c:\;c:\exe
set ABC=c:\abc
prompt $p$g
timer /s
ver
remind
if exist mail type
mail command /c fkeys
:begin
echo Пользователи этой машины:
echo 1-Виктор 2-Олег 3-Валентин 4-остальные
ask-code "Ваш код?"
if errorlevel 4 goto work
if errorlevel 3 goto val
if errorlevel 2 goto oleg
if errorlevel 1 goto victor
goto begin
:val
cd \val
start
:victor
cd \victor
start
:oleg
cd \oleg
start
:work
cd \work
В данном примере в файл AUTOEXEC.BAT, во-первых, введена команда IF EXIST MAIL TYPE MAIL, которая обеспечивает вывод на экран файла MAIL, если он присутствует в корневом каталоге. В этом файле может содержаться общая "почта" для всех пользователей.
Во-вторых, после строки с меткой BEGIN стоит группа команд, которая выдает на экран с помощью ECHO сообщение о постоянныx пользователях машины и приписанных им кодах, затем запрашивает у пользователя его код посредством программы ASK-CODE, анализирует этот код с помощью команд IF ERRORLEVEL .. и передает управление на соответствующую метку.
Под каждой меткой происходит смена каталога для соответствующего пользователя и обращение к команде START. Команда START реализуется в подкаталоге данного пользователя соответствующим командным файлом, составленным по его усмотрению. В индивидуальных командных файлах START.BAT могут, в частности, вновь даваться команды PATH, SET, PROMPT с другими значениями аргументов. Если введен код 0, то происходит переход на метку BEGIN и все вышеописанные операции повторяются. При коде, равном или большем 4, происходит переход в общий рабочий каталог WORK. Такой каталог всегда полезно иметь на машине для выполнения временных работ или для временных пользователей.
Завершая рассуждения о порядке конфигурирования системы, необходимо описать еще возможности управления клавиатурой и дисплеем. Но поскольку соответствующие средства относятся не только к файлам автозапуска, но представляют общий интерес, их описание будет дано отдельно в гл.4.
РАЗМЕЩЕНИЕ ФАЙЛОВ ИА ЖЕСТКОМ ДИСКЕ. В заключение данного раздела рассмотрим в общих чертах, как следует размещать на жестком диске основные компоненты программного обеспечения. Это особенно важно иметь в виду при получении и подготовке к работе новой машины с жестким диском. В период, когда только начинается заполнение жесткого диска, достаточно легко спланировать общую схему размещения на нем файловой системы. По прошествии некоторого времени, когда на диске появляется уже довольно много информации, изменить общую схему его компоновки становится весьма непросто; для этого потребуется кропотливое и длительное переписывание информации на гибкие диски (для этого может понадобиться до 20 дискет), а затем обратное переписывание с дискет на жесткий диск.
Рекомендуется, чтобы в корневом каталоге находились лишь самые необходимые для запуска файлы - CONFIG.SYS, AUTOEXEC.BAT, COMMAND.COM, а также некоторые файлы с информационными сообщениями - такие как MAIL (для общей "почты"), REM.REM (для программы REMIND) и др. Кроме того, в корневом каталоге следует образовать основные подкаталоги для системных и прикладных программ, а также для отдельных пользователей. К таким подкаталогам, в частности, относятся:
SYS - для системных драйверов, запускаемых из CONFIG.SYS,
EXE - для исполняемых программ общего пользования,
ABC - для служебных файлов текстового процессора,
DOC - для текстовой документации по разным системам,
WORK - для временных работ и случайных пользователей,
GAMES - для игровых программ.
Общий вид корневого каталога, выдаваемый командой DIR, может быть при этом следующим:
CONFIG SYS 118 6-03-85 11:42p
AUTOEXEC BAT 994 7-20-85 12:59p
COMMAND COM 22042 8-14-84 8:00p
SYS <DIR> 5-19-85 2:19p
EXE <DIR> 2-25-83 4:44p
ABC <DIR> 5-29-85 9:47a
DOC <DIR> 4-30-85 9:43a
WORK <DIR> 1-20-84 4:44a
VICTOR <DIR> 9-11-84 12:00p
PAPERS <DIR> 4-30-85 9:43a
GAMES <DIR> 1-20-84 12:04p
SYMPHONY <DIR) 6-30-85 10:29p
TURBO <DIR> 6-30-85 11:20a
MAIL 732 11-30-85 12:20p
REM REM 468 10-09-85 4:30p
Все вновь появляющиеся подсистемы, трансляторы и просто отдельные программы следует по возможности размещать в подкаталогах следующих уровней, с тем чтобы на каждом уровне система оставалась обозримой. При этом, соответственно, легче осуществлять "сброс" содержимого отдельных подкаталогов на гибкие диски и перенос их на другие машины.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Брябрин. Программное обеспечение персональных ЭВМ. 1990
2.8. ПОВТОРЕНЬЕ - МАТЬ УЧЕНЬЯ
В данном разделе будет приведена сводка команд ДОС, включая встроенные команды и те, которые реализуются системными утилитами, поставляемыми в комплекте с ДОС. Не все команды, приводимые ниже в таблицах, были рассмотрены в предыдущих разделах. Некоторые из новых команд будут кратко пояснены.
Следует обратить внимание, что в табл.2.1 указаны и такие команды, которые поддерживаются только версией ДОС 3.0 и более поздними,- эти команды снабжены пометкой (3.0). Встроенные команды версии ДОС 2.0 никак не помечены, а команды, реализуемые внешними утилитами, отмечены знаком *. Отдельно приведен список полезных утилит, разработанных в ВЦ АН СССР. Напомним, что все утилиты следует размещать в общедоступных директориях, на которые будет указывать PATH.
Таблица 2.1. Сводка команд ДОС
Рассмотрим действие некоторых команд из табл.2.1 (полное описание перечисленных команд можно найти в руководстве по ДОС).
Команда COMMAND. Эта команда обеспечивает вызов новой копии, командного процессора. Вызов может происходить в трех режимах, на которые указывает специальный "флажок" - параметр, следующий за именем команды:
command /c <..> - вызов с автоматическим возвратом,
command /p - вызов без возврата к "старой" копии,
command - вызов с возвратом по команде EXIT.
В первом варианте вместо конструкции <..> может стоять любая команда ДОС. Например, возможно такое обращение:
command /с demo
DEMO может быть именем другого командного файла, выход из которого осуществляется командой EXIT. Подобное обращение к командному файлу FKEYS рассматривалось в предыдущем параграфе. Конструкция <..> может отсутствовать. Флажок /C означает, что новая копия командного процессора по окончании своей работы освобождает память, как и любая другая программа.
Флажок /P означает прямо противоположное - новая копия остается "резидентной" в памяти и удалить ее никак невозможно. Отсутствие параметров соответствует промежуточному режиму - новая копия COMMAND.COM вызывается и размещается в памяти, наследуя при этом всю операционную обстановку "старой" копии, но ее можно убрать, исполнив команду EXIT. Например, вызвав 2-ю копию C0MMAND.COM, можно изменить или дополнить операционную обстановку (командами PATH, SET и др.), поработать в ней, а затем вернуться в прежнюю обстановку, дав команду EXIT.
КОМАНДЫ BREAK, ASSIGN, VOL, LABEL. Команда BREAK может фигурировать не только в файле CONFIG.SYS, как было показано ранее, но применяется и в командных файлах или может просто вводиться пользователем с терминала, обеспечивая включение и отключение возможности прерывания прикладных программ с помощью комбинации клавиш Ctrl+Break.
Команда ASSIGN x=y позволяет переустанавливать логические имена накопителей, связывая друг с другом пары имен. Например, после команды:
assign a=c
все обращения к накопителю с именем A: ДОС заменяет на обращения к накопителю C:. Пар вида x=y в одной команде может быть несколько [Команду ASSIGN следует применять с осторожностью; основное ее назначение - заставить прикладную программу, работающую с фиксированным накопителем (например, A:), обратиться к другому физическому накопителю. В других целях применять ее не рекомендуется. (Примеч. ред.)]. Команда ASSIGN без параметров восстанавливает исходные имена накопителей.
Команды VOL и LABEL предназначены для выдачи на дисплей и (пере)установки метки диска соответственно. Обычно метка диска вводится при его форматировании, если задан флажок /V. Используя команду LABEL, это можно сделать и позднее (эта команда имеется только в версии ДОС 3.0).
КОМАНДА FORMAT. Команда FORMAT осуществляет, как указывалось ранее, начальную разметку или ФОРМАТИРОВАНИЕ дисков. Данная команда применима и к гибким, и к жестким дискам, причем перед применением ее к жесткому диску необходимо приготовить его с помощью сервисной программы FDISK (эта операция часто делается на заводе-изготовителе - еще до поставки машины потребителю). При форматировании происходит разрушение всей ранее записанной на диске или дискете информации!
В обращении к команде FORMAT можно указывать различные параметры. Первым параметром является имя накопителя, на котором установлен форматируемый диск. Пример простого обращения:
format a:
При таком обращении сначала выдается сообщение пользователю О необходимости установки на накопитель A: форматируемого диска. После этого он должен нажать клавишу "Исполнение", и программа форматирования начинает работать. Гибкие диски форматируются 30-40 секунд, форматирование жесткого диска может занять до 10 минут. По окончании форматирования выдается сообщение, в котором указывается объем диска, объем физически непригодных секторов и количество байтов, предоставляемых для работы.
Другие параметры - указатели режима форматирования задаются через разделитель /. Большинство из иих относится к форматированию гибких дисков. Возможны следующие указатели:
/V - указывает на необходимость задания метки диска, которая вводится пользователем по окончании форматирования;
/S - указывает на необходимость переноса на диск операционной
системы (3-х файлов: BIO.COM, DOS.COM и C0MMAND.COM см. разд.3.3);
/B - указывает на необходимость резервирования на диске места для файлов операционной системы, но без их фактического переноса;
/1 - указывает на необходимость одностороннего форматирования (по умолчанию форматируются обе стороны дискеты);
/8 - указывает на необходимость форматирования по 8 секторов на каждой дорожке диска (по умолчанию происходит 9-секторное форматирование);
/4 - указывает на необходимость форматирования с высокой плотностью.
Двусторонние гибкие диски, сформатированные по 9 секторов на дорожку (track), дают при отсутствии дефектов 360 Кбайт свободной памяти. При форматировании по 8 секторов на дорожку это число уменьшается до 320 Кбайт. Для односторонних гибких дисков эти числа равны соответственно 180 и 160 Кбайтам. При форматировании с высокой плотностью можно получить объем гибкого диска до 1.2 Мбайт, но для этого необходим специальный накопитель и дискеты повышенного качества.
Часть отформатированного пространства может быть занята под операционную систему (от 40 до 60 Кбайт, в зависимости от версии ДОС), часть может оказаться "выброшеиной" из списка доступного пространства из-за дефектов на дисках, обнаруженных при форматировании.
Потребность в односторонних дисках или в меньшей плотности записи информации (по 8 секторов на дорожку) возникает в связи с отсутствием в конкретных моделях машин соответствующих накопителей.
Необходимо помнить, что служебная программа FORMAT, реализующая данную команду, ИНДИВИДУАЛЬНА для каждой версии ДОС.
КОМАНДЫ SYS, VER, FIND, SORT. Команда SYS позволяет перенести с текущего системного диска на другой диск (указанный в качестве аргумента команды) 2 основных системных файла ДОС BIO.COM и D0S.COM (но не COMMAND.COM). При этом указанные файлы становятся "скрытыми" - они не показываются командой DIR, но об их присутствии на диске сообщает команда CHKDSK. Следует иметь в виду, что ДОС может быть перенесена командой SYS не на всякий диск, а только на такой, который был отформатирован когда-то командой FORMAT с флажком /S или /B, или на пустой отформатированный диск. Напомним, что команда форматирования с флажком /S делает ту же операцию, что и SYS, и, кроме того, добавляет на диск третий файл ДОС - COMMAND.COM.
Перенесенная система совпадает с той, которая в этот момент установлена на системном диске. Номер текущей версии можно получить, дав команду VER.
Команды FIND н SORT обычно используются как фильтры, которые воспринимают из файлов, из других программ или со стандартного устройства ввода текстовые или числовые данные, выделяют из них определенные подмножества и выдают дальше - на входы других программ, в файлы или на стандартное устройство вывода (в частности, на дисплей). Механизм такой "цепочечной" передачи данных от программы к программе будет подробнее рассматриваться в гл.4. Здесь мы приведем два простых примера:
find "накопитель" Lesson.0 Lesson.1 Lesson.7
dir | find "-84" | sort | prn
В первом примере команда FIND используется просто для поиска и выдачи строк, в которых имеется слово "накопитель"; поиск производится последовательно в трех указанных файлах - Lesson.1, Lesson.2, Lesson.7.
Во втором примере срабатывает цепочка нз трех команд - DIR, FIND и SORT, которые передают друг другу результаты своей работы. Фильтр FIND выбирает из текста, выданного командой DIR, строки, содержащие фрагмент "-84", фильтр SORT упорядочивает их по алфавиту и направляет результат на устройство вывода с именем PRN, т.е. на принтер. В итоге на принтере печатается отсортированный по алфавиту список файлов данного каталога с датой "-84". Этот список можно направить в любой файл, указав его имя вместо PRN.
КОМАНДЫ MORE, ATTRIB. Команда MORE также работает как фильтр. Ей на вход нужно дать файл, который она затем порциями по 24 строки выдает на стандартное устройство вывода (в частности, на экран дисплея, или на другое устройство, или в файл). Пример обращения к MORE для выдачи порциями на экран длинного текстового файла:
more <long.txt
Команда ATTRIB, поддерживаемая только в версии ДОС 3.0, обеспечивает установку и снятие защиты по записи на указанные файлы. Из защищенных файлов информация может только читаться. Писать в эти файлы и удалить их невозможно обычными командами, пока не будет изменен их атрибут защиты, задаваемый специальным параметром R. Примеры обращений к данной команде:
attrib +r lesson.* - установка защиты,
attrib -r lesson.* - снятие защиты.
СЛУЖЕБНЫЕ ПРОГРАММЫ ДЛЯ РАБОТЫ С ДИСКАМИ. Группа служебных программ BACKUP, RESTORE, RECOVER, COMP, DISKCOMP, DISKCOPY позволяет осуществлять сохранение и последующее восстановление содержимого каталогов с жестких дисков на гибкие, восстановление файлов, "потерянных" из-за ошибок на носителях, сравнение файлов и копирование дискет. Все эти операции используются относительно редко и здесь подробно не рассматриваются.
ВСПОМОГАТЕЛЬНЫЕ ПОДСИСТЕМЫ. Еще одну группу служебных программ представляют относительно большие подсистемы - текстовый редактор EDLIN, отладчик машинных программ DEBUG, загрузчик объектных программ LINK и преобразователь программ типа EXE в тип COM - EXE2BIN. По каждой из этих подсистем имеются свои руководства.
КОМАНДЫ SHARE И GRAFTABL. Команда SHARE, поддерживаемая лишь версией ДОС 3.0, служит для загрузки подсистемы, которая обеспечивает коллективное использование файлов, в частности, при работе в локальной сети. На некоторые файлы могут "навешиваться замки", которые можно "открывать" лишь при определенных условиях. Тем самым обеспечивается возможность защиты от несанкционированного доступа к содержимому файлов.
Команда GRAFTABL, поддерживаемая версией ДОС 3.0, специальным образом загружает в ДОС расширение таблицы ASCII-кодов (коды 128-255), с тем чтобы они оказались доступны прикладным программам, использующим графические режимы цветного дисплея (см. объяснения по поводу текстовых и графических режимов в гл.4). Без такой загрузки при попытке выводить символы с кодами от 128 до 255 на экран будут выводиться неопределенные изображения. При работе в текстовых режимах загрузка указанной части таблицы не требуется, потому что изображения указанных символов будут браться из ПЗУ адаптера графического дисплея. Команду GRAFTABL достаточно применить лишь один раз в течение сеанса, после чего она остается в памяти резидентной (не удаляемой).
В данном разделе будет приведена сводка команд ДОС, включая встроенные команды и те, которые реализуются системными утилитами, поставляемыми в комплекте с ДОС. Не все команды, приводимые ниже в таблицах, были рассмотрены в предыдущих разделах. Некоторые из новых команд будут кратко пояснены.
Следует обратить внимание, что в табл.2.1 указаны и такие команды, которые поддерживаются только версией ДОС 3.0 и более поздними,- эти команды снабжены пометкой (3.0). Встроенные команды версии ДОС 2.0 никак не помечены, а команды, реализуемые внешними утилитами, отмечены знаком *. Отдельно приведен список полезных утилит, разработанных в ВЦ АН СССР. Напомним, что все утилиты следует размещать в общедоступных директориях, на которые будет указывать PATH.
Таблица 2.1. Сводка команд ДОС
Рассмотрим действие некоторых команд из табл.2.1 (полное описание перечисленных команд можно найти в руководстве по ДОС).
Команда COMMAND. Эта команда обеспечивает вызов новой копии, командного процессора. Вызов может происходить в трех режимах, на которые указывает специальный "флажок" - параметр, следующий за именем команды:
command /c <..> - вызов с автоматическим возвратом,
command /p - вызов без возврата к "старой" копии,
command - вызов с возвратом по команде EXIT.
В первом варианте вместо конструкции <..> может стоять любая команда ДОС. Например, возможно такое обращение:
command /с demo
DEMO может быть именем другого командного файла, выход из которого осуществляется командой EXIT. Подобное обращение к командному файлу FKEYS рассматривалось в предыдущем параграфе. Конструкция <..> может отсутствовать. Флажок /C означает, что новая копия командного процессора по окончании своей работы освобождает память, как и любая другая программа.
Флажок /P означает прямо противоположное - новая копия остается "резидентной" в памяти и удалить ее никак невозможно. Отсутствие параметров соответствует промежуточному режиму - новая копия COMMAND.COM вызывается и размещается в памяти, наследуя при этом всю операционную обстановку "старой" копии, но ее можно убрать, исполнив команду EXIT. Например, вызвав 2-ю копию C0MMAND.COM, можно изменить или дополнить операционную обстановку (командами PATH, SET и др.), поработать в ней, а затем вернуться в прежнюю обстановку, дав команду EXIT.
КОМАНДЫ BREAK, ASSIGN, VOL, LABEL. Команда BREAK может фигурировать не только в файле CONFIG.SYS, как было показано ранее, но применяется и в командных файлах или может просто вводиться пользователем с терминала, обеспечивая включение и отключение возможности прерывания прикладных программ с помощью комбинации клавиш Ctrl+Break.
Команда ASSIGN x=y позволяет переустанавливать логические имена накопителей, связывая друг с другом пары имен. Например, после команды:
assign a=c
все обращения к накопителю с именем A: ДОС заменяет на обращения к накопителю C:. Пар вида x=y в одной команде может быть несколько [Команду ASSIGN следует применять с осторожностью; основное ее назначение - заставить прикладную программу, работающую с фиксированным накопителем (например, A:), обратиться к другому физическому накопителю. В других целях применять ее не рекомендуется. (Примеч. ред.)]. Команда ASSIGN без параметров восстанавливает исходные имена накопителей.
Команды VOL и LABEL предназначены для выдачи на дисплей и (пере)установки метки диска соответственно. Обычно метка диска вводится при его форматировании, если задан флажок /V. Используя команду LABEL, это можно сделать и позднее (эта команда имеется только в версии ДОС 3.0).
КОМАНДА FORMAT. Команда FORMAT осуществляет, как указывалось ранее, начальную разметку или ФОРМАТИРОВАНИЕ дисков. Данная команда применима и к гибким, и к жестким дискам, причем перед применением ее к жесткому диску необходимо приготовить его с помощью сервисной программы FDISK (эта операция часто делается на заводе-изготовителе - еще до поставки машины потребителю). При форматировании происходит разрушение всей ранее записанной на диске или дискете информации!
В обращении к команде FORMAT можно указывать различные параметры. Первым параметром является имя накопителя, на котором установлен форматируемый диск. Пример простого обращения:
format a:
При таком обращении сначала выдается сообщение пользователю О необходимости установки на накопитель A: форматируемого диска. После этого он должен нажать клавишу "Исполнение", и программа форматирования начинает работать. Гибкие диски форматируются 30-40 секунд, форматирование жесткого диска может занять до 10 минут. По окончании форматирования выдается сообщение, в котором указывается объем диска, объем физически непригодных секторов и количество байтов, предоставляемых для работы.
Другие параметры - указатели режима форматирования задаются через разделитель /. Большинство из иих относится к форматированию гибких дисков. Возможны следующие указатели:
/V - указывает на необходимость задания метки диска, которая вводится пользователем по окончании форматирования;
/S - указывает на необходимость переноса на диск операционной
системы (3-х файлов: BIO.COM, DOS.COM и C0MMAND.COM см. разд.3.3);
/B - указывает на необходимость резервирования на диске места для файлов операционной системы, но без их фактического переноса;
/1 - указывает на необходимость одностороннего форматирования (по умолчанию форматируются обе стороны дискеты);
/8 - указывает на необходимость форматирования по 8 секторов на каждой дорожке диска (по умолчанию происходит 9-секторное форматирование);
/4 - указывает на необходимость форматирования с высокой плотностью.
Двусторонние гибкие диски, сформатированные по 9 секторов на дорожку (track), дают при отсутствии дефектов 360 Кбайт свободной памяти. При форматировании по 8 секторов на дорожку это число уменьшается до 320 Кбайт. Для односторонних гибких дисков эти числа равны соответственно 180 и 160 Кбайтам. При форматировании с высокой плотностью можно получить объем гибкого диска до 1.2 Мбайт, но для этого необходим специальный накопитель и дискеты повышенного качества.
Часть отформатированного пространства может быть занята под операционную систему (от 40 до 60 Кбайт, в зависимости от версии ДОС), часть может оказаться "выброшеиной" из списка доступного пространства из-за дефектов на дисках, обнаруженных при форматировании.
Потребность в односторонних дисках или в меньшей плотности записи информации (по 8 секторов на дорожку) возникает в связи с отсутствием в конкретных моделях машин соответствующих накопителей.
Необходимо помнить, что служебная программа FORMAT, реализующая данную команду, ИНДИВИДУАЛЬНА для каждой версии ДОС.
КОМАНДЫ SYS, VER, FIND, SORT. Команда SYS позволяет перенести с текущего системного диска на другой диск (указанный в качестве аргумента команды) 2 основных системных файла ДОС BIO.COM и D0S.COM (но не COMMAND.COM). При этом указанные файлы становятся "скрытыми" - они не показываются командой DIR, но об их присутствии на диске сообщает команда CHKDSK. Следует иметь в виду, что ДОС может быть перенесена командой SYS не на всякий диск, а только на такой, который был отформатирован когда-то командой FORMAT с флажком /S или /B, или на пустой отформатированный диск. Напомним, что команда форматирования с флажком /S делает ту же операцию, что и SYS, и, кроме того, добавляет на диск третий файл ДОС - COMMAND.COM.
Перенесенная система совпадает с той, которая в этот момент установлена на системном диске. Номер текущей версии можно получить, дав команду VER.
Команды FIND н SORT обычно используются как фильтры, которые воспринимают из файлов, из других программ или со стандартного устройства ввода текстовые или числовые данные, выделяют из них определенные подмножества и выдают дальше - на входы других программ, в файлы или на стандартное устройство вывода (в частности, на дисплей). Механизм такой "цепочечной" передачи данных от программы к программе будет подробнее рассматриваться в гл.4. Здесь мы приведем два простых примера:
find "накопитель" Lesson.0 Lesson.1 Lesson.7
dir | find "-84" | sort | prn
В первом примере команда FIND используется просто для поиска и выдачи строк, в которых имеется слово "накопитель"; поиск производится последовательно в трех указанных файлах - Lesson.1, Lesson.2, Lesson.7.
Во втором примере срабатывает цепочка нз трех команд - DIR, FIND и SORT, которые передают друг другу результаты своей работы. Фильтр FIND выбирает из текста, выданного командой DIR, строки, содержащие фрагмент "-84", фильтр SORT упорядочивает их по алфавиту и направляет результат на устройство вывода с именем PRN, т.е. на принтер. В итоге на принтере печатается отсортированный по алфавиту список файлов данного каталога с датой "-84". Этот список можно направить в любой файл, указав его имя вместо PRN.
КОМАНДЫ MORE, ATTRIB. Команда MORE также работает как фильтр. Ей на вход нужно дать файл, который она затем порциями по 24 строки выдает на стандартное устройство вывода (в частности, на экран дисплея, или на другое устройство, или в файл). Пример обращения к MORE для выдачи порциями на экран длинного текстового файла:
more <long.txt
Команда ATTRIB, поддерживаемая только в версии ДОС 3.0, обеспечивает установку и снятие защиты по записи на указанные файлы. Из защищенных файлов информация может только читаться. Писать в эти файлы и удалить их невозможно обычными командами, пока не будет изменен их атрибут защиты, задаваемый специальным параметром R. Примеры обращений к данной команде:
attrib +r lesson.* - установка защиты,
attrib -r lesson.* - снятие защиты.
СЛУЖЕБНЫЕ ПРОГРАММЫ ДЛЯ РАБОТЫ С ДИСКАМИ. Группа служебных программ BACKUP, RESTORE, RECOVER, COMP, DISKCOMP, DISKCOPY позволяет осуществлять сохранение и последующее восстановление содержимого каталогов с жестких дисков на гибкие, восстановление файлов, "потерянных" из-за ошибок на носителях, сравнение файлов и копирование дискет. Все эти операции используются относительно редко и здесь подробно не рассматриваются.
ВСПОМОГАТЕЛЬНЫЕ ПОДСИСТЕМЫ. Еще одну группу служебных программ представляют относительно большие подсистемы - текстовый редактор EDLIN, отладчик машинных программ DEBUG, загрузчик объектных программ LINK и преобразователь программ типа EXE в тип COM - EXE2BIN. По каждой из этих подсистем имеются свои руководства.
КОМАНДЫ SHARE И GRAFTABL. Команда SHARE, поддерживаемая лишь версией ДОС 3.0, служит для загрузки подсистемы, которая обеспечивает коллективное использование файлов, в частности, при работе в локальной сети. На некоторые файлы могут "навешиваться замки", которые можно "открывать" лишь при определенных условиях. Тем самым обеспечивается возможность защиты от несанкционированного доступа к содержимому файлов.
Команда GRAFTABL, поддерживаемая версией ДОС 3.0, специальным образом загружает в ДОС расширение таблицы ASCII-кодов (коды 128-255), с тем чтобы они оказались доступны прикладным программам, использующим графические режимы цветного дисплея (см. объяснения по поводу текстовых и графических режимов в гл.4). Без такой загрузки при попытке выводить символы с кодами от 128 до 255 на экран будут выводиться неопределенные изображения. При работе в текстовых режимах загрузка указанной части таблицы не требуется, потому что изображения указанных символов будут браться из ПЗУ адаптера графического дисплея. Команду GRAFTABL достаточно применить лишь один раз в течение сеанса, после чего она остается в памяти резидентной (не удаляемой).
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Брябрин. Программное обеспечение персональных ЭВМ. 1990
ГЛАВА 3. СТРУКТУРА И ФУНКЦИИ ДОС
В данной главе будут более подробно рассмотрены основные компоненты ДОС, их взаимодействие и основные функции. Будут приведены таблицы прерываний, с помощью которых можно обращаться к ДОС из прикладных программ с целью получения доступа к встроенным функциям.
3.1. ОСНОВНЫЕ МОДУЛИ ДОС
Важнейшей отличительной особенностью ДОС, как и других операционных систем, является модульность. Это свойство, во-первых, позволяет изолировать друг от друга отдельные части столь большой и сложной программы, какой является ДОС, облегчая ее разработку, во-вторых, позволяет собрать в каждом модуле определенные логически связанные группы функций. Если возникает необходимость в замене или расширении такой группы функций, то это можно сделать путем замены или модификации лишь одного модуля, а не всей системы.
Итак, ДОС состоит из следующих основных модулей:
- базовая система ввода/вывода (BIOS),
- блок начальной загрузки (Boot Record),
- модуль расширения базовой системы ввода/вывода (__BIO.COM или IO.SYS),
- модуль обработки прерываний (__DOS.COM или MSDOS.SYS),
- командный процессор (C0MMAND.COM),
- утилиты ДОС (F0RMAT.COM, CHKDSK.COM и другие программы).
В скобках приводятся английские названия соответствующих модулей для систем типа MS-DOS/PC-DOS, используемых па различных совместимых компьютерах типа IBM-PC. В начале имен файлов __BIO.COM и __DOS.COM обычно употребляются буквы, обозначающие "фирменную" принадлежность данной системы.
Каждый из указанных модулей выполняет определенную часть функций, возложенных на ДОС. Места постоянного размещения этих модулей различны (рис.3.1). Так, базовая система ввода/вывода находится не на дисках, как все остальные модули, а в постоянном запоминающем устройстве (ПЗУ), установленном внутри системного блока. Следовательно, этот модуль является одновременно и частью аппаратуры, и частью ДОС. Все остальные модули находятся на дисках.
Рис.3.1. Состав дисковой операционной системы
Блок начальной загрузки ДОС, или загрузчик, всегда записан в первом секторе системного диска. Модули расширения базовой системы ввода/вывода и обработки прерываний хранятся в двух специальных файлах на системном диске, места размещения которых зафиксированы и известны загрузчику. Командный процессор - это обычный файл, который может занимать любое место на системном диске. Наконец, утилиты ДОС - это самые обыкновенные программы, которые могут находиться в любых файлах на любых дисках. Доступ к ним обеспечивается стандартным образом через файловую систему ДОС. Подобная неоднородная структура ДОС, на первый взгляд, может показаться громоздкой, эклектичной, но это, наоборот, придает операционной системе гибкость и расширяемость.
Довольно часто, и вполне обоснованно, к ДОС относят только те модули, которые размещаются на системном диске, т.е.:
- блок начальной загрузки,
- модуль расширения базовой системы ввода/вывода,
- модуль обработки прерываний,
- командный процессор.
Однако в данной главе мы будем рассматривать все части, поскольку они сильно взаимосвязаны.
3.2. БАЗОВАЯ СИСТЕМА ВВОДА/ВЫВОДА
В архитектуре ПЭВМ базовая система ввода/вывода (БСВВ) занимает особое место. Как указывалось выше, ее можно рассматривать, с одной стороны, как составную часть аппаратных средств; с другой стороны, БСВВ является, по существу, одним из программных модулей ДОС. (Здесь уместно заметить, что при разработке ПЭВМ БСВВ является объектом внимания как "аппаратчиков", так и "программистов"; но когда машина предъявляется на испытания, ответственность за БСВВ обычно несут разработчики аппаратных средств).
Что же представляет собой модуль БСВВ? Входящие в него программы и данные обеспечивают выполнение ряда важных функций по поддержке жизнеспособности ПЭВМ.
1. Одна из первых функций БСВВ - АВТОМАТИЧЕСКОЕ ТЕСТИРОВАНИЕ основных аппаратных компонентов при включении машины. Процесс тестирования или самотестирования, как его иногда называют, занимает после первого включения машины заметное время - от нескольких секунд до нескольких минут.
Наибольшая часть этого времени тратится на тестирование оперативной памяти; чем больше микросхем памяти установлено в машине, тем дольше идет процесс тестирования. Если в процессе тестирования памяти и других аппаратных компонентов обнаруживаются ошибки, БСВВ выдает на экран соответствующие сообщения (обычно в виде условного кода ошибки) и извещает об этом пользователя звуковым сигналом. Дальнейшая работа машины при этом прекращается, и пользователю нужно принимать меры к устранению выявленной ошибки.
Иногда причиной ошибки может послужить простое нарушение контакта (например, при сильном изгибе кабеля, присоединяющего клавиатуру, или при частичном выходе из гнезда одной из вставляемых внутрь системного блока печатных плат). Такие ошибки устраняются легко, но некоторые неисправности требуют замены соответствующих узлов.
2. Вторая важная функция БСВВ, вступающая в действие по окончании тестирования,- ВЫЗОВ БЛОКА НАЧАЛЬНОЙ ЗАГРУЗКИ ДОС. Поскольку ДОС - большая программа, состоящая из нескольких модулей, загрузка ее в память проходит в две ступени; сначала БСВВ загружает с системного диска в память специальный блок начальной загрузки, а затем уже передает на него управление, и тот, в свою очередь, осуществляет загрузку других модулей ДОС.
При такой двухступенчатой организации загрузки с БСВВ снимается забота о поиске и настройке различных модулей ДОС. БСВВ может ничего не зиать об их структуре и местоположении. Единственное условие нормальной работы БСВВ - это обнаружение на фиксированном месте системного диска блока начальной загрузки. Правда, роль системного диска в ПЭВМ может играть гибкий или жесткий магнитный диск. Поэтому БСВВ сначала делает попытку осуществить чтение с гибкого диска. Если гибкий диск установлен, то именно он и считается системным. Если же никакой диск не установлен в НГМД, то БСВВ обращается к жесткому диску, присваивая ему статус системного. Если же ни на гибком, нн на жестком диске БСВВ не находит блока начальной загрузки, то управление передается на встроенный интерпретатор языка бейсик, записанный в ПЗУ.
Увидев сообщение о загрузке бейсика вместо ДОС, пользователь (если он хочет все-таки загрузить ДОС) должен перезапустить машину, но перед этим нужно вставить в НГМД системный диск, на котором имеется ДОС.
3. Третья важная функция БСВВ - ОБСЛУЖИВАНИЕ системных вызовов, или ПРЕРЫВАНИЙ. Системные вызовы вырабатываются программными или аппаратными средствами с целью выполнения различных операций, состав которых еще будет рассматриваться подробнее в следующих разделах. Для реализаций системных вызовов используется механизм прерываний. Суть этого механизма заключается в том, что текущая работа машины, в чем бы она ни состояла, может быть приостановлена на короткое время одним из сигналов, который указывает на возникновение ситуации, требующей немедленной обработки.
Прерывания можно разделить на три группы: аппаратные, логические и программные.
Источники АППАРАТНЫХ прерываний - падение напряжения питания, нажатие клавиши на клавиатуре, приход очередного импульса от счетчика времени, возникновение специальных сигналов от накопителей на гибких или жестких дисках и др.
ЛОГИЧЕСКИЕ, или процессорные, прерывания возникают при различных нестандартных ситуациях в работе основного микропроцессора - делении на нуль, переполнении регистров, появлении "точки останова" и др.
ПРОГРАММНЫЕ прерывания - самая обширная категория. Вырабатываются они, когда одна программа хочет получить определенный сервис со стороны другой программы, причем этот сервис обычно связан о работой аппаратных средств.
Механизм прерываний в деталях будет рассмотрен в дальнейшем, сейчас же важно уяснить, что каждое прерывание имеет уникальный номер и с ним может быть связана определенная подпрограмма, призванная обслуживать возникшую ситуацию. Сама обслуживающая подпрограмма, вообще говоря, тоже может быть приостановлена другим прерыванием; но чаще всего на период работы подпрограммы, обслуживающей некоторое прерывание, другие прерывания "маскируются", т.е. не обслуживаются немедленно, а становятся в очередь.
Итак, в аппаратных компонентах машины, в самой ДОС и в прикладных программах могут вырабатываться прерывания, которые нужно обслуживать. На БСВВ возлагается задача обслуживания прерываний нижнего уровня - тех, которые требуют непосредственного управления аппаратными компонентами. Этим прерываниям присвоены номера с 0 по 31 (шестнадцатеричные номера 0-1F). Другие прерывания - с номерами 32-63 (шестнадцатеричные номера 20-3F) - относятся к более высокому уровню, и их обслуживание возлагается на другие модули ДОС.
В табл. 3.1 приведен общий перечень прерываний, обслуживаемых БСВВ. Шестнадцатеричные номера прерываний приведены для удобства читателей, потому что в реальных программах на языке ассемблера и в технической литературе по ДОС прерывания идентифицируются именно шестнадцатеричными кодами. Из анализа табл.3.1 видно, что обслуживаемые БСВВ прерывания соответствуют базовым операциям по управлению внешними устройствами - дисплеем, клавиатурой, НГМД, принтером, коммуникационными каналами. При этом подпрограммы, входящие в БСВВ, выполняют операции нижнего уровня. Так, например, обслуживание НГМД включает возможность начальной установки магнитных головок, проверки текущего статуса устройства, прямого чтения и записи заданных секторов диска, верификации прочитанных или записанных данных и, наконец, форматирования (начальной разметки) дисков.
Таблица 3.1. Прерывания, обслуживаемые БСВВ
Как будет показано в дальнейшем, функции ДОС верхнего уровня обеспечивают по отношению к НГМД более "интеллектуальные" действия - такие как создание, чтение, запись, переименование и удаление файлов, поиск файлов в каталогах и др. При этом в соответствующем модуле ДОС производятся обращения по прерываниям к БСВВ. В то же время при необходимости такие же обращения к БСВВ могут осуществлять и обычные прикладные программы, минуя верхний уровень ДОС.
Некоторые из указанных, в табл.3.1 прерываний обеспечивают доступ к нескольким взаимосвязанным функциям. Каждая функция идентифицируется своим шестнадцатеричным номером (кодом) и обеспечивает выполнение некоторой частной операции.
Так, например, прерывание 19 (управление НГМД и НМД) открывает доступ к 18 функциям с кодами 0-17:
0 - начальная установка (сброс диска),
1 - выдача текущего статуса диска,
2 - чтение группы (блока) секторов с одной дорожки,
3 - запись группы секторов на одну дорожку,
4 - верификация после чтения или записи,
5 - форматирование дорожки (запись меток секторов),
8 - выдача текущих параметров накопителя,
9 - инициализация таблицы параметров фиксированного диска,
A - "длинное" чтение,
B - "длинная" запись,
C - поиск нужной дорожки,
D - начальная установка диска,
10 - проверка готовности диска,
11 - калибровка диска,
14 - диагностика контроллера,
15 - выдача типа накопителя,
16 - изменение статуса диска,
17 - установка типа накопителя.
Точно так же прерывание 16 (управление дисплеем) обеспечивает доступ к 24 функциям, дающим возможность детальной работы с монохромными и цветными дисплеями. Для управления клавиатурой через прерывание 22 в БСВВ имеется 10 функций. Управление принтером через прерывание 23 включает 3 сервисных функции, а управление коммуникационным адаптером через прерывание 20 обслуживается четырьмя функциями.
Таким образом, БСВВ является своеобразной программной оболочкой вокруг аппаратных средств ПЭВМ, предоставляя возможность другим программам, в том числе самой ДОС, обращаться к аппаратным компонентам через механизм прерываний.
В следующей главе будут рассмотрены детали работы отдельных подпрограмм, реализующих обслуживание прерываний, и будет показано, как именно программируется обращение по прерываниям к БСВВ или к ДОС.
3.3. БЛОК НАЧАЛЬНОЙ ЗАГРУЗКИ
Блок начальной загрузки (БНЗ), или просто загрузчик,- это небольшая программа, единственная функция которой заключается в считывании с дисков в оперативную память двух других частей ДОС - модуля расширения базовой системы ввода/вывода и модуля обработки прерываний. Сам БНЗ размещается на системном диске всегда на одном и том же месте - на 0-й стороне, в 1-м секторе дорожки 00. Длина БНЗ - 512 байт, т.е. он занимает всего один сектор на диске, и уже поэтому содержащаяся в нем программа не может быть чрезмерно сложной.
Работа БНЗ состоит в следующем (рис.3.2). Он должен просмотреть каталог системного диска и убедиться, что первые два файла как раз и являются модулями ДОС. В ДОС эти файлы имеют специальные имена: __BIO.COM и __DOS.COM. Для упрощения БНЗ они размещаются на системном диске всегда первыми - один за другим в последовательных секторах. При этом оба файла снабжаются специальным атрибутом, который делает их "невидимыми": при выводе каталога диска на экран дисплея или на принтер имена указанных системных файлов не выводятся, хотя они и присутствуют в каталоге. Обеспечивается такое размещение при форматировании системных дисков и переносе на них операционной системы с других носителей.
Рис. 3.2. Загрузка и инициализация ДОС
Если БНЗ не обнаруживает указанных файлов на первых двух позициях каталога диска, то данный диск считается "несистемным", о чем на экран выдается соответствующее сообщение. Пользователь в этом случае может вставить в НГМД "правильный" системный диск и, нажав любую клавишу, подтолкнуть БНЗ к повторению поиска ДОС на вновь установленном диске (точка "B" на схеме рис.3.2). Здесь следует заметить, что машину можно "перезапустить" двумя другими способами. Один из них, очевидный, заключается в выключении и повторном включении питания всей машины ("холодный перезапуск"). Однако этот "грубый" способ не очень-то полезен для электронных компонентов системного блока, чувствительных к броскам напряжения питания. Другой способ перезапуска ("теплый") - с помощью специальной комбинации клавиш (Ctrl+Alt+Del на машине IBM PC) или с помощью специальной кнопки перезапуска, если она есть на машине. В этом случае загрузка системы начинается с БСВВ (точка "A" на схеме рис.3.2); при этом тестирования памяти и других аппаратных компонентов не производится, а сразу начинается поиск и загрузка в память БНЗ.
Возвращаясь к описанию БНЗ, заметим, что он всегда заносится на диск при его начальной разметке (форматировании) независимо, от того, записываются ли на диск также и "системные" файлы с другими модулями ДОС. Что касается 2-х других упомянутых системных файлов, то они появляются на диске лишь при особом режиме форматирования. Занести их на уже заполненный диск (с непустым каталогом файлов) нельзя, так как начальные позиции каталога и начальные сектора диска будут заняты другими файлами. Если же диск размечен обычным образом, но еще пуст, т.е. не содержит никаких файлов, то можно поместить на него системные файлы, применив специальную команду ДОС - SYS (см. разд.2.8 ).
3.4. МОДУЛЬ РАСШИРЕНИЯ БАЗОВОЙ СИСТЕМЫ ВВОДА/ВЫВОДА
Базовая система ввода/вывода, находящаяся в постоянном запоминающем устройстве (БСВВ/ПЗУ), является инвариантной по отношению к операционной системе, устанавливаемой на данной машине. В этом смысле БСВВ/ПЗУ является общей и неизменяемой частью всех возможных операционных систем для данной модели ПЭВМ. Изменение БСВВ/ПЗУ - нетривиальная задача, поскольку она очень тесно связана с особенностями аппаратуры конкретной модели ПЭВМ.
Расширение БСВВ с помощью дополнительного модуля ДОС придает гибкость операционной системе, позволяя управлять с ее помощью таким набором аппаратных средств ПЭВМ, который наиболее точно соответствовал бы замыслу разработчиков операционной системы. Этот модуль относительно легко может модифицироваться разработчиками с учетом нужд конкретной версии ДОС.
Использование механизма прерываний позволяет, с одной стороны, очень просто и изящно "перекрывать" в модуле расширения БСВВ функции, обслуживаемые БСВВ/ПЗУ. С другой стороны, появляется возможность включения в БСВВ дополнительных подпрограмм, обслуживающих новые внешние устройства (драйверов). Драйверы разрабатываются не только для новых внешних устройств, но и для тех, которые стандартно входят в состав аппаратуры,- в тех случаях, когда обмен информацией с ними должен происходить иначе, чем принято в стандартной версии ДОС. Это придает системе большую гибкость и возможность адаптации ее под любые требования пользователей.
О необходимости подключения новых драйверов внешних устройств, а также об изменении других параметров ДОС уведомляется через файл конфигурации CONFIG.SYS. Этот текстовый файл, если он присутствует на системном диске, обрабатывается модулем расширения БСВВ, который осуществляет необходимую подстройку прерываний и других параметров ДОС в соответствии с заданными в CONFIG.SYS командами конфигурирования. Команды конфигурирования (разд.2.7) могут указывать:
1. Дополнительные драйверы, которые необходимо подключить к ДОС. Примеры таких команд уже рассматривались во 2-й главе. Простой пример:
DEVICE=MOUSE.SYS
Команд такого типа в CONFIG.SYS может быть несколько.
2. Режим, при котором пользователь будет иметь возможность прервать любую работающую программу, дав команду BREAK (нажав на клавиатуре комбинацию клавиш Ctrl+Break). В файле CONFIG.SYS установка указанного режима отображается выражением:
BREAK=ON
3. Количество файлов, которые могут быть открыты одновременно (по умолчанию это число равно 8 ). Пример команды конфигурирования, устанавливающей число одновременно открытых файлов:
FILES=12
4. Количество буферов для обмена информацией с дисковыми накопителями (стандартное число буферов - 2). Пример соответствующей команды:
BUFFERS=8
5. Имя файла, который будет играть роль нестандартного командного процессора (вместо стандартного файла COMMAND.COM). Пример команды, задающей новый командный процессор с именем START, СОМ:
SHELL=START.COM
Таким образом, с помощью команд конфигурирования, заданных в файле CONFIG.SYS, пользователь может задать собственные, нестандартные возможности, которые вводятся в ДОС на время текущего сеанса (до очередного перезапуска машины).
Кроме рассмотренных выше функций, на модуль расширения БСВВ возлагается еще одна задача - завершение загрузки ДОС в оперативную память (рис.3.2). С этой целью модуль расширения сначала передает управление на загруженный к этому моменту в ОЗУ модуль обработки прерываний ДОС, в котором устанавливаются внутренние рабочие таблицы, инициируются векторы прерываний с номерами 32-39 и производится подготовка к загрузке командного процессора, находящегося пока на системном диске. После этого управление возвращается в модуль расширения БСВВ, который производит загрузку командного процессора с диска в ОЗУ и передает ему управление. На этом работа модуля расширения БСВВ при запуске ДОС завершается.
В данной главе будут более подробно рассмотрены основные компоненты ДОС, их взаимодействие и основные функции. Будут приведены таблицы прерываний, с помощью которых можно обращаться к ДОС из прикладных программ с целью получения доступа к встроенным функциям.
3.1. ОСНОВНЫЕ МОДУЛИ ДОС
Важнейшей отличительной особенностью ДОС, как и других операционных систем, является модульность. Это свойство, во-первых, позволяет изолировать друг от друга отдельные части столь большой и сложной программы, какой является ДОС, облегчая ее разработку, во-вторых, позволяет собрать в каждом модуле определенные логически связанные группы функций. Если возникает необходимость в замене или расширении такой группы функций, то это можно сделать путем замены или модификации лишь одного модуля, а не всей системы.
Итак, ДОС состоит из следующих основных модулей:
- базовая система ввода/вывода (BIOS),
- блок начальной загрузки (Boot Record),
- модуль расширения базовой системы ввода/вывода (__BIO.COM или IO.SYS),
- модуль обработки прерываний (__DOS.COM или MSDOS.SYS),
- командный процессор (C0MMAND.COM),
- утилиты ДОС (F0RMAT.COM, CHKDSK.COM и другие программы).
В скобках приводятся английские названия соответствующих модулей для систем типа MS-DOS/PC-DOS, используемых па различных совместимых компьютерах типа IBM-PC. В начале имен файлов __BIO.COM и __DOS.COM обычно употребляются буквы, обозначающие "фирменную" принадлежность данной системы.
Каждый из указанных модулей выполняет определенную часть функций, возложенных на ДОС. Места постоянного размещения этих модулей различны (рис.3.1). Так, базовая система ввода/вывода находится не на дисках, как все остальные модули, а в постоянном запоминающем устройстве (ПЗУ), установленном внутри системного блока. Следовательно, этот модуль является одновременно и частью аппаратуры, и частью ДОС. Все остальные модули находятся на дисках.
Рис.3.1. Состав дисковой операционной системы
Блок начальной загрузки ДОС, или загрузчик, всегда записан в первом секторе системного диска. Модули расширения базовой системы ввода/вывода и обработки прерываний хранятся в двух специальных файлах на системном диске, места размещения которых зафиксированы и известны загрузчику. Командный процессор - это обычный файл, который может занимать любое место на системном диске. Наконец, утилиты ДОС - это самые обыкновенные программы, которые могут находиться в любых файлах на любых дисках. Доступ к ним обеспечивается стандартным образом через файловую систему ДОС. Подобная неоднородная структура ДОС, на первый взгляд, может показаться громоздкой, эклектичной, но это, наоборот, придает операционной системе гибкость и расширяемость.
Довольно часто, и вполне обоснованно, к ДОС относят только те модули, которые размещаются на системном диске, т.е.:
- блок начальной загрузки,
- модуль расширения базовой системы ввода/вывода,
- модуль обработки прерываний,
- командный процессор.
Однако в данной главе мы будем рассматривать все части, поскольку они сильно взаимосвязаны.
3.2. БАЗОВАЯ СИСТЕМА ВВОДА/ВЫВОДА
В архитектуре ПЭВМ базовая система ввода/вывода (БСВВ) занимает особое место. Как указывалось выше, ее можно рассматривать, с одной стороны, как составную часть аппаратных средств; с другой стороны, БСВВ является, по существу, одним из программных модулей ДОС. (Здесь уместно заметить, что при разработке ПЭВМ БСВВ является объектом внимания как "аппаратчиков", так и "программистов"; но когда машина предъявляется на испытания, ответственность за БСВВ обычно несут разработчики аппаратных средств).
Что же представляет собой модуль БСВВ? Входящие в него программы и данные обеспечивают выполнение ряда важных функций по поддержке жизнеспособности ПЭВМ.
1. Одна из первых функций БСВВ - АВТОМАТИЧЕСКОЕ ТЕСТИРОВАНИЕ основных аппаратных компонентов при включении машины. Процесс тестирования или самотестирования, как его иногда называют, занимает после первого включения машины заметное время - от нескольких секунд до нескольких минут.
Наибольшая часть этого времени тратится на тестирование оперативной памяти; чем больше микросхем памяти установлено в машине, тем дольше идет процесс тестирования. Если в процессе тестирования памяти и других аппаратных компонентов обнаруживаются ошибки, БСВВ выдает на экран соответствующие сообщения (обычно в виде условного кода ошибки) и извещает об этом пользователя звуковым сигналом. Дальнейшая работа машины при этом прекращается, и пользователю нужно принимать меры к устранению выявленной ошибки.
Иногда причиной ошибки может послужить простое нарушение контакта (например, при сильном изгибе кабеля, присоединяющего клавиатуру, или при частичном выходе из гнезда одной из вставляемых внутрь системного блока печатных плат). Такие ошибки устраняются легко, но некоторые неисправности требуют замены соответствующих узлов.
2. Вторая важная функция БСВВ, вступающая в действие по окончании тестирования,- ВЫЗОВ БЛОКА НАЧАЛЬНОЙ ЗАГРУЗКИ ДОС. Поскольку ДОС - большая программа, состоящая из нескольких модулей, загрузка ее в память проходит в две ступени; сначала БСВВ загружает с системного диска в память специальный блок начальной загрузки, а затем уже передает на него управление, и тот, в свою очередь, осуществляет загрузку других модулей ДОС.
При такой двухступенчатой организации загрузки с БСВВ снимается забота о поиске и настройке различных модулей ДОС. БСВВ может ничего не зиать об их структуре и местоположении. Единственное условие нормальной работы БСВВ - это обнаружение на фиксированном месте системного диска блока начальной загрузки. Правда, роль системного диска в ПЭВМ может играть гибкий или жесткий магнитный диск. Поэтому БСВВ сначала делает попытку осуществить чтение с гибкого диска. Если гибкий диск установлен, то именно он и считается системным. Если же никакой диск не установлен в НГМД, то БСВВ обращается к жесткому диску, присваивая ему статус системного. Если же ни на гибком, нн на жестком диске БСВВ не находит блока начальной загрузки, то управление передается на встроенный интерпретатор языка бейсик, записанный в ПЗУ.
Увидев сообщение о загрузке бейсика вместо ДОС, пользователь (если он хочет все-таки загрузить ДОС) должен перезапустить машину, но перед этим нужно вставить в НГМД системный диск, на котором имеется ДОС.
3. Третья важная функция БСВВ - ОБСЛУЖИВАНИЕ системных вызовов, или ПРЕРЫВАНИЙ. Системные вызовы вырабатываются программными или аппаратными средствами с целью выполнения различных операций, состав которых еще будет рассматриваться подробнее в следующих разделах. Для реализаций системных вызовов используется механизм прерываний. Суть этого механизма заключается в том, что текущая работа машины, в чем бы она ни состояла, может быть приостановлена на короткое время одним из сигналов, который указывает на возникновение ситуации, требующей немедленной обработки.
Прерывания можно разделить на три группы: аппаратные, логические и программные.
Источники АППАРАТНЫХ прерываний - падение напряжения питания, нажатие клавиши на клавиатуре, приход очередного импульса от счетчика времени, возникновение специальных сигналов от накопителей на гибких или жестких дисках и др.
ЛОГИЧЕСКИЕ, или процессорные, прерывания возникают при различных нестандартных ситуациях в работе основного микропроцессора - делении на нуль, переполнении регистров, появлении "точки останова" и др.
ПРОГРАММНЫЕ прерывания - самая обширная категория. Вырабатываются они, когда одна программа хочет получить определенный сервис со стороны другой программы, причем этот сервис обычно связан о работой аппаратных средств.
Механизм прерываний в деталях будет рассмотрен в дальнейшем, сейчас же важно уяснить, что каждое прерывание имеет уникальный номер и с ним может быть связана определенная подпрограмма, призванная обслуживать возникшую ситуацию. Сама обслуживающая подпрограмма, вообще говоря, тоже может быть приостановлена другим прерыванием; но чаще всего на период работы подпрограммы, обслуживающей некоторое прерывание, другие прерывания "маскируются", т.е. не обслуживаются немедленно, а становятся в очередь.
Итак, в аппаратных компонентах машины, в самой ДОС и в прикладных программах могут вырабатываться прерывания, которые нужно обслуживать. На БСВВ возлагается задача обслуживания прерываний нижнего уровня - тех, которые требуют непосредственного управления аппаратными компонентами. Этим прерываниям присвоены номера с 0 по 31 (шестнадцатеричные номера 0-1F). Другие прерывания - с номерами 32-63 (шестнадцатеричные номера 20-3F) - относятся к более высокому уровню, и их обслуживание возлагается на другие модули ДОС.
В табл. 3.1 приведен общий перечень прерываний, обслуживаемых БСВВ. Шестнадцатеричные номера прерываний приведены для удобства читателей, потому что в реальных программах на языке ассемблера и в технической литературе по ДОС прерывания идентифицируются именно шестнадцатеричными кодами. Из анализа табл.3.1 видно, что обслуживаемые БСВВ прерывания соответствуют базовым операциям по управлению внешними устройствами - дисплеем, клавиатурой, НГМД, принтером, коммуникационными каналами. При этом подпрограммы, входящие в БСВВ, выполняют операции нижнего уровня. Так, например, обслуживание НГМД включает возможность начальной установки магнитных головок, проверки текущего статуса устройства, прямого чтения и записи заданных секторов диска, верификации прочитанных или записанных данных и, наконец, форматирования (начальной разметки) дисков.
Таблица 3.1. Прерывания, обслуживаемые БСВВ
Как будет показано в дальнейшем, функции ДОС верхнего уровня обеспечивают по отношению к НГМД более "интеллектуальные" действия - такие как создание, чтение, запись, переименование и удаление файлов, поиск файлов в каталогах и др. При этом в соответствующем модуле ДОС производятся обращения по прерываниям к БСВВ. В то же время при необходимости такие же обращения к БСВВ могут осуществлять и обычные прикладные программы, минуя верхний уровень ДОС.
Некоторые из указанных, в табл.3.1 прерываний обеспечивают доступ к нескольким взаимосвязанным функциям. Каждая функция идентифицируется своим шестнадцатеричным номером (кодом) и обеспечивает выполнение некоторой частной операции.
Так, например, прерывание 19 (управление НГМД и НМД) открывает доступ к 18 функциям с кодами 0-17:
0 - начальная установка (сброс диска),
1 - выдача текущего статуса диска,
2 - чтение группы (блока) секторов с одной дорожки,
3 - запись группы секторов на одну дорожку,
4 - верификация после чтения или записи,
5 - форматирование дорожки (запись меток секторов),
8 - выдача текущих параметров накопителя,
9 - инициализация таблицы параметров фиксированного диска,
A - "длинное" чтение,
B - "длинная" запись,
C - поиск нужной дорожки,
D - начальная установка диска,
10 - проверка готовности диска,
11 - калибровка диска,
14 - диагностика контроллера,
15 - выдача типа накопителя,
16 - изменение статуса диска,
17 - установка типа накопителя.
Точно так же прерывание 16 (управление дисплеем) обеспечивает доступ к 24 функциям, дающим возможность детальной работы с монохромными и цветными дисплеями. Для управления клавиатурой через прерывание 22 в БСВВ имеется 10 функций. Управление принтером через прерывание 23 включает 3 сервисных функции, а управление коммуникационным адаптером через прерывание 20 обслуживается четырьмя функциями.
Таким образом, БСВВ является своеобразной программной оболочкой вокруг аппаратных средств ПЭВМ, предоставляя возможность другим программам, в том числе самой ДОС, обращаться к аппаратным компонентам через механизм прерываний.
В следующей главе будут рассмотрены детали работы отдельных подпрограмм, реализующих обслуживание прерываний, и будет показано, как именно программируется обращение по прерываниям к БСВВ или к ДОС.
3.3. БЛОК НАЧАЛЬНОЙ ЗАГРУЗКИ
Блок начальной загрузки (БНЗ), или просто загрузчик,- это небольшая программа, единственная функция которой заключается в считывании с дисков в оперативную память двух других частей ДОС - модуля расширения базовой системы ввода/вывода и модуля обработки прерываний. Сам БНЗ размещается на системном диске всегда на одном и том же месте - на 0-й стороне, в 1-м секторе дорожки 00. Длина БНЗ - 512 байт, т.е. он занимает всего один сектор на диске, и уже поэтому содержащаяся в нем программа не может быть чрезмерно сложной.
Работа БНЗ состоит в следующем (рис.3.2). Он должен просмотреть каталог системного диска и убедиться, что первые два файла как раз и являются модулями ДОС. В ДОС эти файлы имеют специальные имена: __BIO.COM и __DOS.COM. Для упрощения БНЗ они размещаются на системном диске всегда первыми - один за другим в последовательных секторах. При этом оба файла снабжаются специальным атрибутом, который делает их "невидимыми": при выводе каталога диска на экран дисплея или на принтер имена указанных системных файлов не выводятся, хотя они и присутствуют в каталоге. Обеспечивается такое размещение при форматировании системных дисков и переносе на них операционной системы с других носителей.
Рис. 3.2. Загрузка и инициализация ДОС
Если БНЗ не обнаруживает указанных файлов на первых двух позициях каталога диска, то данный диск считается "несистемным", о чем на экран выдается соответствующее сообщение. Пользователь в этом случае может вставить в НГМД "правильный" системный диск и, нажав любую клавишу, подтолкнуть БНЗ к повторению поиска ДОС на вновь установленном диске (точка "B" на схеме рис.3.2). Здесь следует заметить, что машину можно "перезапустить" двумя другими способами. Один из них, очевидный, заключается в выключении и повторном включении питания всей машины ("холодный перезапуск"). Однако этот "грубый" способ не очень-то полезен для электронных компонентов системного блока, чувствительных к броскам напряжения питания. Другой способ перезапуска ("теплый") - с помощью специальной комбинации клавиш (Ctrl+Alt+Del на машине IBM PC) или с помощью специальной кнопки перезапуска, если она есть на машине. В этом случае загрузка системы начинается с БСВВ (точка "A" на схеме рис.3.2); при этом тестирования памяти и других аппаратных компонентов не производится, а сразу начинается поиск и загрузка в память БНЗ.
Возвращаясь к описанию БНЗ, заметим, что он всегда заносится на диск при его начальной разметке (форматировании) независимо, от того, записываются ли на диск также и "системные" файлы с другими модулями ДОС. Что касается 2-х других упомянутых системных файлов, то они появляются на диске лишь при особом режиме форматирования. Занести их на уже заполненный диск (с непустым каталогом файлов) нельзя, так как начальные позиции каталога и начальные сектора диска будут заняты другими файлами. Если же диск размечен обычным образом, но еще пуст, т.е. не содержит никаких файлов, то можно поместить на него системные файлы, применив специальную команду ДОС - SYS (см. разд.2.8 ).
3.4. МОДУЛЬ РАСШИРЕНИЯ БАЗОВОЙ СИСТЕМЫ ВВОДА/ВЫВОДА
Базовая система ввода/вывода, находящаяся в постоянном запоминающем устройстве (БСВВ/ПЗУ), является инвариантной по отношению к операционной системе, устанавливаемой на данной машине. В этом смысле БСВВ/ПЗУ является общей и неизменяемой частью всех возможных операционных систем для данной модели ПЭВМ. Изменение БСВВ/ПЗУ - нетривиальная задача, поскольку она очень тесно связана с особенностями аппаратуры конкретной модели ПЭВМ.
Расширение БСВВ с помощью дополнительного модуля ДОС придает гибкость операционной системе, позволяя управлять с ее помощью таким набором аппаратных средств ПЭВМ, который наиболее точно соответствовал бы замыслу разработчиков операционной системы. Этот модуль относительно легко может модифицироваться разработчиками с учетом нужд конкретной версии ДОС.
Использование механизма прерываний позволяет, с одной стороны, очень просто и изящно "перекрывать" в модуле расширения БСВВ функции, обслуживаемые БСВВ/ПЗУ. С другой стороны, появляется возможность включения в БСВВ дополнительных подпрограмм, обслуживающих новые внешние устройства (драйверов). Драйверы разрабатываются не только для новых внешних устройств, но и для тех, которые стандартно входят в состав аппаратуры,- в тех случаях, когда обмен информацией с ними должен происходить иначе, чем принято в стандартной версии ДОС. Это придает системе большую гибкость и возможность адаптации ее под любые требования пользователей.
О необходимости подключения новых драйверов внешних устройств, а также об изменении других параметров ДОС уведомляется через файл конфигурации CONFIG.SYS. Этот текстовый файл, если он присутствует на системном диске, обрабатывается модулем расширения БСВВ, который осуществляет необходимую подстройку прерываний и других параметров ДОС в соответствии с заданными в CONFIG.SYS командами конфигурирования. Команды конфигурирования (разд.2.7) могут указывать:
1. Дополнительные драйверы, которые необходимо подключить к ДОС. Примеры таких команд уже рассматривались во 2-й главе. Простой пример:
DEVICE=MOUSE.SYS
Команд такого типа в CONFIG.SYS может быть несколько.
2. Режим, при котором пользователь будет иметь возможность прервать любую работающую программу, дав команду BREAK (нажав на клавиатуре комбинацию клавиш Ctrl+Break). В файле CONFIG.SYS установка указанного режима отображается выражением:
BREAK=ON
3. Количество файлов, которые могут быть открыты одновременно (по умолчанию это число равно 8 ). Пример команды конфигурирования, устанавливающей число одновременно открытых файлов:
FILES=12
4. Количество буферов для обмена информацией с дисковыми накопителями (стандартное число буферов - 2). Пример соответствующей команды:
BUFFERS=8
5. Имя файла, который будет играть роль нестандартного командного процессора (вместо стандартного файла COMMAND.COM). Пример команды, задающей новый командный процессор с именем START, СОМ:
SHELL=START.COM
Таким образом, с помощью команд конфигурирования, заданных в файле CONFIG.SYS, пользователь может задать собственные, нестандартные возможности, которые вводятся в ДОС на время текущего сеанса (до очередного перезапуска машины).
Кроме рассмотренных выше функций, на модуль расширения БСВВ возлагается еще одна задача - завершение загрузки ДОС в оперативную память (рис.3.2). С этой целью модуль расширения сначала передает управление на загруженный к этому моменту в ОЗУ модуль обработки прерываний ДОС, в котором устанавливаются внутренние рабочие таблицы, инициируются векторы прерываний с номерами 32-39 и производится подготовка к загрузке командного процессора, находящегося пока на системном диске. После этого управление возвращается в модуль расширения БСВВ, который производит загрузку командного процессора с диска в ОЗУ и передает ему управление. На этом работа модуля расширения БСВВ при запуске ДОС завершается.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Брябрин. Программное обеспечение персональных ЭВМ. 1990
3.5. МОДУЛЬ ОБРАБОТКИ ПРЕРЫВАНИЙ ДОС
В отличие от описанного выше модуля расширения БСВВ, имеющего дело, как и БСВВ/ПЗУ, с прерываниями нижнего уровня, рассматриваемый в этом параграфе модуль обработки прерываний ДОС образует верхний уровень системы, с которыми взаимодействует большинство прикладных программ (почему этот модуль ДОС и называют основным).
Компонентами данного модуля являются подпрограммы, обеспечивающие работу файловой системы, устройств ввода/вывода (клавиатура, дисплей, принтер, коммуникации), обслуживание некоторых специальных ситуаций, связанных с завершением программ, их искусственным прерыванием и обработкой ошибок. Некоторые из этих подпрограмм довольно велики по объему.
В табл.3.2 приведен общий перечень прерываний ДОС. При этом следует отметить, что за одним из этих прерываний (десятичный номер 33, шестнадцатеричный - 21) скрывается множество функций, или операций ДОС по обслуживанию стандартных устройств и файловой системы. Общий перечень этих функций приведен в табл.3.3.
Таблица 3.2. Прерывания верхнего уровня ДОС
Таблица 3.3. Функции ДОС, доступные через прерывание 33
Деление сервисных функций ДОС на два уровня обусловлено соображениями модульности и будущего развития системы. Кроме приведенных в табл.3.2 еще значительная часть прерываний верхнего уровня зарезервирована для будущего развития ДОС (общее число прерываний ДОС равно 32). С другой стороны, список функций ДОС, вызываемых через одно только прерывание 33, уже весьма обширен (многие из этих функций сильно взаимосвязаны, что и послужило причиной их объединения на втором уровне; точно так же обстоит дело с рассмотренными выше прерываниями БСВВ, которые объединяют по нескольку функций).
Функции, реализуемые данным модулем ДОС, в первую очередь используются командами ДОС (обрабатываемыми командным процессором: DIR, COPY и др.), но с тем же успехом они могут вызываться прикладными программами.
При обращении к функциям ДОС нз прикладных программ производится стандартный вызов прерывания 33; при этом в один из регистров микропроцессора должен быть занесен шестнадцатеричный номер вызываемой функции. В другие регистры вызывающая программа должна поместить аргументы выполняемой операции, если они нужны, а по окончании обработки из регистров могут быть получены результаты выполненной операции. Точно так же производятся обращения к прерываниям БСВВ.
Следующие функции действуют только в ДОС версии 3.0:
69 Выдача кода ошибки
5A Создание временного файла
5B Создание нового файла
5C Блокирование/разблокирование доступа к файлу
62 Выдача адреса "Префикса, программного сегмента"
Анализируя состав табл.3.3, можно видеть, что все функции сгруппированы в соответствии с характером предоставляемого ими сервиса. Так, функции с шестнадцатеричными кодами 0-C обеспечивают посимвольный обмен со стандартными внешними устройствами. Функции D-24 и 27-29 составляют обширную номенклатуру для работы с файловой системой, причем все они опираются на использование так называемого "блока управления файлами" (FCB - File Control Block) - специальной таблицы с параметрами, сопровождающими каждый файл. В этих операциях используется также выделенная область памяти для передачи данных между прикладной программой и функциями ДОС (DTA - Data/Disk Transfer Area).
Начиная с версии 2.0, в ДОС введены новые функции для работы с файловой системой (частично повторяющие старые). Коды этих функций - 3C-46. Они более удобны для работы (в них не используется FCB и можно не задавать адрес DTA) и при этом не противоречат старым, так что возможно их совместное использование. Некоторые из новых функций (40, 44) обеспечивают работу с дисковыми файлами и с внешними устройствами, трактуемыми как файлы. Это дает дополнительное удобство с точки зрения разработки прикладных программ.
Обе указанные группы дополняются функциями работы с каталогами иерархической файловой системы. Эгн функции имеют шестнадцатеричные номера 11-12, 39-3B, 45-47, 4E-4F, 56-57.
Для разработки больших прикладных систем, состоящих из наборов взаимодействующих программ, большую ценность представляют функции 31 и 48-4D, позволяющие выделять и освобождать области памяти, а также загружать в ОЗУ и запускать подчиненные программы (подзадачи). При образовании и запуске подзадачи ей передаются все файлы, открытые в ведущей ("родительской") задаче, а также описание операционной среды, в которой с помощью команд конфигурации могут быть определены различные параметры (см. описание файла CONFIG.SYS).
При запуске любой программы ДОС предоставляет в ее распоряжение всю имеющуюся свободную память. Следовательно, при запуске подзадач ведущая программа должна сама регулировать объем занятой памяти, выделяя ее в нужные моменты запускаемым подзадачам. Для этого используются вышеупомянутые функции 48-4A.
Следует также обратить внимание на три особых прерывания, указанных в табл.3.2 под десятичными номерами 34-36. В отличие от всех других прерываний, обслуживаемых ДОС, эти три прерывания могут обслуживаться самой прикладной программой. В векторы этих прерываний прикладная программа может занести адреса своих резидентных подпрограмм, которые должны адекватным образом (т.е. в соответствии с замыслом разработчика) обрабатывать три особые ситуации.
1. Завершение задачи.
2. Прерывание задачи в результате нажатия пользователем клавиш Ctrl+Break.
3. Возникновение "фатальной" (неисправимой) ошибки. Разработчику прикладной системы предоставляется возможность самому решать, что нужно делать в каждом из этих случаев, если он не хочет воспользоваться стандартным сервисом ДОС.
Довольно часто при разработке прикладных систем встает вопрос, каким уровнем сервиса воспользоваться для решения той или иной частной задачи (например, чтения каталогов, прямого доступа к файлам или обмена символами с терминалом). Возможностей для этого, по меньшей мере, три:
1. При разработке прикладной системы на языке высокого уровня, например, паскаль или си, можно воспользоваться стандартными или библиотечными процедурами/функциями для достижения нужного эффекта. Это самый надежный и простой путь, к тому же гарантирующий переносимость программ на другую аппаратную конфигурацию. Встроенные и библиотечные подпрограммы языка высокого уровня не обеспечивают, однако, различных нюансов доступа к аппаратным средствам и файловой системе. Поэтому при всем удобстве их использования часто возникает необходимость в дополнительных возможностях.
2. Использование подпрограмм ДОС, доступных через прерывания 32-63, дает в руки разработчика широкий диапазон средств для работы с аппаратурой ПЭВМ и файловой системой. (Кстати говоря, встроенные и библиотечные функции языков высокого уровня в конечном счете тоже транслируются в прерывания ДОС, хотя этого не видно в исходном тексте программы, с которым имеет дело разработчик). Большинство современных трансляторов с языков высокого уровня для ПЭВМ обеспечивает возможность прямого обращения к прерываниям ДОС с помощью специальных процедур. Параметры таких процедур обычно указывают номер прерывания и значения основных регистров микропроцессора. При необходимости можно делать то же самое и несколько иначе - путем составления небольших программ на языке ассемблера и последующей совместной загрузки этих программ с программами на языке высокого уровня. Все эти вопросы подробнее обсуждаются в гл.4.
Так или иначе, у разработчика прикладной системы есть возможность непосредственно обращаться к прерываниям и функциям ДОС (рис.3.3). По сравнению с обычным использованием встроенных или библиотечных процедур это требует некоторого умения и повышенной аккуратности, но зато дает программисту дополнительные возможности. Особую ценность в этом отношении представляют упоминавшиеся выше функции для посимвольного обмена с клавиатурой и дисплеем, для распределения памяти, организации подзадач и др.
Рис.3.3. Виды обращений к ДОС
3. Точно так же, как осуществляются обращения к прерываниям ДОС верхнего уровня, можно обращаться и к прерываниям нижнего уровня, обслуживаемым БСВВ. С точки зрения программиста, способы обращения к тем и другим прерываниям совершенно идентичны. Однако прерывания БСВВ с кодами 0-31 дают большую близость к аппаратуре, избавляют от сервиса, который иногда может оказаться избыточным (например, повторного чтения с диска при неудачном первом чтении и др.). При выполнении операций через БСВВ в целом достигается большая эффективность и быстродействие, однако прикладная программа начинает сильно зависеть от конкретной модели ПЭВМ, что может сделать ее несовместимой с другими типами ПЭВМ, даже использующими ту же операционную систему.
Таким образом, выбор наиболее подходящего уровня и способа общения с аппаратными средствами определяется целями, критериями и сложностью разрабатываемой системы. Первый из вышерассмотренных способов связывает прикладную систему с конкретным языком программирования, второй - с операционной системой, третий - с конкретной архитектурой ПЭВМ.
3.6. КОМАНДНЫЙ ПРОЦЕССОР
Третий модуль ДОС, располагающийся на системном диске,- это командный процессор. В отличие от рассмотренных выше первых двух модулей, файл с командным процессором (COMMAND.COM) может занимать на системном диске любое место и трактуется как обычная программа.
Основные функции командного процессора заключаются в следующем:
1. Прием и разбор команд, полученных с клавиатуры или из командного файла.
2. Исполнение встроенных команд ДОС, находящихся внутри файла COMMAND.COM.
3. Загрузка и исполнение внешних программ ДОС и прикладных программ (находящихся в файлах типа СОМ и ЕХЕ). Запуск прикладной программы осуществляется так же, как обращение к внешней команде ДОС (утилите), поскольку те и другие реализованы одинаково; командный процессор, в сущности, не отличает их друг от друга.
В функции командного процессора входит также исполнение файла автозапуска (AUTOEXEC.BAT).
Когда в качестве команды ДОС командный процессор встречает имя файла, не совпадающее с именами встроенных команд, производится анализ типа этого файла, указанного в каталоге. Файлы типов СОМ и ЕХЕ считаются загрузочными и обрабатываются соответствующим образом, а файл типа ВАТ трактуется как командный.
Исполняемые файлы типа СОМ не требуют настройки адресов после их загрузки в ОЗУ, а программы типа ЕХЕ при загрузке с диска в ОЗУ нужно настроить по месту размещения, т.е. задать соответствующие адреса сегментов.
Когда в качестве команды ДОС дается имя командного файла, командный процессор начинает последовательно читать и интерпретировать содержащиеся в нем строки, каждая из которых может содержать одну команду, метку или комментарий. Если в очередной строке стоит команда, осуществляющая вызов некоторой программы, то интерпретация командного файла приостанавливается и начинается работа вызванной программы. После ее завершения управление возвращается командному процессору.
Язык команд ДОС (разд. 2.1, 2.5) служит основным средством общения пользователя с дисковой операционной системой. После вызова какой-либо прикладной программы ("задачи") пользователь взаимодействует с ней, а не с ДОС, вплоть до окончания задачи, после чего вновь вступает в действие командный процессор.
Общий вид команды ДОС:
nnn a1 a2 ... ak /f1 ... /fn
Здесь nnn - имя команды (программы). Это обязательный элемент. Аргументы a1 ... ak требуются не во всякой команде, и кроме того, в некоторых командах часть из них может опускаться. То же самое относится к параметрам (флажкам) f1 ... fn. Аргументы обычно указывают на те объекты, с которыми имеет дело данная команда: имена накопителей, каталогов, файлов, внешних устройств. Флажки служат для задания различных модификаций и режимов в исполнении команды.
Если в конкретной команде ДОС предусмотрено задание неполного списка аргументов и/или флажков, то командный процессор подставляет вместо недостающих параметров определенные значения. Эта операция называется ПОДСТАНОВКОЙ ПО УМОЛЧАНИЮ.
При загрузке в ОЗУ командный процессор распадается на две области: резидентную, которая располагается вслед за двумя вышерассмотренными модулями ДОС, и нерезидентную, которая располагается на старших адресах ОЗУ.
Резидентная часть содержит подпрограммы стандартной обработки прерываний с десятичными номерами 34-36 - теми, которые, как указывалось выше, разработчик прикладной системы может переопределить по-своему. Здесь же находится программа подзагрузкн нерезидентной части в ОЗУ. Кроме того, в состав резидентной части входит подпрограмма инициализации, которая обрабатывает файл AUTOEXEC.BAT при запуске машины.
Нерезидентная часть включает программу обработки команд ДОС, поступающих с терминала или из командных файлов. В нерезидентную часть входит загрузчик внешних программ, задачей которого является чтение очередной программы с диска в ОЗУ, настройка адресов и переход на ее исполнение, т.е, реализация функции 4B (табл.3.3).
Поскольку нерезидентная часть командного процессора располагается на старших адресах ОЗУ, любая прикладная программа, загружаемая на младшие адреса, может частично или полностью занять и "затереть" эту область памяти. По окончании такой программы управление всегда возвращается в резидентную часть командного процессора, который в этом случае пытается восстановить затертую нерезидентную часть, загружая ее с системного диска. Именно поэтому на машинах без жесткого диска после окончания работы некоторых прикладных программ на экран выдается сообщение "Установите системный диск в драйвер А: ...". Это значит, что прикладная программа затерла нерезидентную часть командного процессора, а резидентная часть, установив этот факт, делает попытку восстановить ее с гибкого диска. На машинах, в которых роль системного играет жесткий диск, такая ситуация разрешается незаметно для пользователя, поскольку командный процессор всегда есть на жестком диске - от пользователя не требуется никаких действий для его загрузки.
Подпрограмма инициализации располагается в конце резидентной части командного процессора. Поскольку она срабатывает лишь один раз при запуске машины, занимаемая ею память может быть использована прикладными программами; поэтому первая же прикладная программа размещается в ОЗУ на месте этой подпрограммы, что позволяет экономно использовать оперативную память.
Таким образом, после загрузки и инициализации командного процессора карта распределения оперативной памяти приобретает вид, представленный на рис.3.4. В целом память разделяется на три большие области:
1) область ДОС - от младших адресов, объемом около 60 Кбайт;
2) область пользователя (для прикладных программ), максимальным объемом около 580 Кбайт;
3) системная область - на старших адресах ОЗУ, объемом 384 Кбайта.
Рис.3.4. Карта распределения оперативной памяти
3.7. УТИЛИТЫ ДОС
Утилитами обычно называют "внешние" команды (программы), входящие в стандартный комплект ДОС в виде отдельных загрузочных файлов и выполняющие сервисные функции.
В ДОС входит более десятка утилит, предназначенных для разных целей. При практической работе наиболее часто используются лишь некоторые из них (см. гл.2) - FORMAT.COM, CHKDSK.COM, M0DE.COM. Реже используются другие программы - FDISK.COM, BACKUP.COM, RECOVER.COM, RESTORE.COM, PRINT.COM, GRAPHICS.COM, TREE.COM и пр.
К утилитам ДОС относят иногда простой текстовый редактор EDLIN.COM и интерпретатор языка бейсик - BASIC.COM или BASICA.COM, однако правильнее относить их к категории системных или прикладных программ. С другой стороны, любые новые прикладные программы, ориентированные на реализацию тех или иных сервисных функций, можно также считать утилитами ДОС.
Достоинством ДОС и других операционных систем этого типа является то, что любая программа может играть роль сервисной наравне со стандартными утилитами, поскольку ее запуск ни с точки зрения пользователя, ни с точки зрения системы не отличается от вызова утилит ДОС.
Указанное свойство делает ДОС открытой для расширения. Неизменное ядро системы составляет лишь БСВВ/ПЗУ и 3 основных модуля: расширения БСВВ, обработки прерываний и командный процессор. Общий объем оперативной памяти, занимаемой этими модулями, составляет от 40 до 60 Кбайт, в зависимости от конкретной версии системы. Это, в общем, небольшой объем сравнительно с максимальным размером ОЗУ, доступным для ОС и прикладных программ (640 Кбайт - см. рис.3.4).
Один из перспективных современных подходов в разработке программного обеспечения ПЭВМ состоит в создании особой надстройки над стандартной операционной системой. Функция такой надстройки заключается в изоляции стандартной ДОС от пользователя и предоставлении ему вместо командного языка особой операционной среды, включающей удобные средства общения с конкретными прикладными системами. Ниже будут рассмотрены основные принципы реализации системы такого типа и построения на этой основе автоматизированных рабочих мест разного назначения.
В отличие от описанного выше модуля расширения БСВВ, имеющего дело, как и БСВВ/ПЗУ, с прерываниями нижнего уровня, рассматриваемый в этом параграфе модуль обработки прерываний ДОС образует верхний уровень системы, с которыми взаимодействует большинство прикладных программ (почему этот модуль ДОС и называют основным).
Компонентами данного модуля являются подпрограммы, обеспечивающие работу файловой системы, устройств ввода/вывода (клавиатура, дисплей, принтер, коммуникации), обслуживание некоторых специальных ситуаций, связанных с завершением программ, их искусственным прерыванием и обработкой ошибок. Некоторые из этих подпрограмм довольно велики по объему.
В табл.3.2 приведен общий перечень прерываний ДОС. При этом следует отметить, что за одним из этих прерываний (десятичный номер 33, шестнадцатеричный - 21) скрывается множество функций, или операций ДОС по обслуживанию стандартных устройств и файловой системы. Общий перечень этих функций приведен в табл.3.3.
Таблица 3.2. Прерывания верхнего уровня ДОС
Таблица 3.3. Функции ДОС, доступные через прерывание 33
Деление сервисных функций ДОС на два уровня обусловлено соображениями модульности и будущего развития системы. Кроме приведенных в табл.3.2 еще значительная часть прерываний верхнего уровня зарезервирована для будущего развития ДОС (общее число прерываний ДОС равно 32). С другой стороны, список функций ДОС, вызываемых через одно только прерывание 33, уже весьма обширен (многие из этих функций сильно взаимосвязаны, что и послужило причиной их объединения на втором уровне; точно так же обстоит дело с рассмотренными выше прерываниями БСВВ, которые объединяют по нескольку функций).
Функции, реализуемые данным модулем ДОС, в первую очередь используются командами ДОС (обрабатываемыми командным процессором: DIR, COPY и др.), но с тем же успехом они могут вызываться прикладными программами.
При обращении к функциям ДОС нз прикладных программ производится стандартный вызов прерывания 33; при этом в один из регистров микропроцессора должен быть занесен шестнадцатеричный номер вызываемой функции. В другие регистры вызывающая программа должна поместить аргументы выполняемой операции, если они нужны, а по окончании обработки из регистров могут быть получены результаты выполненной операции. Точно так же производятся обращения к прерываниям БСВВ.
Следующие функции действуют только в ДОС версии 3.0:
69 Выдача кода ошибки
5A Создание временного файла
5B Создание нового файла
5C Блокирование/разблокирование доступа к файлу
62 Выдача адреса "Префикса, программного сегмента"
Анализируя состав табл.3.3, можно видеть, что все функции сгруппированы в соответствии с характером предоставляемого ими сервиса. Так, функции с шестнадцатеричными кодами 0-C обеспечивают посимвольный обмен со стандартными внешними устройствами. Функции D-24 и 27-29 составляют обширную номенклатуру для работы с файловой системой, причем все они опираются на использование так называемого "блока управления файлами" (FCB - File Control Block) - специальной таблицы с параметрами, сопровождающими каждый файл. В этих операциях используется также выделенная область памяти для передачи данных между прикладной программой и функциями ДОС (DTA - Data/Disk Transfer Area).
Начиная с версии 2.0, в ДОС введены новые функции для работы с файловой системой (частично повторяющие старые). Коды этих функций - 3C-46. Они более удобны для работы (в них не используется FCB и можно не задавать адрес DTA) и при этом не противоречат старым, так что возможно их совместное использование. Некоторые из новых функций (40, 44) обеспечивают работу с дисковыми файлами и с внешними устройствами, трактуемыми как файлы. Это дает дополнительное удобство с точки зрения разработки прикладных программ.
Обе указанные группы дополняются функциями работы с каталогами иерархической файловой системы. Эгн функции имеют шестнадцатеричные номера 11-12, 39-3B, 45-47, 4E-4F, 56-57.
Для разработки больших прикладных систем, состоящих из наборов взаимодействующих программ, большую ценность представляют функции 31 и 48-4D, позволяющие выделять и освобождать области памяти, а также загружать в ОЗУ и запускать подчиненные программы (подзадачи). При образовании и запуске подзадачи ей передаются все файлы, открытые в ведущей ("родительской") задаче, а также описание операционной среды, в которой с помощью команд конфигурации могут быть определены различные параметры (см. описание файла CONFIG.SYS).
При запуске любой программы ДОС предоставляет в ее распоряжение всю имеющуюся свободную память. Следовательно, при запуске подзадач ведущая программа должна сама регулировать объем занятой памяти, выделяя ее в нужные моменты запускаемым подзадачам. Для этого используются вышеупомянутые функции 48-4A.
Следует также обратить внимание на три особых прерывания, указанных в табл.3.2 под десятичными номерами 34-36. В отличие от всех других прерываний, обслуживаемых ДОС, эти три прерывания могут обслуживаться самой прикладной программой. В векторы этих прерываний прикладная программа может занести адреса своих резидентных подпрограмм, которые должны адекватным образом (т.е. в соответствии с замыслом разработчика) обрабатывать три особые ситуации.
1. Завершение задачи.
2. Прерывание задачи в результате нажатия пользователем клавиш Ctrl+Break.
3. Возникновение "фатальной" (неисправимой) ошибки. Разработчику прикладной системы предоставляется возможность самому решать, что нужно делать в каждом из этих случаев, если он не хочет воспользоваться стандартным сервисом ДОС.
Довольно часто при разработке прикладных систем встает вопрос, каким уровнем сервиса воспользоваться для решения той или иной частной задачи (например, чтения каталогов, прямого доступа к файлам или обмена символами с терминалом). Возможностей для этого, по меньшей мере, три:
1. При разработке прикладной системы на языке высокого уровня, например, паскаль или си, можно воспользоваться стандартными или библиотечными процедурами/функциями для достижения нужного эффекта. Это самый надежный и простой путь, к тому же гарантирующий переносимость программ на другую аппаратную конфигурацию. Встроенные и библиотечные подпрограммы языка высокого уровня не обеспечивают, однако, различных нюансов доступа к аппаратным средствам и файловой системе. Поэтому при всем удобстве их использования часто возникает необходимость в дополнительных возможностях.
2. Использование подпрограмм ДОС, доступных через прерывания 32-63, дает в руки разработчика широкий диапазон средств для работы с аппаратурой ПЭВМ и файловой системой. (Кстати говоря, встроенные и библиотечные функции языков высокого уровня в конечном счете тоже транслируются в прерывания ДОС, хотя этого не видно в исходном тексте программы, с которым имеет дело разработчик). Большинство современных трансляторов с языков высокого уровня для ПЭВМ обеспечивает возможность прямого обращения к прерываниям ДОС с помощью специальных процедур. Параметры таких процедур обычно указывают номер прерывания и значения основных регистров микропроцессора. При необходимости можно делать то же самое и несколько иначе - путем составления небольших программ на языке ассемблера и последующей совместной загрузки этих программ с программами на языке высокого уровня. Все эти вопросы подробнее обсуждаются в гл.4.
Так или иначе, у разработчика прикладной системы есть возможность непосредственно обращаться к прерываниям и функциям ДОС (рис.3.3). По сравнению с обычным использованием встроенных или библиотечных процедур это требует некоторого умения и повышенной аккуратности, но зато дает программисту дополнительные возможности. Особую ценность в этом отношении представляют упоминавшиеся выше функции для посимвольного обмена с клавиатурой и дисплеем, для распределения памяти, организации подзадач и др.
Рис.3.3. Виды обращений к ДОС
3. Точно так же, как осуществляются обращения к прерываниям ДОС верхнего уровня, можно обращаться и к прерываниям нижнего уровня, обслуживаемым БСВВ. С точки зрения программиста, способы обращения к тем и другим прерываниям совершенно идентичны. Однако прерывания БСВВ с кодами 0-31 дают большую близость к аппаратуре, избавляют от сервиса, который иногда может оказаться избыточным (например, повторного чтения с диска при неудачном первом чтении и др.). При выполнении операций через БСВВ в целом достигается большая эффективность и быстродействие, однако прикладная программа начинает сильно зависеть от конкретной модели ПЭВМ, что может сделать ее несовместимой с другими типами ПЭВМ, даже использующими ту же операционную систему.
Таким образом, выбор наиболее подходящего уровня и способа общения с аппаратными средствами определяется целями, критериями и сложностью разрабатываемой системы. Первый из вышерассмотренных способов связывает прикладную систему с конкретным языком программирования, второй - с операционной системой, третий - с конкретной архитектурой ПЭВМ.
3.6. КОМАНДНЫЙ ПРОЦЕССОР
Третий модуль ДОС, располагающийся на системном диске,- это командный процессор. В отличие от рассмотренных выше первых двух модулей, файл с командным процессором (COMMAND.COM) может занимать на системном диске любое место и трактуется как обычная программа.
Основные функции командного процессора заключаются в следующем:
1. Прием и разбор команд, полученных с клавиатуры или из командного файла.
2. Исполнение встроенных команд ДОС, находящихся внутри файла COMMAND.COM.
3. Загрузка и исполнение внешних программ ДОС и прикладных программ (находящихся в файлах типа СОМ и ЕХЕ). Запуск прикладной программы осуществляется так же, как обращение к внешней команде ДОС (утилите), поскольку те и другие реализованы одинаково; командный процессор, в сущности, не отличает их друг от друга.
В функции командного процессора входит также исполнение файла автозапуска (AUTOEXEC.BAT).
Когда в качестве команды ДОС командный процессор встречает имя файла, не совпадающее с именами встроенных команд, производится анализ типа этого файла, указанного в каталоге. Файлы типов СОМ и ЕХЕ считаются загрузочными и обрабатываются соответствующим образом, а файл типа ВАТ трактуется как командный.
Исполняемые файлы типа СОМ не требуют настройки адресов после их загрузки в ОЗУ, а программы типа ЕХЕ при загрузке с диска в ОЗУ нужно настроить по месту размещения, т.е. задать соответствующие адреса сегментов.
Когда в качестве команды ДОС дается имя командного файла, командный процессор начинает последовательно читать и интерпретировать содержащиеся в нем строки, каждая из которых может содержать одну команду, метку или комментарий. Если в очередной строке стоит команда, осуществляющая вызов некоторой программы, то интерпретация командного файла приостанавливается и начинается работа вызванной программы. После ее завершения управление возвращается командному процессору.
Язык команд ДОС (разд. 2.1, 2.5) служит основным средством общения пользователя с дисковой операционной системой. После вызова какой-либо прикладной программы ("задачи") пользователь взаимодействует с ней, а не с ДОС, вплоть до окончания задачи, после чего вновь вступает в действие командный процессор.
Общий вид команды ДОС:
nnn a1 a2 ... ak /f1 ... /fn
Здесь nnn - имя команды (программы). Это обязательный элемент. Аргументы a1 ... ak требуются не во всякой команде, и кроме того, в некоторых командах часть из них может опускаться. То же самое относится к параметрам (флажкам) f1 ... fn. Аргументы обычно указывают на те объекты, с которыми имеет дело данная команда: имена накопителей, каталогов, файлов, внешних устройств. Флажки служат для задания различных модификаций и режимов в исполнении команды.
Если в конкретной команде ДОС предусмотрено задание неполного списка аргументов и/или флажков, то командный процессор подставляет вместо недостающих параметров определенные значения. Эта операция называется ПОДСТАНОВКОЙ ПО УМОЛЧАНИЮ.
При загрузке в ОЗУ командный процессор распадается на две области: резидентную, которая располагается вслед за двумя вышерассмотренными модулями ДОС, и нерезидентную, которая располагается на старших адресах ОЗУ.
Резидентная часть содержит подпрограммы стандартной обработки прерываний с десятичными номерами 34-36 - теми, которые, как указывалось выше, разработчик прикладной системы может переопределить по-своему. Здесь же находится программа подзагрузкн нерезидентной части в ОЗУ. Кроме того, в состав резидентной части входит подпрограмма инициализации, которая обрабатывает файл AUTOEXEC.BAT при запуске машины.
Нерезидентная часть включает программу обработки команд ДОС, поступающих с терминала или из командных файлов. В нерезидентную часть входит загрузчик внешних программ, задачей которого является чтение очередной программы с диска в ОЗУ, настройка адресов и переход на ее исполнение, т.е, реализация функции 4B (табл.3.3).
Поскольку нерезидентная часть командного процессора располагается на старших адресах ОЗУ, любая прикладная программа, загружаемая на младшие адреса, может частично или полностью занять и "затереть" эту область памяти. По окончании такой программы управление всегда возвращается в резидентную часть командного процессора, который в этом случае пытается восстановить затертую нерезидентную часть, загружая ее с системного диска. Именно поэтому на машинах без жесткого диска после окончания работы некоторых прикладных программ на экран выдается сообщение "Установите системный диск в драйвер А: ...". Это значит, что прикладная программа затерла нерезидентную часть командного процессора, а резидентная часть, установив этот факт, делает попытку восстановить ее с гибкого диска. На машинах, в которых роль системного играет жесткий диск, такая ситуация разрешается незаметно для пользователя, поскольку командный процессор всегда есть на жестком диске - от пользователя не требуется никаких действий для его загрузки.
Подпрограмма инициализации располагается в конце резидентной части командного процессора. Поскольку она срабатывает лишь один раз при запуске машины, занимаемая ею память может быть использована прикладными программами; поэтому первая же прикладная программа размещается в ОЗУ на месте этой подпрограммы, что позволяет экономно использовать оперативную память.
Таким образом, после загрузки и инициализации командного процессора карта распределения оперативной памяти приобретает вид, представленный на рис.3.4. В целом память разделяется на три большие области:
1) область ДОС - от младших адресов, объемом около 60 Кбайт;
2) область пользователя (для прикладных программ), максимальным объемом около 580 Кбайт;
3) системная область - на старших адресах ОЗУ, объемом 384 Кбайта.
Рис.3.4. Карта распределения оперативной памяти
3.7. УТИЛИТЫ ДОС
Утилитами обычно называют "внешние" команды (программы), входящие в стандартный комплект ДОС в виде отдельных загрузочных файлов и выполняющие сервисные функции.
В ДОС входит более десятка утилит, предназначенных для разных целей. При практической работе наиболее часто используются лишь некоторые из них (см. гл.2) - FORMAT.COM, CHKDSK.COM, M0DE.COM. Реже используются другие программы - FDISK.COM, BACKUP.COM, RECOVER.COM, RESTORE.COM, PRINT.COM, GRAPHICS.COM, TREE.COM и пр.
К утилитам ДОС относят иногда простой текстовый редактор EDLIN.COM и интерпретатор языка бейсик - BASIC.COM или BASICA.COM, однако правильнее относить их к категории системных или прикладных программ. С другой стороны, любые новые прикладные программы, ориентированные на реализацию тех или иных сервисных функций, можно также считать утилитами ДОС.
Достоинством ДОС и других операционных систем этого типа является то, что любая программа может играть роль сервисной наравне со стандартными утилитами, поскольку ее запуск ни с точки зрения пользователя, ни с точки зрения системы не отличается от вызова утилит ДОС.
Указанное свойство делает ДОС открытой для расширения. Неизменное ядро системы составляет лишь БСВВ/ПЗУ и 3 основных модуля: расширения БСВВ, обработки прерываний и командный процессор. Общий объем оперативной памяти, занимаемой этими модулями, составляет от 40 до 60 Кбайт, в зависимости от конкретной версии системы. Это, в общем, небольшой объем сравнительно с максимальным размером ОЗУ, доступным для ОС и прикладных программ (640 Кбайт - см. рис.3.4).
Один из перспективных современных подходов в разработке программного обеспечения ПЭВМ состоит в создании особой надстройки над стандартной операционной системой. Функция такой надстройки заключается в изоляции стандартной ДОС от пользователя и предоставлении ему вместо командного языка особой операционной среды, включающей удобные средства общения с конкретными прикладными системами. Ниже будут рассмотрены основные принципы реализации системы такого типа и построения на этой основе автоматизированных рабочих мест разного назначения.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Брябрин. Программное обеспечение персональных ЭВМ. 1990
ГЛАВА 4. ИСКУССТВО УПРАВЛЕНИЯ ПЕРСОНАЛЬНЫМ КОМПЬЮТЕРОМ
В данной главе будут рассмотрены основные возможности по управлению внешними устройствами ПЭВМ. При этом затрагиваются некоторые детали внутренней организации системы, для чего, вообще говоря, необходимы определенные профессиональные знания и владение основными приемами работы на ПЭВМ. Обсуждаемые возможности совсем не обязательно знать каждому пользователю, однако они необходимы тем, кто занимается созданием прикладных систем для себя или для других. В последних параграфах дается краткий обзор инструментальных языков программирования, применяемых на персональных компьютерах, а также рассматриваются общие методы организации взаимодействия программ при построении прикладных систем.
4.1. УПРАВЛЕНИЕ ДИСПЛЕЕМ
В 16-разрядных профессиональных ПЭВМ ДИСПЛЕЙ может работать в нескольких режимах, каждому из которых соответствует свой формат изображения. В табл.4.1 представлены характеристики режимов, поддерживаемый ДОС.
Таблица 4.1. Режимы дисплея
Рассмотрим основные группы режимов:
А. Режимы 0 и 1 соответствуют текстовому формату, при котором на экран могут выводиться только тексты по 40 знаков в строке. Число строк на экране - 25. Будем говорить, что в этом случае мы имеем дело с "узким" экраном, хотя изображения символов на нем, наоборот,- широкие.
Хотя формально в табл.4.1 указано, что в режиме 0 цвет не используется, фактически это имеет место лишь при подключении к ПЭВМ монитора с совмещенным управлением цветовыми лучами ЭЛТ (с так называемым "композитным видеосигналом"), как, например, у обычного телевизора.
При использовании монитора с раздельным управлением цветовыми лучами (с "RGB-видеосигналом"),- а именно такие мониторы используются в ПЭВМ чаще всего,- цвет фактически не подавляется, так что в этом случае режимы 0 и 1 не различаются.
Количество используемых цветов - 16; они составляются из 2-х групп по 8 цветов в каждой. Наборы цветов в группах одинаковые, однако цвета второй группы отличаются увеличенной яркостью (интенсивностью цветовых лучей). Зрительно это иногда проявляется как изменение цвета (коричневый - желтый). Один из 16 цветов всегда выбирается как цвет фона, поэтому число возможных цветов для символов фактически равно 15. Все эти рассуждения, разумеется, применимы лишь в том случае, если монитор обеспечивает вывод всей цветовой гаммы.
Б. Режимы 2 и 3 соответствуют текстовому формату, при котором на экран могут выводиться только тексты по 80 знаков в строке. Строк также может быть 25. Будем говорить, что в этом случае мы имеем дело с "широким" экраном. Различие между режимами 2 и 3 проявляется, как и в случае А, только при использовании совмещенного видеосигнала; в противном случае эти режимы одинаковы. Количество цветов и их организация - такие же, как в случае А.
В. Режимы 4 и 5 поддерживают так называемый "графический" формат изображения с разрешающей способностью 320 точек по горизонтали и 200 точек по вертикали.
Каждая точка может быть одного из 4-х цветов в каждой из двух возможных цветовых палитр, имеющих внутренние коды 0 и 1. Палитры не могут смешиваться; при изменении палитры меняются все цвета на экране. Поскольку один цвет всегда выбирается как цвет фона, для изображения линий и знаков остается в каждой палитре лишь 3 цвета. В палитре 0 эти цвета - зеленый, красный, коричневый; в палитре 1 - голубой, сиреневый, белый (реальные оттенки цветов сильно зависят от типа монитора). Если изменение яркости цветовых лучей трактовать как палитры, то к двум основным можно добавить еще два набора палитр.
Графический формат не означает, что на экран нельзя выводить тексты. Их можно выводить обычными операторами вывода; при этом в режимах 4 и 5 число строк равно 25 и число знаков в строке - 40, т.е. совпадает с режимом "узкого" экрана в случае (А). Однако графический режим позволяет создавать собственные, "рисованные" буквы и цифры, которые могут быть меньшего размера и, следовательно, более плотно выводиться на экран; при этом требуется разработка соответственных процедур.
Важным отличием графического формата от текстового при работе с текстами является ОТСУТСТВИЕ КУРСОРА. В связи с этим прикладные системы, использующие графический формат, поддерживают "собственные" курсоры, которые могут иметь любое изображение; однако для вывода такого курсора на экран, как и при выводе рисованных символов, нужны специальные операторы.
Г. Режим 6 также поддерживает графический формат изображения, но с более высокой разрешающей способностью - 640 точек по горизонтали и 200 точек по вертикали. Увеличение разрешающей способности лишает возможности работы с цветными изображениями. Цветов остается только 2 - для фона и линий/знаков. Зато при стандартном выводе текстов в этом режиме число знаков в строке увеличивается до 80, что соответствует "широкому" экрану. Курсор, как и в случае В, отсутствует, поэтому его нужно создавать искусственным образом.
Д. Режим 7 отличается от всех остальных, поскольку ориентирован на поддержку монохромного (черно-белого) монитора. Формат в данном случае - текстовый с 80 знаками в строке. Число строк - 25.
УПРАВЛЕНИЕ РЕЖИМОМ ДИСПЛЕЯ ИЗ ПРИКЛАДНЫХ ПРОГРАММ. Управление рассмотренными выше режимами дисплея на самом нижнем уровне обеспечивается базовой системой ввода/вывода через прерывание 16. Со стороны прикладных программ доступ к некоторым из этих режимов осуществляется через соответствующие стандартные функции языков программирования.
Так, в языке бейсик для этого используются операторы SCREEN и WIDTH. Оператор SCREEN может иметь в качестве первого параметра число 0, 1 или 2. При использовании цветного графического дисплея эти числа соответствуют режимам групп А/Б (0), В (1), Г (2). Оператор WIDTH, в свою очередь, меняет "ширину" экрана, обеспечивая переключение между группами А и Б или В и Г; на это указывает аргумент WIDTH - число 40 или 80. Таким образом, оператор WIDTH является "вторичным" по отношению к оператору SCREEN. Соответствие этих операторов и рассмотренных выше групп режимов иллюстрируется табл.4.2.
Таблица 4.2. Операторы языка бейсик для управления режимом дисплея
В популярной версии языка паскаль - TurboPascal-3.0 - также имеются специальные встроенные процедуры для установки режимов дисплея:
TextMode(BW40) - режим 0 группы А,
TextMode(C40) - режим 1 группы А,
TextMode(BW80) - режим 2 группы Б,
TextMode(C80) - режим 3 группы Б,
GraphMode - режим 4 группы В,
GraphColorMode - режим 5 группы В,
HIRes - режим 6 группы Г.
Как указывалось, при использовании RGB-монитора процедуры одной группы действуют одинаково, т.е. безразлично, например, применяется ли процедура GraphColorMode или GraphMode. В языке TurboPascal-3.0 имеется также процедура выбора палитры - Palette(N), где N - номер палитры, принимающий значения 0 .. 3. Палитры с номерами 2 и 3 являются модификациями палитр с номерами 0 и 1 за счет большей яркости цветов.
В других языках программировании может не быть стандартных процедур такого типа, как в языках бейсик и TurboPascal-3.0, но обычно имеются средства обращения к прерываниям ДОС. Через прерывание 16 можно получить доступ не только к управлению основными режимами дисплея, но и к набору других полезных функций для управления экраном и вывода на него текстовых и графических изображений. К ним, в частности, относятся:
- установка размера курсора для текстового режима,
- чтение текущих координат курсора на экране,
- "прокрутка" дисплейного окна вверх или вниз,
- установка оттенков цветов (цветовой палитры),
- вывод на экран одиночной (цветной) точки,
- "чтение" цвета одиночной точки в графическом режиме и др.
К внутренним функциям ДОС можно обращаться, конечно, и из ассемблерных программ, а к этим программам обращаться, в свою очередь, из программ на языках высокого уровня; однако это уже становится задачей системного программирования, которую может решать далеко не каждый пользователь.
Человеку, который имеет дело с ПЭВМ лишь на уровне общения с ДОС и с некоторыми прикладными программами, для управления дисплеем проще всего воспользоваться специальной утилитой MODE, поставляемой в составе ДОС. Другой вариант управления дисплеем на уровне ДОС - использование управляющих Esc-последовательностей, обрабатываемых драйвером ANSI.SYS.
УПРАВЛЕНИЕ ЭКРАНОМ С ПОМОЩЬЮ КОМАНДЫ MODE. На уровне команд ДОС некоторые режимы дисплея можно устанавливать с помощью системной утилиты MODE. Эта системная программа, поставляемая вместе со стандартным комплектом ДОС, имеет объем около 5 Кбайт. Разместив ее в общедоступном каталоге (например, в \EXE), пользователь получает возможность обращаться к ней как к обычной команде ДОС с целью установки режимов дисплея, а также принтера и коммуникационных каналов. Рассмотрим действие MODE по отношению к дисплею.
В табл. 4.3 представлены варианты аргументов MODE, с помощью которых устанавливаются текстовые режимы работы дисплея.
Таблица 4.3. Действие команды MODE
Первые две разновидности команды MODE должны осуществлять лишь переключение между "узким" и "широким" экраном, т.е. действуют подобно команде WIDTH в языке бейсик.
Четыре следующих разновидности формально производят переключение между режимами групп (А) и (Б), аналогично рассмотренной выше процедуре TextMode в языке TurboPascal-3.0, Однако при использовании RGB-монитора, как указывалось, подавления цвета не происходит, поэтому команда MODE действует совершенно одинаково с аргументами CO40 и BW40. Точно так же для RGB-монитора нет разницы между аргументами CO80 и BW80.
Последняя разновидность команды MODE соответствует режиму 7, т.е. предназначена для работы с монохромным дисплеем.
Из приведенных рассуждений видно, что команда MODE хотя и предоставляет пользователям некоторые возможности, но не дает полного контроля над дисплеем. В частности, эта команда управляет только текстовыми режимами, а переход в соответствующие графические режимы может осуществляться лишь изнутри прикладной программы. Кроме того, нужно иметь возможность выбирать позицию для курсора на экране, устанавливать цвета фона и знаков, "гасить" экран и др. Все эти возможности становятся доступными пользователю, если применить другой метод управления экраном - через драйвер ANSI.SYS.
С помощью команды MODE можно также осуществлять горизонтальный сдвиг изображения относительно светящегося дисплейного поля. Для этого команде MODE дается второй параметр - буква R - для сдвига изображения вправо, буква L - для сдвига влево. Необходимость в этой операции возникает крайне редко.
УПРАВЛЕНИЕ ЭКРАНОМ ЧЕРЕЗ ДРАЙВЕР ANSI.SYS. Драйвер ANSI.SYS - это специальная программа, подключаемая к ДОС через файл конфигурации. Эта программа объемом менее 2 Кбайт предназначена для реализации двух важных функций:
а) обеспечивать управление дисплеем;
б) обеспечивать переопределение символов, вводимых с клавиатуры.
Реализация обеих указанных функций осуществляется с помощью одного и того же приема - в драйвер посылаются особые управляющие последовательности символов (так называемые "Esc-последовательности" или "Esc-команды"), которые и заставляют его осуществлять те или иные операции. Рассмотрим подробнее первую функцию - управление дисплеем.
Общий вид Esc-команды следующий:
<заголовок> <параметры> <код команды>
Где
<заголовок> ::= <символ Esc> <символ [>
<параметры> ::= <параметр> [; ...; <параметр>] | <пусто>
<код команды> ::= <буква английского алфавита>
ЗАГОЛОВКОМ Esc-команды являются два специальных символа; один из них-Esc (специальный символ с внутренним кодом 27), второй - квадратная скобка. Эти символы специально выбраны в столь необычной комбинации, чтобы Esc-последовательности не могли быть спутаны с другими цепочками символов. Драйвер ANSI.SYS, после того как он оказывается подключенным к операционной системе (через файл конфигурации CONFIG.SYS), начинает перехватывать все сообщения, посылаемые на стандартное устройство вывода. Обычно (если не происходило переустановки с помощью команды CTTY) роль стандартного устройства вывода играет экран дисплея. Распознав по заголовку Esc-команду, драйвер ANSI.SYS расшифровывает ее и выполняет то или иное действие, например, меняет режим дисплея, выдает на экран какое-либо сообщение или меняет позицию курсора.
ПАРАМЕТРАМИ Esc-команд являются либо десятичные коды символов в стандарте ASCII, либо строки, ограниченные двойными кавычками. В некоторых командах перед первым числовым параметром может стоять знак равенства. Параметров может быть несколько, и в таком случае они разделяются знаком "точка с запятой".
КОД КОМАНДЫ обозначается одной буквой английского алфавита и является указанием для драйвера, какую именно операцию нужно выполнить. Важно иметь в виду, что одноименные малые и большие буквы обозначают разные коды команд.
В рассматриваемых далее примерах употребляется трехбуквенное обозначение символа Esc, однако фактически в Esc-командах должен фигурировать один символ с внутренним кодом 27. Ввести его с клавиатуры можно разными способами; например, при работе в текстовых редакторах АБВ или Лексикон, разработанных в ВЦ АН СССР, для ввода символа Esc нужно одновременно нажать клавиши Ctrl и [, На экране этот символ изображается специальным знаком.
Наиболее часто используются Esc-команды управления экраном, иллюстрируемые следующими примерами:
Esc[=3h - установка режима экрана с кодом 3 (80зн./стр.),
Esc[6;1Н - установка курсора в 6-ю строку на 1-ю позицию,
Esc[31m - установка красного цвета букв,
Esc[2J - гашение экрана,
Esc[s - сохранение текущей позиции курсора,
Esc[u - восстановление сохраненной позиции курсора,
Esc[k - стирание символов от текущей позиции до конца строки.
Реже употребляются команды относительного перемещения курсора. Примеры таких команд:
Esc[1A - сдвиг курсора вверх на 1 строку, не меняя позицию,
Esc[5B - сдвиг курсора вниз на 5 строк, не меняя позицию,
Esc[15C - сдвиг курсора вправо на 15 позиций,
Esc[12D - сдвиг курсора влево на 12 позиций.
Имеется также возможность управлять режимом ввода длинных строк, концы которых выходят за правый край экрана:
Esc[?7h - перенос конца длинной строки на следующую строчку экрана,
Esc [?7l - отбрасывание конца строки, выходящего за пределы экрана (здесь код команды - малая английская буква "эль").
При использовании монохромного дисплея можно управлять атрибутами выводимых на экран знаков, выделяя их с помощью усиления яркости, подчеркивания, мигания, задания инвертированного ("негативного") изображения. В цветном дисплее можно также устанавливать повышенную яркость знаков, инвертировать их цвет, выводить в мигающем режиме. Для управления атрибутами символов применяются Esc-последовательности вида:
Esc[Xm
Esc[X;Ym
Esc[X;Y;Zm
Здесь вместо символов X, Y, Z ставятся коды управления атрибутами. В табл.4.4 приведена сводка кодов, управляющих цветами знаков, цветом фона и атрибутами выделения символов. Указанные управляющие коды могут подставляться в любой комбинации в эти последовательности.
Таблица 4.4. Коды управления атрибутами символов
К числу особых функций драйвера ANSI.SYS, которые могут применяться в системных программах, относится команда Esc[6n. Эта команда считывает с экрана координаты текущего положения курсора: Y - номер строки, X - номер позиции в строке. Затем формируется специальная символьная последовательность вида: CHR(27)[Y;XR. Эта последовательность посылается на стандартное устройство ввода, откуда прикладные программы обычно читают входные данные. Значения X и Y в указанной последовательности представлены двухразрядными целыми числами. Проиллюстрируем, каким образом можно получить целочисленные значения X и Y в прикладной программе на паскале. Для этого можно применить, например, следующую последовательность операторов:
WRITE(CHR(27),'[6n');
READ(S);
VAL(COPY(S,3,2),Y,R);
VAL(COPY(S,6,2),X,R);
Первый из этих операторов посылает на экран вышеуказанную Esc-последовательность, второй читает со стандартного входа полученный ответ в виде текстовой строки. Последние два оператора выделяют из полученной строки S по два символа, представляющих соответственно значения Y и X, и переводят их в целочисленные представления.
Использование драйвера ANSI.SYS не покрывает всех возможностей управления экраном, которые скрыты во внутренних функциях ДОС, однако все же дает пользователю достаточно мощный инструмент для создания различных зрительных эффектов, часто применяющихся при формировании операционной обстановки.
Драйвер ANSI.SYS имеет и другой недостаток - вывод символов на экран происходит гораздо медленнее, чем при прямом использовании функций ДОС через прерывание 16. Тем не менее использование ANSI.SYS удобно, так как с его помощью пользователь сам может достаточно просто выполнять основные управляющие воздействия при работе с экраном.
В заключение следует отметить, что во многих современных языках программирования для ПЭВМ - бейсик, паскаль и др.- имеются встроенные или поставляемые в виде текстовых модулей процедуры и функции, обеспечивающие удобную работу с экраном. Например, в популярной системе программирования TurboPascal-3.0 имеются следующие группы функций и процедур:
- управление режимами экрана,
- удаление/вставка экранных строк в текстовом режиме,
- установка/перемещение курсора в текстовом режиме,
- работа с текстовыми и графическими окнами,
- вывод на экран (цветных) точек и рисование линий,
- выделение и вторичное наложение изображений,
- рисование окружностей, дуг, закраска областей.
Имеется также отдельный пакет с процедурами и функциями так называемой "черепашьей" графики, на основе которой строятся учебные прикладные программы с использованием различных графических эффектов.
Многие модели ПЭВМ, использующие ДОС в качестве основной операционной системы, могут иметь несколько иную организацию и режимы дисплея, по сравнению с машинами типа IBM PC, EC1840/1841 и им подобными. В частности, могут встречаться следующие особенности:
- монохромный дисплей может использоваться не только в текстовом, но и в графическом режиме; при этом почти все вышеприведенные рассуждения остаются правильными, но только вместо настоящих цветов используются оттенки черного и белого цвета, инверсия, мерцание и другие способы выделения символов;
- разрешающая способность дисплея в цветном режиме может быть в несколько раз больше - 640*350 или даже 640*400 точек при 16 или 256 доступных цветах (это имеет место, например, в машинах класса IBM PC-XT с "усовершенствованным" или "профессиональным" графическим адаптером и монитором);
- может иметься аппаратная поддержка для одновременного и независимого вывода на экран графических и текстовых изображений, что дает гораздо больше возможностей для организации интерфейса с пользователем.
Хотя указанные особенности могут потребовать других соглашений по управлению дисплеем, тем не менее рассмотренные выше общие принципы остаются в силе и переход на ПЭВМ с другими характеристиками дисплеев не представит больших затруднений.
В данной главе будут рассмотрены основные возможности по управлению внешними устройствами ПЭВМ. При этом затрагиваются некоторые детали внутренней организации системы, для чего, вообще говоря, необходимы определенные профессиональные знания и владение основными приемами работы на ПЭВМ. Обсуждаемые возможности совсем не обязательно знать каждому пользователю, однако они необходимы тем, кто занимается созданием прикладных систем для себя или для других. В последних параграфах дается краткий обзор инструментальных языков программирования, применяемых на персональных компьютерах, а также рассматриваются общие методы организации взаимодействия программ при построении прикладных систем.
4.1. УПРАВЛЕНИЕ ДИСПЛЕЕМ
В 16-разрядных профессиональных ПЭВМ ДИСПЛЕЙ может работать в нескольких режимах, каждому из которых соответствует свой формат изображения. В табл.4.1 представлены характеристики режимов, поддерживаемый ДОС.
Таблица 4.1. Режимы дисплея
Рассмотрим основные группы режимов:
А. Режимы 0 и 1 соответствуют текстовому формату, при котором на экран могут выводиться только тексты по 40 знаков в строке. Число строк на экране - 25. Будем говорить, что в этом случае мы имеем дело с "узким" экраном, хотя изображения символов на нем, наоборот,- широкие.
Хотя формально в табл.4.1 указано, что в режиме 0 цвет не используется, фактически это имеет место лишь при подключении к ПЭВМ монитора с совмещенным управлением цветовыми лучами ЭЛТ (с так называемым "композитным видеосигналом"), как, например, у обычного телевизора.
При использовании монитора с раздельным управлением цветовыми лучами (с "RGB-видеосигналом"),- а именно такие мониторы используются в ПЭВМ чаще всего,- цвет фактически не подавляется, так что в этом случае режимы 0 и 1 не различаются.
Количество используемых цветов - 16; они составляются из 2-х групп по 8 цветов в каждой. Наборы цветов в группах одинаковые, однако цвета второй группы отличаются увеличенной яркостью (интенсивностью цветовых лучей). Зрительно это иногда проявляется как изменение цвета (коричневый - желтый). Один из 16 цветов всегда выбирается как цвет фона, поэтому число возможных цветов для символов фактически равно 15. Все эти рассуждения, разумеется, применимы лишь в том случае, если монитор обеспечивает вывод всей цветовой гаммы.
Б. Режимы 2 и 3 соответствуют текстовому формату, при котором на экран могут выводиться только тексты по 80 знаков в строке. Строк также может быть 25. Будем говорить, что в этом случае мы имеем дело с "широким" экраном. Различие между режимами 2 и 3 проявляется, как и в случае А, только при использовании совмещенного видеосигнала; в противном случае эти режимы одинаковы. Количество цветов и их организация - такие же, как в случае А.
В. Режимы 4 и 5 поддерживают так называемый "графический" формат изображения с разрешающей способностью 320 точек по горизонтали и 200 точек по вертикали.
Каждая точка может быть одного из 4-х цветов в каждой из двух возможных цветовых палитр, имеющих внутренние коды 0 и 1. Палитры не могут смешиваться; при изменении палитры меняются все цвета на экране. Поскольку один цвет всегда выбирается как цвет фона, для изображения линий и знаков остается в каждой палитре лишь 3 цвета. В палитре 0 эти цвета - зеленый, красный, коричневый; в палитре 1 - голубой, сиреневый, белый (реальные оттенки цветов сильно зависят от типа монитора). Если изменение яркости цветовых лучей трактовать как палитры, то к двум основным можно добавить еще два набора палитр.
Графический формат не означает, что на экран нельзя выводить тексты. Их можно выводить обычными операторами вывода; при этом в режимах 4 и 5 число строк равно 25 и число знаков в строке - 40, т.е. совпадает с режимом "узкого" экрана в случае (А). Однако графический режим позволяет создавать собственные, "рисованные" буквы и цифры, которые могут быть меньшего размера и, следовательно, более плотно выводиться на экран; при этом требуется разработка соответственных процедур.
Важным отличием графического формата от текстового при работе с текстами является ОТСУТСТВИЕ КУРСОРА. В связи с этим прикладные системы, использующие графический формат, поддерживают "собственные" курсоры, которые могут иметь любое изображение; однако для вывода такого курсора на экран, как и при выводе рисованных символов, нужны специальные операторы.
Г. Режим 6 также поддерживает графический формат изображения, но с более высокой разрешающей способностью - 640 точек по горизонтали и 200 точек по вертикали. Увеличение разрешающей способности лишает возможности работы с цветными изображениями. Цветов остается только 2 - для фона и линий/знаков. Зато при стандартном выводе текстов в этом режиме число знаков в строке увеличивается до 80, что соответствует "широкому" экрану. Курсор, как и в случае В, отсутствует, поэтому его нужно создавать искусственным образом.
Д. Режим 7 отличается от всех остальных, поскольку ориентирован на поддержку монохромного (черно-белого) монитора. Формат в данном случае - текстовый с 80 знаками в строке. Число строк - 25.
УПРАВЛЕНИЕ РЕЖИМОМ ДИСПЛЕЯ ИЗ ПРИКЛАДНЫХ ПРОГРАММ. Управление рассмотренными выше режимами дисплея на самом нижнем уровне обеспечивается базовой системой ввода/вывода через прерывание 16. Со стороны прикладных программ доступ к некоторым из этих режимов осуществляется через соответствующие стандартные функции языков программирования.
Так, в языке бейсик для этого используются операторы SCREEN и WIDTH. Оператор SCREEN может иметь в качестве первого параметра число 0, 1 или 2. При использовании цветного графического дисплея эти числа соответствуют режимам групп А/Б (0), В (1), Г (2). Оператор WIDTH, в свою очередь, меняет "ширину" экрана, обеспечивая переключение между группами А и Б или В и Г; на это указывает аргумент WIDTH - число 40 или 80. Таким образом, оператор WIDTH является "вторичным" по отношению к оператору SCREEN. Соответствие этих операторов и рассмотренных выше групп режимов иллюстрируется табл.4.2.
Таблица 4.2. Операторы языка бейсик для управления режимом дисплея
В популярной версии языка паскаль - TurboPascal-3.0 - также имеются специальные встроенные процедуры для установки режимов дисплея:
TextMode(BW40) - режим 0 группы А,
TextMode(C40) - режим 1 группы А,
TextMode(BW80) - режим 2 группы Б,
TextMode(C80) - режим 3 группы Б,
GraphMode - режим 4 группы В,
GraphColorMode - режим 5 группы В,
HIRes - режим 6 группы Г.
Как указывалось, при использовании RGB-монитора процедуры одной группы действуют одинаково, т.е. безразлично, например, применяется ли процедура GraphColorMode или GraphMode. В языке TurboPascal-3.0 имеется также процедура выбора палитры - Palette(N), где N - номер палитры, принимающий значения 0 .. 3. Палитры с номерами 2 и 3 являются модификациями палитр с номерами 0 и 1 за счет большей яркости цветов.
В других языках программировании может не быть стандартных процедур такого типа, как в языках бейсик и TurboPascal-3.0, но обычно имеются средства обращения к прерываниям ДОС. Через прерывание 16 можно получить доступ не только к управлению основными режимами дисплея, но и к набору других полезных функций для управления экраном и вывода на него текстовых и графических изображений. К ним, в частности, относятся:
- установка размера курсора для текстового режима,
- чтение текущих координат курсора на экране,
- "прокрутка" дисплейного окна вверх или вниз,
- установка оттенков цветов (цветовой палитры),
- вывод на экран одиночной (цветной) точки,
- "чтение" цвета одиночной точки в графическом режиме и др.
К внутренним функциям ДОС можно обращаться, конечно, и из ассемблерных программ, а к этим программам обращаться, в свою очередь, из программ на языках высокого уровня; однако это уже становится задачей системного программирования, которую может решать далеко не каждый пользователь.
Человеку, который имеет дело с ПЭВМ лишь на уровне общения с ДОС и с некоторыми прикладными программами, для управления дисплеем проще всего воспользоваться специальной утилитой MODE, поставляемой в составе ДОС. Другой вариант управления дисплеем на уровне ДОС - использование управляющих Esc-последовательностей, обрабатываемых драйвером ANSI.SYS.
УПРАВЛЕНИЕ ЭКРАНОМ С ПОМОЩЬЮ КОМАНДЫ MODE. На уровне команд ДОС некоторые режимы дисплея можно устанавливать с помощью системной утилиты MODE. Эта системная программа, поставляемая вместе со стандартным комплектом ДОС, имеет объем около 5 Кбайт. Разместив ее в общедоступном каталоге (например, в \EXE), пользователь получает возможность обращаться к ней как к обычной команде ДОС с целью установки режимов дисплея, а также принтера и коммуникационных каналов. Рассмотрим действие MODE по отношению к дисплею.
В табл. 4.3 представлены варианты аргументов MODE, с помощью которых устанавливаются текстовые режимы работы дисплея.
Таблица 4.3. Действие команды MODE
Первые две разновидности команды MODE должны осуществлять лишь переключение между "узким" и "широким" экраном, т.е. действуют подобно команде WIDTH в языке бейсик.
Четыре следующих разновидности формально производят переключение между режимами групп (А) и (Б), аналогично рассмотренной выше процедуре TextMode в языке TurboPascal-3.0, Однако при использовании RGB-монитора, как указывалось, подавления цвета не происходит, поэтому команда MODE действует совершенно одинаково с аргументами CO40 и BW40. Точно так же для RGB-монитора нет разницы между аргументами CO80 и BW80.
Последняя разновидность команды MODE соответствует режиму 7, т.е. предназначена для работы с монохромным дисплеем.
Из приведенных рассуждений видно, что команда MODE хотя и предоставляет пользователям некоторые возможности, но не дает полного контроля над дисплеем. В частности, эта команда управляет только текстовыми режимами, а переход в соответствующие графические режимы может осуществляться лишь изнутри прикладной программы. Кроме того, нужно иметь возможность выбирать позицию для курсора на экране, устанавливать цвета фона и знаков, "гасить" экран и др. Все эти возможности становятся доступными пользователю, если применить другой метод управления экраном - через драйвер ANSI.SYS.
С помощью команды MODE можно также осуществлять горизонтальный сдвиг изображения относительно светящегося дисплейного поля. Для этого команде MODE дается второй параметр - буква R - для сдвига изображения вправо, буква L - для сдвига влево. Необходимость в этой операции возникает крайне редко.
УПРАВЛЕНИЕ ЭКРАНОМ ЧЕРЕЗ ДРАЙВЕР ANSI.SYS. Драйвер ANSI.SYS - это специальная программа, подключаемая к ДОС через файл конфигурации. Эта программа объемом менее 2 Кбайт предназначена для реализации двух важных функций:
а) обеспечивать управление дисплеем;
б) обеспечивать переопределение символов, вводимых с клавиатуры.
Реализация обеих указанных функций осуществляется с помощью одного и того же приема - в драйвер посылаются особые управляющие последовательности символов (так называемые "Esc-последовательности" или "Esc-команды"), которые и заставляют его осуществлять те или иные операции. Рассмотрим подробнее первую функцию - управление дисплеем.
Общий вид Esc-команды следующий:
<заголовок> <параметры> <код команды>
Где
<заголовок> ::= <символ Esc> <символ [>
<параметры> ::= <параметр> [; ...; <параметр>] | <пусто>
<код команды> ::= <буква английского алфавита>
ЗАГОЛОВКОМ Esc-команды являются два специальных символа; один из них-Esc (специальный символ с внутренним кодом 27), второй - квадратная скобка. Эти символы специально выбраны в столь необычной комбинации, чтобы Esc-последовательности не могли быть спутаны с другими цепочками символов. Драйвер ANSI.SYS, после того как он оказывается подключенным к операционной системе (через файл конфигурации CONFIG.SYS), начинает перехватывать все сообщения, посылаемые на стандартное устройство вывода. Обычно (если не происходило переустановки с помощью команды CTTY) роль стандартного устройства вывода играет экран дисплея. Распознав по заголовку Esc-команду, драйвер ANSI.SYS расшифровывает ее и выполняет то или иное действие, например, меняет режим дисплея, выдает на экран какое-либо сообщение или меняет позицию курсора.
ПАРАМЕТРАМИ Esc-команд являются либо десятичные коды символов в стандарте ASCII, либо строки, ограниченные двойными кавычками. В некоторых командах перед первым числовым параметром может стоять знак равенства. Параметров может быть несколько, и в таком случае они разделяются знаком "точка с запятой".
КОД КОМАНДЫ обозначается одной буквой английского алфавита и является указанием для драйвера, какую именно операцию нужно выполнить. Важно иметь в виду, что одноименные малые и большие буквы обозначают разные коды команд.
В рассматриваемых далее примерах употребляется трехбуквенное обозначение символа Esc, однако фактически в Esc-командах должен фигурировать один символ с внутренним кодом 27. Ввести его с клавиатуры можно разными способами; например, при работе в текстовых редакторах АБВ или Лексикон, разработанных в ВЦ АН СССР, для ввода символа Esc нужно одновременно нажать клавиши Ctrl и [, На экране этот символ изображается специальным знаком.
Наиболее часто используются Esc-команды управления экраном, иллюстрируемые следующими примерами:
Esc[=3h - установка режима экрана с кодом 3 (80зн./стр.),
Esc[6;1Н - установка курсора в 6-ю строку на 1-ю позицию,
Esc[31m - установка красного цвета букв,
Esc[2J - гашение экрана,
Esc[s - сохранение текущей позиции курсора,
Esc[u - восстановление сохраненной позиции курсора,
Esc[k - стирание символов от текущей позиции до конца строки.
Реже употребляются команды относительного перемещения курсора. Примеры таких команд:
Esc[1A - сдвиг курсора вверх на 1 строку, не меняя позицию,
Esc[5B - сдвиг курсора вниз на 5 строк, не меняя позицию,
Esc[15C - сдвиг курсора вправо на 15 позиций,
Esc[12D - сдвиг курсора влево на 12 позиций.
Имеется также возможность управлять режимом ввода длинных строк, концы которых выходят за правый край экрана:
Esc[?7h - перенос конца длинной строки на следующую строчку экрана,
Esc [?7l - отбрасывание конца строки, выходящего за пределы экрана (здесь код команды - малая английская буква "эль").
При использовании монохромного дисплея можно управлять атрибутами выводимых на экран знаков, выделяя их с помощью усиления яркости, подчеркивания, мигания, задания инвертированного ("негативного") изображения. В цветном дисплее можно также устанавливать повышенную яркость знаков, инвертировать их цвет, выводить в мигающем режиме. Для управления атрибутами символов применяются Esc-последовательности вида:
Esc[Xm
Esc[X;Ym
Esc[X;Y;Zm
Здесь вместо символов X, Y, Z ставятся коды управления атрибутами. В табл.4.4 приведена сводка кодов, управляющих цветами знаков, цветом фона и атрибутами выделения символов. Указанные управляющие коды могут подставляться в любой комбинации в эти последовательности.
Таблица 4.4. Коды управления атрибутами символов
К числу особых функций драйвера ANSI.SYS, которые могут применяться в системных программах, относится команда Esc[6n. Эта команда считывает с экрана координаты текущего положения курсора: Y - номер строки, X - номер позиции в строке. Затем формируется специальная символьная последовательность вида: CHR(27)[Y;XR. Эта последовательность посылается на стандартное устройство ввода, откуда прикладные программы обычно читают входные данные. Значения X и Y в указанной последовательности представлены двухразрядными целыми числами. Проиллюстрируем, каким образом можно получить целочисленные значения X и Y в прикладной программе на паскале. Для этого можно применить, например, следующую последовательность операторов:
WRITE(CHR(27),'[6n');
READ(S);
VAL(COPY(S,3,2),Y,R);
VAL(COPY(S,6,2),X,R);
Первый из этих операторов посылает на экран вышеуказанную Esc-последовательность, второй читает со стандартного входа полученный ответ в виде текстовой строки. Последние два оператора выделяют из полученной строки S по два символа, представляющих соответственно значения Y и X, и переводят их в целочисленные представления.
Использование драйвера ANSI.SYS не покрывает всех возможностей управления экраном, которые скрыты во внутренних функциях ДОС, однако все же дает пользователю достаточно мощный инструмент для создания различных зрительных эффектов, часто применяющихся при формировании операционной обстановки.
Драйвер ANSI.SYS имеет и другой недостаток - вывод символов на экран происходит гораздо медленнее, чем при прямом использовании функций ДОС через прерывание 16. Тем не менее использование ANSI.SYS удобно, так как с его помощью пользователь сам может достаточно просто выполнять основные управляющие воздействия при работе с экраном.
В заключение следует отметить, что во многих современных языках программирования для ПЭВМ - бейсик, паскаль и др.- имеются встроенные или поставляемые в виде текстовых модулей процедуры и функции, обеспечивающие удобную работу с экраном. Например, в популярной системе программирования TurboPascal-3.0 имеются следующие группы функций и процедур:
- управление режимами экрана,
- удаление/вставка экранных строк в текстовом режиме,
- установка/перемещение курсора в текстовом режиме,
- работа с текстовыми и графическими окнами,
- вывод на экран (цветных) точек и рисование линий,
- выделение и вторичное наложение изображений,
- рисование окружностей, дуг, закраска областей.
Имеется также отдельный пакет с процедурами и функциями так называемой "черепашьей" графики, на основе которой строятся учебные прикладные программы с использованием различных графических эффектов.
Многие модели ПЭВМ, использующие ДОС в качестве основной операционной системы, могут иметь несколько иную организацию и режимы дисплея, по сравнению с машинами типа IBM PC, EC1840/1841 и им подобными. В частности, могут встречаться следующие особенности:
- монохромный дисплей может использоваться не только в текстовом, но и в графическом режиме; при этом почти все вышеприведенные рассуждения остаются правильными, но только вместо настоящих цветов используются оттенки черного и белого цвета, инверсия, мерцание и другие способы выделения символов;
- разрешающая способность дисплея в цветном режиме может быть в несколько раз больше - 640*350 или даже 640*400 точек при 16 или 256 доступных цветах (это имеет место, например, в машинах класса IBM PC-XT с "усовершенствованным" или "профессиональным" графическим адаптером и монитором);
- может иметься аппаратная поддержка для одновременного и независимого вывода на экран графических и текстовых изображений, что дает гораздо больше возможностей для организации интерфейса с пользователем.
Хотя указанные особенности могут потребовать других соглашений по управлению дисплеем, тем не менее рассмотренные выше общие принципы остаются в силе и переход на ПЭВМ с другими характеристиками дисплеев не представит больших затруднений.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Брябрин. Программное обеспечение персональных ЭВМ. 1990
4.2. УПРАВЛЕНИЕ ВВОДОМ С КЛАВИАТУРЫ
Клавиатура - это главное средство ввода в ПЭВМ информации от пользователя, поэтому естественно, что обеспечение гибкости в обработке сигналов с клавиатуры крайне важно для создания эффективных информационных систем на персональных компьютерах. Стандартная клавиатура ПЭВМ имеет несколько групп клавиш. На рис.4.1 схематически показано размещение основных групп клавиш на машинах типа IBM PC. Для простоты здесь не показаны символы со знаками препинания и знаками арифметических операций, которые размещаются на тех же клавишах, что и цифры. На отечественных машинах типа ЕС1840/1841, Искра-1130 и других общая схема размещения клавиш принята примерно такой же, как и на машинах типа IBM PC; при этом буквы русского алфавита наносятся на клавиши вместе с буквами латинского алфавита. Их расположение иллюстрирует рис.4.2, однако следует иметь в виду, что русские названия управляющих клавиш на рис.4.2 условны - реально они могут быть представлены условными значками или другими сокращенными названиями.
Рис.4.1. Схема размещения клавиш на клавиатуре IBM PC
Рис.4.2. Схема размещения клавиш на клавиатуре для советских ПЭВМ
Основные группы клавиш:
A) алфавитно-цифровые и знаковые клавиши (с символами A ... Z, А ... Я, 0 ... 9, знаками пунктуации, знаками арифметических операций), а также специальные клавиши Esc, Tab, Enter, BackSp;
Б) функциональные клавиши (F1 .. F10);
B) служебные клавиши для управления перемещением курсора (стрелки Up, Down, Left, Right, Home, End, PgDn, PgUp и клавиша, обозначенная значком []);
Г) служебные клавиши для управления редактированием (Ins, Del);
Д) служебные клавиши для смены регистров и модификации кодов других клавиш (Alt, Ctrl, Shift);
Е) служебные клавиши для фиксации регистров (CapsLock, ScrollLock, NumLock);
Ж) разные вспомогательные клавиши (PrtSc, дополнительные клавиши со знаками + и - и др.).
На персональных компьютерах применена новая, по сравнению с обычными терминалами больших ЭВМ, методика обработки сигналов клавиатуры. Можно выделить три уровня представления и обработки сигналов, поступающих с клавиатуры - физический, логический и функциональный.
ФИЗИЧЕСКИЙ уровень имеет дело с сигналами, которые поступают в системный блок при нажатии и отпускании клавиш. В основе кодирования поступающих от клавиатуры сигналов лежит обычная нумерация клавиш по порядку от 1 до N, где N - общее число клавиш на клавиатуре (в машинах типа IBM PC N=83). При нажатии любой клавиши в системный блок посылается код, соответствующий ее ПОРЯДКОВОМУ номеру, который называют еще СКЭН-КОДОМ клавиши (от англ. scan-code). При отпускании клавиши также генерируется ее номер, увеличенный на 128 (дополнительный скэн-код).
Если клавиша оказывается нажата дольше, чем 0.6с, то автоматически начинает генерироваться последовательность ее основных скэн-кодов с частотой 10 раз в секунду, что имитирует серию очень быстрых нажатий этой клавиши.
На ЛОГИЧЕСКОМ уровне, реализуемом базовой системой ввода/вывода ДОС через прерывание 9, происходит трансляция поступающего с клавиатуры скэн-кода в специальный 2-байтовый код. Младший из двух байтов для клавиш группы А) содержит ASCII-код, соответствующий изображенному на клавише знаку. Этот байт называют ГЛАВНЫМ. Старший байт - ВСПОМОГАТЕЛЬНЫЙ - содержит исходный скэн-код нажатой клавиши.
Генерируемый код определяется, вообще, тем, к какой группе относится нажатая клавиша, и тем, нажата ли одна клавиша или некоторая их комбинация. Так, например, при нажатии одиночной клавиши, относящейся к функциональным или служебным клавишам групп Б), В), Г), или при одновременном нажатии некоторых клавиш главный байт содержит не ASCII-код, а 0. Это позволяет проверить важный факт, свидетельствующий о том, что нажатая в данный момент клавиша не относится к алфавитно-цифровой группе А). Вспомогательный байт при этом содержит уникальный номер, совпадающий со скэн-кодом нажатой клавиши, или же он соответствует определенной комбинации одновременно нажатых клавиш.
Сочетание главного и вспомогательного кода, когда первый из них равен 0, называют РАСШИРЕННЫМ ASCII-кодом.
На ФУНКЦИОНАЛЬНОМ уровне отдельным клавишам программным путем сопоставляются определенные функции, которые реализуются при нажатии этих клавиш. Клавишам могут приписываться последовательности символов или команды смены режимов, смены дисплейных окон и др. Такое "программирование" клавиш, в частности, может осуществляться с помощью драйвера ANSI.SYS, о чем еще будет идти речь ниже.
Имеется ряд коммерческих программ, которые обеспечивают программное переопределение клавиш прямо по ходу рабочего сеанса. Многие прикладные системы - текстовые редакторы, интегрированные пакеты, графические системы - сами переопределяют клавиши для своих целей, причем делают это многократно, в зависимости от режимов работы. Транслятор языка бейсик, например, поддерживает операторы, позволяющие сопоставлять клавишам различные действия или текстовые строки.
ОСОБЕННОСТИ КОДИРОВАНИЯ ОСНОВНЫХ ГРУПП КЛАВИШ. Клавиши группы А) генерируют простые ASCII-коды, обычно соответствующие начертанным на клавишах знакам. Однако эти коды могут модифицироваться в зависимости от того:
а) не нажата ли в это же время одна из клавиш модификации регистра - из группы Д),
б) не был ли зафиксирован до этого другой регистр, т.е. не была ли ранее нажата клавиша из группы Е).
Простая модификация приводит к тому, что вместо одного простого ASCII-кода генерируется другой - симметричный ему (например, вместо кода большой буквы A = 65 выдается код малой буквы a = 97). Такие симметричные ASCII-коды для одноименных букв обычно отличаются на одну и ту же величину (32).
Другой вид модификации приводит к генерации расширенного ASCII-кода, состоящего реально из двух кодов. Способ представления и интерпретации расширенных ASCII-кодов будет подробнее рассмотрен ниже.
Клавиши групп Б), В) и Г) называют специальными. При их нажатии генерируются не простые, а расширенные ASCII-коды. Если вдобавок в момент нажатия такой клавиши одновременно оказывается нажатой еще и клавиша группы Д) - Alt, Ctrl или Shift, то при этом также генерируются расширенные ASCII-коды, но отличные от кодов одиночных клавиш. Таким образом, набор кодов, которые могут генерироваться при различных комбинациях клавиш, довольно велик, что обеспечивает богатство возможностей по управлению ПЭВМ со стороны пользователя.
Клавиши групп Д) и Е) не генерируют ни простых, ни расширенных ASCII-кодов. Они, как показано выше, лишь оказывают влияние на модификацию кодов клавиш групп А)-Г). Однако текущее состояние этих клавиш фиксируется в отдельных битах выделенной ячейки памяти ДОС.
Клавиши группы Ж) - с символами PrtSc и *, с дополнительными знаками + и -, а также другие клавиши, которые могут иметься на разных модификациях клавиатур, обычно вырабатывают такие же ASCII-коды, как и другие клавиши с этими знаками. Но используются они чаще в других целях.
Например, в известной системе Framework эти клавиши играют роль управляющих; при этом используются их скэн-коды, а не ASCII-коды. Точно так же в популярной имитационной игре Flight Simulator - "Тренажер пилота" для управления "полетом" используются клавиши Shift, расположенные в двух половинах клавиатуры - левой и правой. Это оказывается возможным благодаря тому, что скэн-коды этих клавиш различны.
ОСОБЫЕ КОМБИНАЦИИ КЛАВИШ. Имеется несколько особых комбинаций клавиш, обрабатываемых уникальным образом. При одновременном нажатии клавиш, входящих в такие выделенные комбинации, базовая система ввода/вывода анализирует их скэн-коды и осуществляет внутрисистемные прерывания, вызывающие определенные события. В табл.4.5 представлен перечень таких комбинаций.
Таблица 4.5. Особые комбинации клавиш
Таблица 4.6. Коды, вырабатываемые некоторыми комбинациями клавиш
Некоторые комбинации клавиш вырабатывают ASCII-коды управляющих сигналов, используемых часто для управления внешними устройствами, в частности, принтером и коммуникациями.
ТАБЛИЦА ASCII-КОДОВ. Внутреннее представление символов в ПЭВМ осуществляется на основе определенной системы кодирования символов, которая может быть представлена в виде кодовой таблицы. Кодовая таблица указывает на соответствие между изображениями или условными обозначениями символов и их внутренними числовыми кодами. Коды обычно представляют шестнадцатеричными или десятичными числами.
Кодовая таблица должна допускать представление следующих групп символов:
- управляющие символы,
- знаки арифметических операций, знаки препинания и цифры,
- буквы латинского алфавита,
- буквы национальных алфавитов,
- символы псевдографики,
- математические символы.
Управляющие символы используются для специальных целей управления печатающими устройствами, а также в качестве маркеров и ограничителей при передаче символьной информации по линиям связи.
Знаки арифметических операций, знаки препинания, некоторые специальные символы (процент, амперсенд, ...) и цифры необходимы для представления текстовой и числовой информации.
Буквы латинского алфавита служат для представления текстовой информации на языках, использующих латинский алфавит, а также для представления текстов программ на языках ассемблеров и языках высокого уровня - фортран, паскаль, си и др.
Буквы национальных алфавитов служат для представления текстовой информации на разных языках. Для советских ПЭВМ в первую очередь, конечно, необходим русский алфавит.
Символы псевдографики используются для построения простых графических изображений в текстовом режиме. С помощью этих символов на экране дисплея и на печатающих устройствах изображаются различные рамки, простейшие (прямоугольные) фигуры, штриховки и пр. Такие символы могут использоваться для изображения столбиковых гистограмм, графических схем и других несложных графических объектов.
Математические и другие специальные символы (сумма, тождество, больше или равно, меньше или равно и пр.) используются для представления математических формул и выражений, для обозначения денежных единиц и др.
В табл. 4.7, 4.8, 4.9 и 4.10 представлена кодировка символов, используемых в современных ПЭВМ. Приведенные кодовые таблицы определяют способ представления информации в памяти ПЭВМ и на внешних носителях, а также кодирование знакогенераторов дисплеев и принтеров. Указанные таблицы разбиты на столбцы, каждый из которых идентифицируется шестнадцатеричным числом, соответствующим коду первого символа в данном столбце. Чтобы определить шестнадцатеричный код любого символа, необходимо найти его в соответствующем столбце и затем к коду, идентифицирующему данный столбец, прибавить номер позиции, в которой находится данный символ (позиции нумеруются шестнадцатеричными числами от 0 до F). Так, например, латинская буква A находится в 1-й позиции столбца 40 в табл.4.7, поэтому ее шестнадцатеричный код равен 41. Для получения десятичных кодов можно воспользоваться табл.4.11.
Таблица 4.7. Основная таблица ASCII (16-ричные коды)
Таблица 4.8. Расширение таблицы ASCII (знакогенератор IBM PC)
Таблица 4.9. Расширение таблицы ASCII (знакогенератор с русским шрифтом - основной вариант)
Таблица 4.10. Расширение таблицы ASCII (знакогенератор с русским шрифтом - альтернативный вариант)
Таблица 4.11. Получение десятичного кода по шестнадцатеричному
В табл. 4.7 представлены управляющие сигналы и символы с 16-ричными кодами от 0 до 7F (десятичные коды от 0 до 127). Эта часть кодовой таблицы соответствует стандарту кодирования информации ASCII и используется в большинстве ПЭВМ, совместимых с IBM PC. Ее называют основной таблицей ASCII. Для кодирования символов здесь используются лишь 7 битов.
Следует иметь в виду, что первые 32 кода (от 0 до 1F) в основной таблице ASCII являются управляющими; они служат для представления сигналов, которые имеют специальное назначение при выводе информации на печатающие устройства, а также при передаче ее по линиям связи. Часть управляющих кодов, хотя и зарезервирована для специальных функций, но фактически может использоваться по усмотрению разработчиков отдельных систем. Чтобы иметь возможность как-то ссылаться на управляющие коды, применяется обозначение CHR(N) или CHR$(N). Такое обозначение понимается как символ, код которого равен N. В языках паскаль и бейсик эти обозначения используются как вызовы функций, вырабатывающих соответствующие символы. Управляющим кодам часто сопоставляются специальные изображения (см. два первых столбца табл.4.7). Эти изображения не фиксируются стандартом ASCII. Их реальный вид на экране зависит от знакогенератора дисплея.
Другие коды основной таблицы ASCII используются для кодирования знаков пунктуации и арифметических операций, цифр и букв латинского алфавита.
Вторая половина таблицы с 16-ричными кодами от 80 до FF (десятичные коды от 128 до 255) является расширением стандарта ASCII и, вообще говоря, может изменяться в разных моделях ПЭВМ. Для кодирования каждого символа в этой части таблицы необходимы уже 8 битов. Во второй половине таблицы чаще всего размещают символы национальных алфавитов (в частности, русского), символы псевдографики, а также математические и другие символы.
В табл. 4.8 представлены символы с кодами 80-FF, соответствующие стандартному знакогенератору IBM PC. В табл.4.9 представлен один из вариантов расширения ASCII-таблицы с русскими буквами. Здесь русские буквы размещены в столбцах с кодами B0, C0, D0, E0, что соответствует рекомендациям международной организации по стандартизации ISO. Символы псевдографики в этой таблице оказываются в столбцах 80, 90, A0, поэтому здесь возникает расхождение с принятой кодировкой этих символов в машине IBM PC. Данная таблица вместе с основной таблицей ASCII (табл.4.7) рекомендуется для применения на отечественных ПЭВМ.
В табл. 4.10 приведен альтернативный вариант расширения ASCII-таблицы с русскими буквами. Этот вариант отличается от представленного в табл.4.9 тем, что символы псевдографики находятся на тех же кодовых позициях, что и в стандартной таблице для IBM PC (табл.4.8 ), а русские буквы занимают столбцы 80, 90, A0 и E0. При этом обеспечивается возможность использования зарубежных коммерческих программ без какой бы то ни было их настройки на новую кодировку символов псевдографики, но русские буквы размещены несколько неудобно: их нормальная последовательность прерывается символами псевдографики. Указанное неудобство сравнительно легко преодолевается программным путем. Данная таблица рекомендуется для применения в знакогенераторах закупаемых зарубежных ПЭВМ. Для выполнения необходимых преобразований над текстами в случае применения знакогенераторов с альтернативной кодировкой можно использовать специальную управляющую программу - драйвер. Такой драйвер загружается в оперативную память в начале рабочего сеанса и, оставаясь резидентным, перехватывает все символы с кодами 80-FF, которые посылаются прикладными программами для вывода на дисплей. Перехваченные коды символов анализируются и, если требуется, преобразуются в другие коды, так чтобы знакогенератор дисплея воспроизводил их правильные изображения. Драйвер такого типа (ALFA.EXE) разработан в ВЦ АН СССР А.А.Чижовым. Он используется на зарубежных ПЭВМ, в которые устанавливаются знакогенераторы с русским алфавитом.
Помимо перехвата и перекодировки символов, выводимых на дисплей, драйвер ALFA.EXE выполняет еще одну важную функцию - переключение между двумя половинами кодовой таблицы при вводе символов с клавиатуры. Реализуется это следующим образом. При нажатии клавиши CapsLock срабатывает двоичный переключатель, который затем управляет способом восприятия вводимых алфавитно-цифровых символов. При одном положении этого переключателя нажатие алфавитно-цифровых клавиш приводит к генерации на выходе клавиатуры латинских букв, при другом положении переключателя генерируются буквы русского или другого национального алфавита.
Чтобы вывести кодовую таблицу на экран, можно применить программу на языке бейсик, приведенную ниже. В этой программе при значении переменной H=0 будет выведена первая половина таблицы, исключая коды 0 .. 31, а при H=128 - вторая половина. Каждая половина содержит по 32 строки и 4 колонки:
10 FOR I=0 TO 31
20 FOR J=0 TO 3
30 K=H+(H-J*32)
40 PRINT K;
50 IF J=0 AND H=0 THEN PRINT " ";
60 ELSE PRINT " "+CHR$(K);
70 NEXT J
80 PRINT CHR$(13);
90 NEXT I
100 RETURN
РАСШИРЕННЫЕ ASCII-КОДЫ. Кодирование специальных клавиш, относящихся к группам Б), В), Г), а также модифицированных клавиш группы А) осуществляется расширенным ASCII-кодом, который представляется 2-байтовыми последовательностями. Первый байт является служебным и равен 0; второй байт - информационный. Его код равен порядковому номеру клавиши, т.е. совпадает со скэн-кодом. Благодаря указанному методу исключается совпадение кодов специальных клавиш с кодами основных символов ASCII.
С помощью расширенных ASCII-кодов кодируются сигналы следующих клавиш и комбинаций:
- функциональных (F1, F2, ... F10);
- удаления и вставки (Del и Ins);
- перемещения курсора (стрелки, Home, End, [], PgUp, PgDn);
- Alt+(другая клавиша);
- Ctrl+(другая клавиша);
- Shift+Tab.
В табл.4.12 приведены коды информационных байтов для всех комбинаций клавиш, вырабатывающих расширенные ASCII-коды.
Та блица 4.12. Информационные байты расширенных кодов ASCII
ОСОБЕННОСТИ ДЕЙСТВИЯ НЕКОТОРЫХ КЛАВИШ. Эффект действия любой клавиши, вообще говоря, задается прикладной программой, причем этот эффект может быть разным, в зависимости от состояния прикладной программы. Однако за некоторыми клавишами закрепляются определенные постоянные функции, которые применяются наиболее часто. Ниже приводится описание таких типичных функций.
Клавиша Enter (Исполнение или Ввод) используется для завершения набираемой цепочки символов, в частности, для завершения любой команды ДОС, набираемой на клавиатуре. Десятичный ASCII-код этого сигнала - 13. Другие английские обозначения этой клавиши - Return, CarriageReturn, CR. Располагается она справа от алфавитно-цифровой группы.
Клавиша Backspace (Стирание влево) используется для стирания символа, находящегося слева от курсора. Десятичный ASCII-код этого сигнала - 8. Клавиша располагается обычно справа вверху от алфавитно-цифровой группы.
Клавиша Del (Удаление символа) используется для удаления символа, находящегося над курсором. Посылаемый сигнал кодируется расширенным ASCII-кодом, информационный байт которого равен 83.
Клавиша Ins (Вставка символа) используется для переключения между двумя режимами ввода символов:
- ввод с раздвижной строки (вставка);
- ввод с перебивкой ранее набранных символов (замена).
Английские названия этих режимов - "Insert" и "Overtype". Посылаемый сигнал кодируется расширенным ASCII-кодом, информационный байт которого равен 82.
Клавиша CapsLock (Фиксация верхнего регистра) предназначена для того, чтобы при нажатии алфавитных клавиш получать коды заглавных букв. При этом после нажатия CapsLock действие клавиши Shift изменяется на противоположное.
Однако клавиша CapsLock может использоваться и для других целей. В частности, упомянутый выше драйвер ALFA.EXE использует эту клавишу для переключения между латинским и русским алфавитом. Фиксация же верхнего регистра осуществляется в этом случае одновременным нажатием клавиш Shift и Caps-Lock.
Клавиша ScrollLock (Блокировка прокрутки) часто используется в текстовых редакторах и других прикладных системах, чтобы блокировать или разблокировать режим прокрутки изображения на экране. Но у нее может быть и другое назначение в различных прикладных программах.
Клавиша NumLock (Блокировка цифр) воздействует на ДОС, заставляя систему по-разному воспринимать клавиши управления курсором, размещенные в правой части клавиатуры (группа В)). После однократного нажатия NumLock девять клавиш в правой части клавиатуры - стрелки Up, Down, Left, Right, Home, End, PgUp, PgDn и клавиша с цифрой 5 - начинают выдавать ASCII-коды, соответствующие цифрам 1, 2, 3, 4, 5, 6, 7, 8 и 9. Кроме того, клавиша Ins также начинает выдавать код, соответствующий цифре 0. Таким образом, эти клавиши образуют как бы дополнительную цифровую клавиатуру, на которой числа можно набирать с большей скоростью. Клавишу с цифрой 5 будем обозначать <5>.
Все три клавиши - CapsLock, ScrollLock и NumLock - действуют как двоичные переключатели (английский термин для клавиш такого типа - toggle), т.е. при их чередующихся нажатиях происходит переход из одного режима в другой и обратно. ASCII-кодов они не вырабатывают, но устанавливают в 0 или 1 специальные биты в двух байтах внутренней памяти ДОС с шестнадцатеричными адресами 417 и 418. Прикладная программа может анализировать эти биты и принимать решения о тех или иных действиях.
Клавиши группы В), к которым относятся стрелки Left, Right, Up, Down (Вправо, Влево, Вверх, Вниз), а также клавиши Ноте, End, PgUp, PgDn (Начало, Конец, Страница Вверх, Страница Вниз) и клавиша <5> в центре этой группы обыкновенно служат трем целям:
Во-первых, они удобны для управления перемещением курсора на экране, что и используется в прикладных системах - как в текстовых режимах, так и в графических. В таком режиме эти клавиши выдают расширенные ASCII-коды (табл.4.12).
Во-вторых, после нажатия NumLock эти клавиши, а также клавиша Ins, как уже сказано, образуют дополнительную цифровую клавиатуру.
В-третьих, они используются для ввода символов с произвольными ASCII-кодами, в том числе не представимыми другими способами. Делается это так:
1. Нажимается (и не отпускается) клавиша Alt.
2. Нажимаются поочередно клавиши с цифрами, соответствующие коду вводимого символа, например, 1, 9, 6.
3. Отпускается нажатая клавиша Alt.
В результате в текущую позицию, указываемую курсором, вводится символ CHR(196), изображаемый на экране горизонтальной чертой. Указанный способ ввода символов называют иногда Alt-вводом, Alt-ввод действует вне зависимости от состояния клавиши NumLock.
УПРАВЛЕНИЕ КЛАВИАТУРОЙ С ПОМОЩЬЮ ДРАЙВЕРА ANSI.SYS. В предыдущем разделе была рассмотрена одна из функций системного драйвера ANSI.SYS - управление дисплеем. Рассмотрим теперь его вторую функцию, связанную с переопределением кодов, поступающих с клавиатуры. Эта возможность позволяет приписывать некоторым клавишам или их комбинациям целые цепочки символов. При нажатии запрограммированных таким образом клавиш в системный блок ПЭВМ посылаются не одиночные коды (или пары кодов), а приписанные им цепочки символов. В этих цепочках могут содержаться часто используемые команды ДОС или любые текстовые фрагменты. Они могут использоваться также и прикладными программами для получения с клавиатуры каких-либо стандартных сообщений.
Переопределение кодов клавиш осуществляется путем посылки в драйвер ANSI.SYS управляющей последовательности вида:
Esc[ <расширенный/ASCII код клавиши>; <определение_клавиши> p
В этой последовательности заголовок имеет такой же вид, как и при управлении экраном, т.е. состоит из двух символов: Esc и квадратной скобки. Кодом команды является малая английская буква p. Главное содержание команды сосредоточено в двух ее частях, разделяемых знаком "точка с запятой".
Первая (левая) часть содержит простой или расширенный ASCII-код клавиши, вторая (правая) часть - ту цепочку символов, которая должна генерироваться при нажатин данной клавиши.
Пример 1. Покажем, как можно функциональным клавишам приписать тексты наиболее часто используемых команд ДОС:
Esc[0;62;"а:"р - клавише F4 приписывается текст "а:";
Esc[0;64;"type "p - клавише F6 приписывается текст "type ".
Можно генерировать не только текстовые цепочки, но и управляющие символы, для чего в правую часть просто включается соответствующий десятичный код символа, отделяемый знаком "точка с запятой" от других компонентов определения.
Пример 2. Клавиша "Исполнение" имеет код 13. Можно имитировать нажатие этой клавиши, включив в определяющую цепочку указанный код. В нижеследующих примерах определения функциональных клавиш составляются из текстовых строк, за которыми следует код клавиши "Исполнение":
Esc[0;112;"cd\work";13p - при нажатии Alt-F9 посылается полностью сформированная команда CD\WORK;
Esc[0;113;"exit";13p - при нажатии Alt-F10 посылается полностью сформированная команда EXIT (эта команда используется для возврата в приостановленную программу).
Приписывать новые определения можно не только функциональным, но и любым алфавитно-цифровым клавишам, а также некоторым управляющим клавишам (например, стрелкам). Но, конечно, делать это для основных ASCII-кодов неразумно, поскольку тогда соответствующие клавиши потеряют свое исходное назначение - генерировать коды изображенных на ннх символов. Переопределять имеет смысл лишь модифицированные коды алфавитно-цифровых и управляющих клавиш, т.е. их Alt-, Ctrl- и Shift-коды.
Пример 3. При необходимости часто использовать каталог, на который указывает сложный маршрут, можно приписать текст этого маршрута Alt-коду соответствующей клавиши:
Esc[0;48;"\papers\book"p
Такая Esc-команда приписывает расширенному Alt-коду клавиши "B" текст маршрута "\papers\book". После этого можно, нажимая Alt-B, выдавать в ДОС указанный текст. Генерировать его будет драйвер ANSI.SYS.
Пример 4. Рассмотрим пример командного файла FKEYS.BAT, который упоминался в предыдущей главе. Единственное его назначение состоит в приписывании некоторым функциональным клавишам, а также их Alt-модификациям часто используемых фрагментов команд.
echo off
echo Esc[0;62;"a:"p Esc[0;107;"c:"p
echo Esc[0;64;"type "p Esc[0;109;"mode co80";13p
echo Esc[0;66;"dir "p Esc[0;111;"dirs *.*";13p
echo Esc[0;67;"cd "p Esc[0;112;"cd\work";l3p
echo Esc[0;68;"copy "p Esc[0;113;"exit";13p
echo Переопределение функциональных клавиш:
echo
echo F4 - "a:", Alt F4 - "с:",
echo F6 - "type ", Alt F6 - "mode co80" (норм, экран),
echo F8 - "dir ", Alt F8 - "dirs *.*" (объем директория),
echo F9 - "cd ", Alt F9 - "cd \work" (рабочий директорий),
echo F10 - "copy", Alt F10 - "exit" (возврат).
В строчках со 2-й по 6-ю с помощью команд ECHO в драйвер ANSI.SYS посылаются Esc-последовательности, осуществляющие переопределения клавиш. Напомним, что вместо трех букв Esc всюду в приведенных примерах должен употребляться один символ с десятичным кодом 27. Его можно вводить в текстовом редакторе, нажимая Ctrl-f, или с помощью Alt-ввода. Остальные строчки содержат команды ECHO, которые просто выдают на экран сообщения о сделанных переопределениях.
Приведенный выше текст можно прямо включить в файл автозапуска AUTOEXEC.BAT, исключив из него обращение к FKEYS.BAT.
Нам остается обсудить одни важный вопрос: "Как сформировать Esc-последовательности и передать их для обработки драйверу ANSI.SYS?" Для этого есть несколько путей.
1. Включить Esc-последовательности в состав аргумента команды PROMPT. При этом вместо символа Esc, как указывалось, нужно ввести знаки $e, а остальная часть последовательности вводится, как обычная текстовая строка. Примеры такого задания рассмотрены в разд.2.7.
2. Включить Esc-последовательности в командный файл в качестве аргументов команд ECHO. Примеры этого рассмотрены выше.
3. Сформировать любым способом текстовый файл с Esc-последовательностями и направить этот файл на дисплей. Если, например, имя такого файла - E.TXT, то для его посылки на дисплей можно использовать команды:
type e.txt или copy e.txt con.
Во втором примере символ CON означает "консоль", что в данном контексте соответствует экрану дисплея.
Таковы основные приемы управления клавиатурой. Отметим еще, что при системном программировании можно пользоваться следующими прерываниями ДОС для доступа к функциям управления клавиатурой:
Подробное описание указанных прерываний имеется в технических руководствах по ДОС.
Клавиатура - это главное средство ввода в ПЭВМ информации от пользователя, поэтому естественно, что обеспечение гибкости в обработке сигналов с клавиатуры крайне важно для создания эффективных информационных систем на персональных компьютерах. Стандартная клавиатура ПЭВМ имеет несколько групп клавиш. На рис.4.1 схематически показано размещение основных групп клавиш на машинах типа IBM PC. Для простоты здесь не показаны символы со знаками препинания и знаками арифметических операций, которые размещаются на тех же клавишах, что и цифры. На отечественных машинах типа ЕС1840/1841, Искра-1130 и других общая схема размещения клавиш принята примерно такой же, как и на машинах типа IBM PC; при этом буквы русского алфавита наносятся на клавиши вместе с буквами латинского алфавита. Их расположение иллюстрирует рис.4.2, однако следует иметь в виду, что русские названия управляющих клавиш на рис.4.2 условны - реально они могут быть представлены условными значками или другими сокращенными названиями.
Рис.4.1. Схема размещения клавиш на клавиатуре IBM PC
Рис.4.2. Схема размещения клавиш на клавиатуре для советских ПЭВМ
Основные группы клавиш:
A) алфавитно-цифровые и знаковые клавиши (с символами A ... Z, А ... Я, 0 ... 9, знаками пунктуации, знаками арифметических операций), а также специальные клавиши Esc, Tab, Enter, BackSp;
Б) функциональные клавиши (F1 .. F10);
B) служебные клавиши для управления перемещением курсора (стрелки Up, Down, Left, Right, Home, End, PgDn, PgUp и клавиша, обозначенная значком []);
Г) служебные клавиши для управления редактированием (Ins, Del);
Д) служебные клавиши для смены регистров и модификации кодов других клавиш (Alt, Ctrl, Shift);
Е) служебные клавиши для фиксации регистров (CapsLock, ScrollLock, NumLock);
Ж) разные вспомогательные клавиши (PrtSc, дополнительные клавиши со знаками + и - и др.).
На персональных компьютерах применена новая, по сравнению с обычными терминалами больших ЭВМ, методика обработки сигналов клавиатуры. Можно выделить три уровня представления и обработки сигналов, поступающих с клавиатуры - физический, логический и функциональный.
ФИЗИЧЕСКИЙ уровень имеет дело с сигналами, которые поступают в системный блок при нажатии и отпускании клавиш. В основе кодирования поступающих от клавиатуры сигналов лежит обычная нумерация клавиш по порядку от 1 до N, где N - общее число клавиш на клавиатуре (в машинах типа IBM PC N=83). При нажатии любой клавиши в системный блок посылается код, соответствующий ее ПОРЯДКОВОМУ номеру, который называют еще СКЭН-КОДОМ клавиши (от англ. scan-code). При отпускании клавиши также генерируется ее номер, увеличенный на 128 (дополнительный скэн-код).
Если клавиша оказывается нажата дольше, чем 0.6с, то автоматически начинает генерироваться последовательность ее основных скэн-кодов с частотой 10 раз в секунду, что имитирует серию очень быстрых нажатий этой клавиши.
На ЛОГИЧЕСКОМ уровне, реализуемом базовой системой ввода/вывода ДОС через прерывание 9, происходит трансляция поступающего с клавиатуры скэн-кода в специальный 2-байтовый код. Младший из двух байтов для клавиш группы А) содержит ASCII-код, соответствующий изображенному на клавише знаку. Этот байт называют ГЛАВНЫМ. Старший байт - ВСПОМОГАТЕЛЬНЫЙ - содержит исходный скэн-код нажатой клавиши.
Генерируемый код определяется, вообще, тем, к какой группе относится нажатая клавиша, и тем, нажата ли одна клавиша или некоторая их комбинация. Так, например, при нажатии одиночной клавиши, относящейся к функциональным или служебным клавишам групп Б), В), Г), или при одновременном нажатии некоторых клавиш главный байт содержит не ASCII-код, а 0. Это позволяет проверить важный факт, свидетельствующий о том, что нажатая в данный момент клавиша не относится к алфавитно-цифровой группе А). Вспомогательный байт при этом содержит уникальный номер, совпадающий со скэн-кодом нажатой клавиши, или же он соответствует определенной комбинации одновременно нажатых клавиш.
Сочетание главного и вспомогательного кода, когда первый из них равен 0, называют РАСШИРЕННЫМ ASCII-кодом.
На ФУНКЦИОНАЛЬНОМ уровне отдельным клавишам программным путем сопоставляются определенные функции, которые реализуются при нажатии этих клавиш. Клавишам могут приписываться последовательности символов или команды смены режимов, смены дисплейных окон и др. Такое "программирование" клавиш, в частности, может осуществляться с помощью драйвера ANSI.SYS, о чем еще будет идти речь ниже.
Имеется ряд коммерческих программ, которые обеспечивают программное переопределение клавиш прямо по ходу рабочего сеанса. Многие прикладные системы - текстовые редакторы, интегрированные пакеты, графические системы - сами переопределяют клавиши для своих целей, причем делают это многократно, в зависимости от режимов работы. Транслятор языка бейсик, например, поддерживает операторы, позволяющие сопоставлять клавишам различные действия или текстовые строки.
ОСОБЕННОСТИ КОДИРОВАНИЯ ОСНОВНЫХ ГРУПП КЛАВИШ. Клавиши группы А) генерируют простые ASCII-коды, обычно соответствующие начертанным на клавишах знакам. Однако эти коды могут модифицироваться в зависимости от того:
а) не нажата ли в это же время одна из клавиш модификации регистра - из группы Д),
б) не был ли зафиксирован до этого другой регистр, т.е. не была ли ранее нажата клавиша из группы Е).
Простая модификация приводит к тому, что вместо одного простого ASCII-кода генерируется другой - симметричный ему (например, вместо кода большой буквы A = 65 выдается код малой буквы a = 97). Такие симметричные ASCII-коды для одноименных букв обычно отличаются на одну и ту же величину (32).
Другой вид модификации приводит к генерации расширенного ASCII-кода, состоящего реально из двух кодов. Способ представления и интерпретации расширенных ASCII-кодов будет подробнее рассмотрен ниже.
Клавиши групп Б), В) и Г) называют специальными. При их нажатии генерируются не простые, а расширенные ASCII-коды. Если вдобавок в момент нажатия такой клавиши одновременно оказывается нажатой еще и клавиша группы Д) - Alt, Ctrl или Shift, то при этом также генерируются расширенные ASCII-коды, но отличные от кодов одиночных клавиш. Таким образом, набор кодов, которые могут генерироваться при различных комбинациях клавиш, довольно велик, что обеспечивает богатство возможностей по управлению ПЭВМ со стороны пользователя.
Клавиши групп Д) и Е) не генерируют ни простых, ни расширенных ASCII-кодов. Они, как показано выше, лишь оказывают влияние на модификацию кодов клавиш групп А)-Г). Однако текущее состояние этих клавиш фиксируется в отдельных битах выделенной ячейки памяти ДОС.
Клавиши группы Ж) - с символами PrtSc и *, с дополнительными знаками + и -, а также другие клавиши, которые могут иметься на разных модификациях клавиатур, обычно вырабатывают такие же ASCII-коды, как и другие клавиши с этими знаками. Но используются они чаще в других целях.
Например, в известной системе Framework эти клавиши играют роль управляющих; при этом используются их скэн-коды, а не ASCII-коды. Точно так же в популярной имитационной игре Flight Simulator - "Тренажер пилота" для управления "полетом" используются клавиши Shift, расположенные в двух половинах клавиатуры - левой и правой. Это оказывается возможным благодаря тому, что скэн-коды этих клавиш различны.
ОСОБЫЕ КОМБИНАЦИИ КЛАВИШ. Имеется несколько особых комбинаций клавиш, обрабатываемых уникальным образом. При одновременном нажатии клавиш, входящих в такие выделенные комбинации, базовая система ввода/вывода анализирует их скэн-коды и осуществляет внутрисистемные прерывания, вызывающие определенные события. В табл.4.5 представлен перечень таких комбинаций.
Таблица 4.5. Особые комбинации клавиш
Таблица 4.6. Коды, вырабатываемые некоторыми комбинациями клавиш
Некоторые комбинации клавиш вырабатывают ASCII-коды управляющих сигналов, используемых часто для управления внешними устройствами, в частности, принтером и коммуникациями.
ТАБЛИЦА ASCII-КОДОВ. Внутреннее представление символов в ПЭВМ осуществляется на основе определенной системы кодирования символов, которая может быть представлена в виде кодовой таблицы. Кодовая таблица указывает на соответствие между изображениями или условными обозначениями символов и их внутренними числовыми кодами. Коды обычно представляют шестнадцатеричными или десятичными числами.
Кодовая таблица должна допускать представление следующих групп символов:
- управляющие символы,
- знаки арифметических операций, знаки препинания и цифры,
- буквы латинского алфавита,
- буквы национальных алфавитов,
- символы псевдографики,
- математические символы.
Управляющие символы используются для специальных целей управления печатающими устройствами, а также в качестве маркеров и ограничителей при передаче символьной информации по линиям связи.
Знаки арифметических операций, знаки препинания, некоторые специальные символы (процент, амперсенд, ...) и цифры необходимы для представления текстовой и числовой информации.
Буквы латинского алфавита служат для представления текстовой информации на языках, использующих латинский алфавит, а также для представления текстов программ на языках ассемблеров и языках высокого уровня - фортран, паскаль, си и др.
Буквы национальных алфавитов служат для представления текстовой информации на разных языках. Для советских ПЭВМ в первую очередь, конечно, необходим русский алфавит.
Символы псевдографики используются для построения простых графических изображений в текстовом режиме. С помощью этих символов на экране дисплея и на печатающих устройствах изображаются различные рамки, простейшие (прямоугольные) фигуры, штриховки и пр. Такие символы могут использоваться для изображения столбиковых гистограмм, графических схем и других несложных графических объектов.
Математические и другие специальные символы (сумма, тождество, больше или равно, меньше или равно и пр.) используются для представления математических формул и выражений, для обозначения денежных единиц и др.
В табл. 4.7, 4.8, 4.9 и 4.10 представлена кодировка символов, используемых в современных ПЭВМ. Приведенные кодовые таблицы определяют способ представления информации в памяти ПЭВМ и на внешних носителях, а также кодирование знакогенераторов дисплеев и принтеров. Указанные таблицы разбиты на столбцы, каждый из которых идентифицируется шестнадцатеричным числом, соответствующим коду первого символа в данном столбце. Чтобы определить шестнадцатеричный код любого символа, необходимо найти его в соответствующем столбце и затем к коду, идентифицирующему данный столбец, прибавить номер позиции, в которой находится данный символ (позиции нумеруются шестнадцатеричными числами от 0 до F). Так, например, латинская буква A находится в 1-й позиции столбца 40 в табл.4.7, поэтому ее шестнадцатеричный код равен 41. Для получения десятичных кодов можно воспользоваться табл.4.11.
Таблица 4.7. Основная таблица ASCII (16-ричные коды)
Таблица 4.8. Расширение таблицы ASCII (знакогенератор IBM PC)
Таблица 4.9. Расширение таблицы ASCII (знакогенератор с русским шрифтом - основной вариант)
Таблица 4.10. Расширение таблицы ASCII (знакогенератор с русским шрифтом - альтернативный вариант)
Таблица 4.11. Получение десятичного кода по шестнадцатеричному
В табл. 4.7 представлены управляющие сигналы и символы с 16-ричными кодами от 0 до 7F (десятичные коды от 0 до 127). Эта часть кодовой таблицы соответствует стандарту кодирования информации ASCII и используется в большинстве ПЭВМ, совместимых с IBM PC. Ее называют основной таблицей ASCII. Для кодирования символов здесь используются лишь 7 битов.
Следует иметь в виду, что первые 32 кода (от 0 до 1F) в основной таблице ASCII являются управляющими; они служат для представления сигналов, которые имеют специальное назначение при выводе информации на печатающие устройства, а также при передаче ее по линиям связи. Часть управляющих кодов, хотя и зарезервирована для специальных функций, но фактически может использоваться по усмотрению разработчиков отдельных систем. Чтобы иметь возможность как-то ссылаться на управляющие коды, применяется обозначение CHR(N) или CHR$(N). Такое обозначение понимается как символ, код которого равен N. В языках паскаль и бейсик эти обозначения используются как вызовы функций, вырабатывающих соответствующие символы. Управляющим кодам часто сопоставляются специальные изображения (см. два первых столбца табл.4.7). Эти изображения не фиксируются стандартом ASCII. Их реальный вид на экране зависит от знакогенератора дисплея.
Другие коды основной таблицы ASCII используются для кодирования знаков пунктуации и арифметических операций, цифр и букв латинского алфавита.
Вторая половина таблицы с 16-ричными кодами от 80 до FF (десятичные коды от 128 до 255) является расширением стандарта ASCII и, вообще говоря, может изменяться в разных моделях ПЭВМ. Для кодирования каждого символа в этой части таблицы необходимы уже 8 битов. Во второй половине таблицы чаще всего размещают символы национальных алфавитов (в частности, русского), символы псевдографики, а также математические и другие символы.
В табл. 4.8 представлены символы с кодами 80-FF, соответствующие стандартному знакогенератору IBM PC. В табл.4.9 представлен один из вариантов расширения ASCII-таблицы с русскими буквами. Здесь русские буквы размещены в столбцах с кодами B0, C0, D0, E0, что соответствует рекомендациям международной организации по стандартизации ISO. Символы псевдографики в этой таблице оказываются в столбцах 80, 90, A0, поэтому здесь возникает расхождение с принятой кодировкой этих символов в машине IBM PC. Данная таблица вместе с основной таблицей ASCII (табл.4.7) рекомендуется для применения на отечественных ПЭВМ.
В табл. 4.10 приведен альтернативный вариант расширения ASCII-таблицы с русскими буквами. Этот вариант отличается от представленного в табл.4.9 тем, что символы псевдографики находятся на тех же кодовых позициях, что и в стандартной таблице для IBM PC (табл.4.8 ), а русские буквы занимают столбцы 80, 90, A0 и E0. При этом обеспечивается возможность использования зарубежных коммерческих программ без какой бы то ни было их настройки на новую кодировку символов псевдографики, но русские буквы размещены несколько неудобно: их нормальная последовательность прерывается символами псевдографики. Указанное неудобство сравнительно легко преодолевается программным путем. Данная таблица рекомендуется для применения в знакогенераторах закупаемых зарубежных ПЭВМ. Для выполнения необходимых преобразований над текстами в случае применения знакогенераторов с альтернативной кодировкой можно использовать специальную управляющую программу - драйвер. Такой драйвер загружается в оперативную память в начале рабочего сеанса и, оставаясь резидентным, перехватывает все символы с кодами 80-FF, которые посылаются прикладными программами для вывода на дисплей. Перехваченные коды символов анализируются и, если требуется, преобразуются в другие коды, так чтобы знакогенератор дисплея воспроизводил их правильные изображения. Драйвер такого типа (ALFA.EXE) разработан в ВЦ АН СССР А.А.Чижовым. Он используется на зарубежных ПЭВМ, в которые устанавливаются знакогенераторы с русским алфавитом.
Помимо перехвата и перекодировки символов, выводимых на дисплей, драйвер ALFA.EXE выполняет еще одну важную функцию - переключение между двумя половинами кодовой таблицы при вводе символов с клавиатуры. Реализуется это следующим образом. При нажатии клавиши CapsLock срабатывает двоичный переключатель, который затем управляет способом восприятия вводимых алфавитно-цифровых символов. При одном положении этого переключателя нажатие алфавитно-цифровых клавиш приводит к генерации на выходе клавиатуры латинских букв, при другом положении переключателя генерируются буквы русского или другого национального алфавита.
Чтобы вывести кодовую таблицу на экран, можно применить программу на языке бейсик, приведенную ниже. В этой программе при значении переменной H=0 будет выведена первая половина таблицы, исключая коды 0 .. 31, а при H=128 - вторая половина. Каждая половина содержит по 32 строки и 4 колонки:
10 FOR I=0 TO 31
20 FOR J=0 TO 3
30 K=H+(H-J*32)
40 PRINT K;
50 IF J=0 AND H=0 THEN PRINT " ";
60 ELSE PRINT " "+CHR$(K);
70 NEXT J
80 PRINT CHR$(13);
90 NEXT I
100 RETURN
РАСШИРЕННЫЕ ASCII-КОДЫ. Кодирование специальных клавиш, относящихся к группам Б), В), Г), а также модифицированных клавиш группы А) осуществляется расширенным ASCII-кодом, который представляется 2-байтовыми последовательностями. Первый байт является служебным и равен 0; второй байт - информационный. Его код равен порядковому номеру клавиши, т.е. совпадает со скэн-кодом. Благодаря указанному методу исключается совпадение кодов специальных клавиш с кодами основных символов ASCII.
С помощью расширенных ASCII-кодов кодируются сигналы следующих клавиш и комбинаций:
- функциональных (F1, F2, ... F10);
- удаления и вставки (Del и Ins);
- перемещения курсора (стрелки, Home, End, [], PgUp, PgDn);
- Alt+(другая клавиша);
- Ctrl+(другая клавиша);
- Shift+Tab.
В табл.4.12 приведены коды информационных байтов для всех комбинаций клавиш, вырабатывающих расширенные ASCII-коды.
Та блица 4.12. Информационные байты расширенных кодов ASCII
ОСОБЕННОСТИ ДЕЙСТВИЯ НЕКОТОРЫХ КЛАВИШ. Эффект действия любой клавиши, вообще говоря, задается прикладной программой, причем этот эффект может быть разным, в зависимости от состояния прикладной программы. Однако за некоторыми клавишами закрепляются определенные постоянные функции, которые применяются наиболее часто. Ниже приводится описание таких типичных функций.
Клавиша Enter (Исполнение или Ввод) используется для завершения набираемой цепочки символов, в частности, для завершения любой команды ДОС, набираемой на клавиатуре. Десятичный ASCII-код этого сигнала - 13. Другие английские обозначения этой клавиши - Return, CarriageReturn, CR. Располагается она справа от алфавитно-цифровой группы.
Клавиша Backspace (Стирание влево) используется для стирания символа, находящегося слева от курсора. Десятичный ASCII-код этого сигнала - 8. Клавиша располагается обычно справа вверху от алфавитно-цифровой группы.
Клавиша Del (Удаление символа) используется для удаления символа, находящегося над курсором. Посылаемый сигнал кодируется расширенным ASCII-кодом, информационный байт которого равен 83.
Клавиша Ins (Вставка символа) используется для переключения между двумя режимами ввода символов:
- ввод с раздвижной строки (вставка);
- ввод с перебивкой ранее набранных символов (замена).
Английские названия этих режимов - "Insert" и "Overtype". Посылаемый сигнал кодируется расширенным ASCII-кодом, информационный байт которого равен 82.
Клавиша CapsLock (Фиксация верхнего регистра) предназначена для того, чтобы при нажатии алфавитных клавиш получать коды заглавных букв. При этом после нажатия CapsLock действие клавиши Shift изменяется на противоположное.
Однако клавиша CapsLock может использоваться и для других целей. В частности, упомянутый выше драйвер ALFA.EXE использует эту клавишу для переключения между латинским и русским алфавитом. Фиксация же верхнего регистра осуществляется в этом случае одновременным нажатием клавиш Shift и Caps-Lock.
Клавиша ScrollLock (Блокировка прокрутки) часто используется в текстовых редакторах и других прикладных системах, чтобы блокировать или разблокировать режим прокрутки изображения на экране. Но у нее может быть и другое назначение в различных прикладных программах.
Клавиша NumLock (Блокировка цифр) воздействует на ДОС, заставляя систему по-разному воспринимать клавиши управления курсором, размещенные в правой части клавиатуры (группа В)). После однократного нажатия NumLock девять клавиш в правой части клавиатуры - стрелки Up, Down, Left, Right, Home, End, PgUp, PgDn и клавиша с цифрой 5 - начинают выдавать ASCII-коды, соответствующие цифрам 1, 2, 3, 4, 5, 6, 7, 8 и 9. Кроме того, клавиша Ins также начинает выдавать код, соответствующий цифре 0. Таким образом, эти клавиши образуют как бы дополнительную цифровую клавиатуру, на которой числа можно набирать с большей скоростью. Клавишу с цифрой 5 будем обозначать <5>.
Все три клавиши - CapsLock, ScrollLock и NumLock - действуют как двоичные переключатели (английский термин для клавиш такого типа - toggle), т.е. при их чередующихся нажатиях происходит переход из одного режима в другой и обратно. ASCII-кодов они не вырабатывают, но устанавливают в 0 или 1 специальные биты в двух байтах внутренней памяти ДОС с шестнадцатеричными адресами 417 и 418. Прикладная программа может анализировать эти биты и принимать решения о тех или иных действиях.
Клавиши группы В), к которым относятся стрелки Left, Right, Up, Down (Вправо, Влево, Вверх, Вниз), а также клавиши Ноте, End, PgUp, PgDn (Начало, Конец, Страница Вверх, Страница Вниз) и клавиша <5> в центре этой группы обыкновенно служат трем целям:
Во-первых, они удобны для управления перемещением курсора на экране, что и используется в прикладных системах - как в текстовых режимах, так и в графических. В таком режиме эти клавиши выдают расширенные ASCII-коды (табл.4.12).
Во-вторых, после нажатия NumLock эти клавиши, а также клавиша Ins, как уже сказано, образуют дополнительную цифровую клавиатуру.
В-третьих, они используются для ввода символов с произвольными ASCII-кодами, в том числе не представимыми другими способами. Делается это так:
1. Нажимается (и не отпускается) клавиша Alt.
2. Нажимаются поочередно клавиши с цифрами, соответствующие коду вводимого символа, например, 1, 9, 6.
3. Отпускается нажатая клавиша Alt.
В результате в текущую позицию, указываемую курсором, вводится символ CHR(196), изображаемый на экране горизонтальной чертой. Указанный способ ввода символов называют иногда Alt-вводом, Alt-ввод действует вне зависимости от состояния клавиши NumLock.
УПРАВЛЕНИЕ КЛАВИАТУРОЙ С ПОМОЩЬЮ ДРАЙВЕРА ANSI.SYS. В предыдущем разделе была рассмотрена одна из функций системного драйвера ANSI.SYS - управление дисплеем. Рассмотрим теперь его вторую функцию, связанную с переопределением кодов, поступающих с клавиатуры. Эта возможность позволяет приписывать некоторым клавишам или их комбинациям целые цепочки символов. При нажатии запрограммированных таким образом клавиш в системный блок ПЭВМ посылаются не одиночные коды (или пары кодов), а приписанные им цепочки символов. В этих цепочках могут содержаться часто используемые команды ДОС или любые текстовые фрагменты. Они могут использоваться также и прикладными программами для получения с клавиатуры каких-либо стандартных сообщений.
Переопределение кодов клавиш осуществляется путем посылки в драйвер ANSI.SYS управляющей последовательности вида:
Esc[ <расширенный/ASCII код клавиши>; <определение_клавиши> p
В этой последовательности заголовок имеет такой же вид, как и при управлении экраном, т.е. состоит из двух символов: Esc и квадратной скобки. Кодом команды является малая английская буква p. Главное содержание команды сосредоточено в двух ее частях, разделяемых знаком "точка с запятой".
Первая (левая) часть содержит простой или расширенный ASCII-код клавиши, вторая (правая) часть - ту цепочку символов, которая должна генерироваться при нажатин данной клавиши.
Пример 1. Покажем, как можно функциональным клавишам приписать тексты наиболее часто используемых команд ДОС:
Esc[0;62;"а:"р - клавише F4 приписывается текст "а:";
Esc[0;64;"type "p - клавише F6 приписывается текст "type ".
Можно генерировать не только текстовые цепочки, но и управляющие символы, для чего в правую часть просто включается соответствующий десятичный код символа, отделяемый знаком "точка с запятой" от других компонентов определения.
Пример 2. Клавиша "Исполнение" имеет код 13. Можно имитировать нажатие этой клавиши, включив в определяющую цепочку указанный код. В нижеследующих примерах определения функциональных клавиш составляются из текстовых строк, за которыми следует код клавиши "Исполнение":
Esc[0;112;"cd\work";13p - при нажатии Alt-F9 посылается полностью сформированная команда CD\WORK;
Esc[0;113;"exit";13p - при нажатии Alt-F10 посылается полностью сформированная команда EXIT (эта команда используется для возврата в приостановленную программу).
Приписывать новые определения можно не только функциональным, но и любым алфавитно-цифровым клавишам, а также некоторым управляющим клавишам (например, стрелкам). Но, конечно, делать это для основных ASCII-кодов неразумно, поскольку тогда соответствующие клавиши потеряют свое исходное назначение - генерировать коды изображенных на ннх символов. Переопределять имеет смысл лишь модифицированные коды алфавитно-цифровых и управляющих клавиш, т.е. их Alt-, Ctrl- и Shift-коды.
Пример 3. При необходимости часто использовать каталог, на который указывает сложный маршрут, можно приписать текст этого маршрута Alt-коду соответствующей клавиши:
Esc[0;48;"\papers\book"p
Такая Esc-команда приписывает расширенному Alt-коду клавиши "B" текст маршрута "\papers\book". После этого можно, нажимая Alt-B, выдавать в ДОС указанный текст. Генерировать его будет драйвер ANSI.SYS.
Пример 4. Рассмотрим пример командного файла FKEYS.BAT, который упоминался в предыдущей главе. Единственное его назначение состоит в приписывании некоторым функциональным клавишам, а также их Alt-модификациям часто используемых фрагментов команд.
echo off
echo Esc[0;62;"a:"p Esc[0;107;"c:"p
echo Esc[0;64;"type "p Esc[0;109;"mode co80";13p
echo Esc[0;66;"dir "p Esc[0;111;"dirs *.*";13p
echo Esc[0;67;"cd "p Esc[0;112;"cd\work";l3p
echo Esc[0;68;"copy "p Esc[0;113;"exit";13p
echo Переопределение функциональных клавиш:
echo
echo F4 - "a:", Alt F4 - "с:",
echo F6 - "type ", Alt F6 - "mode co80" (норм, экран),
echo F8 - "dir ", Alt F8 - "dirs *.*" (объем директория),
echo F9 - "cd ", Alt F9 - "cd \work" (рабочий директорий),
echo F10 - "copy", Alt F10 - "exit" (возврат).
В строчках со 2-й по 6-ю с помощью команд ECHO в драйвер ANSI.SYS посылаются Esc-последовательности, осуществляющие переопределения клавиш. Напомним, что вместо трех букв Esc всюду в приведенных примерах должен употребляться один символ с десятичным кодом 27. Его можно вводить в текстовом редакторе, нажимая Ctrl-f, или с помощью Alt-ввода. Остальные строчки содержат команды ECHO, которые просто выдают на экран сообщения о сделанных переопределениях.
Приведенный выше текст можно прямо включить в файл автозапуска AUTOEXEC.BAT, исключив из него обращение к FKEYS.BAT.
Нам остается обсудить одни важный вопрос: "Как сформировать Esc-последовательности и передать их для обработки драйверу ANSI.SYS?" Для этого есть несколько путей.
1. Включить Esc-последовательности в состав аргумента команды PROMPT. При этом вместо символа Esc, как указывалось, нужно ввести знаки $e, а остальная часть последовательности вводится, как обычная текстовая строка. Примеры такого задания рассмотрены в разд.2.7.
2. Включить Esc-последовательности в командный файл в качестве аргументов команд ECHO. Примеры этого рассмотрены выше.
3. Сформировать любым способом текстовый файл с Esc-последовательностями и направить этот файл на дисплей. Если, например, имя такого файла - E.TXT, то для его посылки на дисплей можно использовать команды:
type e.txt или copy e.txt con.
Во втором примере символ CON означает "консоль", что в данном контексте соответствует экрану дисплея.
Таковы основные приемы управления клавиатурой. Отметим еще, что при системном программировании можно пользоваться следующими прерываниями ДОС для доступа к функциям управления клавиатурой:
Подробное описание указанных прерываний имеется в технических руководствах по ДОС.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Брябрин. Программное обеспечение персональных ЭВМ. 1990
4.3. УПРАВЛЕНИЕ ПРИНТЕРОМ
ВЫВОД ФАЙЛОВ НА ПЕЧАТАЮЩИЕ УСТРОЙСТВА. Вывод текста и графических изображений на печатающие устройства (принтеры), на первый взгляд, кажется очень простой задачей. Действительно, если есть заранее подготовленный файл с текстовой или закодированной особым образом графической информацией, то простейший способ вывода его на печатающее устройство состоит в применении команды COPY, у которой первым аргументом должно быть имя исходного файла, а в качестве второго аргумента указывается имя принтера - PRN, LPT1, LPT2 и др. Пример такой команды:
copy f1 prn
Вместо имени принтера можно употребить имя специального драйвера, обеспечивающего особый способ формирования символов и вывода их на принтер. Например, разработанный в ВЦ АН СССР драйвер TOSH.SYS (автор - А.А.Чижов) обеспечивает выдачу русских текстов на высококачественный принтер типа Toshiba P1350/P1351 с использованием такого же шрифта, который применяется в стандартных пишущих машинках. При этом каждая буква фактически рисуется из точек, а принтер работает в графическом режиме. В команде COPY достаточно указать в качестве второго аргумента слово TOSH, и тогда печатаемые символы будут формироваться и выводиться на печать с помощью указанного драйвера.
Другой простой способ выдачи на печать основан на использовании сервисных программ печати. Так, стандартный комплект ДОС поставляется с системной программой PRINT, которая обеспечивает постановку текстовых файлов в очередь на печать, Собственно печать в этом случае производится на фоне любой другой задачи. Обращение к программе PRINT может иметь следующий вид:
print f1 f2 f3
При таком обращении файлы F1, F2 и F3 ставятся в очередь на печать, и если принтер свободен и готов к печати, то сразу же начинается печать файла F1. По умолчанию максимальное число файлов в очереди равно 10, но оно может быть изменено. Для изменения этого числа, а также других установочных параметров в команде PRINT имя каждого файла может сопровождаться специальным указателем. Указатели вводятся вслед за именем файла с префиксом /. В частности, можно применять следующие указатели:
/Q:ff (ff - максимальное число файлов в очереди),
/D:pp (pp - имя принтера или другого устройства для вывода данного файла),
/B:bb (bb - размер буфера в байтах (по умолчанию буфер = 512)),
/C (признак исключения данного файла и всех последующих из очереди),
/V (отмена действия /С).
Команда PRINT /T исключает все файлы из очереди. С помощью других указателей можно также регулировать относительное время, выделяемое для команды PRINT на фоне других программ.
Разрабатываются и другие сервисные программы для вывода на печать. Как правило, такие программы ориентированы на определенный тип принтера и на определенный способ печати.
УПРАВЛЕНИЕ РЕЖИМАМИ ПЕЧАТИ. При внешней простоте команд, обеспечивающих вывод текстовых файлов на печать, на практике приходится сталкиваться с множеством мелких проблем, связанных со способом оформления выводимого на бумагу текста или графического изображения. Дело в том, что печатающие устройства, применяемые совместно с ПЭВМ, позволяют устанавливать различные параметры печати. Например, широко распространенные точечно-матричные принтеры позволяют задавать с помощью управляющих команд следующие важные параметры:
- режим печати-текстовый или графический;
- шрифт, т.е. набор символов для печати текста;
- модификацию шрифта, определяющую размеры букв, их насыщенность, плотность, разные способы выделения и др.;
- максимальное число символов в строке;
- интервал между строками;
- максимальную длину страницы;
- установку/отмену остановки при отсутствии бумаги;
- величину хода при горизонтальной и вертикальной табуляции;
- величину левого и правого поля;
- установку/отмену режима печати с подчеркиванием;
- установку/отмену печати верхних и нижних индексов;
- способ печати (при прямом и обратном ходе или только при прямом ходе);
- скорость печати - нормальную или замедленную (для уменьшения шума).
Команды оформляются двумя способами - это либо специальные управляющие символы (с кодами от 0 до 31 или от 128 до 159), либо Esc-последовательности. Например, для управления разными типами принтеров семейства Epson используются команды, обусловленные специальным стандартом. Этот стандарт имеет условное обозначение ESC/P. Он принят многими производителями печатающих устройств для ПЭВМ. Большинство команд в этом стандарте задается с помощью Esc-последовательностей с буквенными или числовыми параметрами. Примеры таких команд:
Esc @ - инициализация принтера,
Esc & ... - загрузка нового "пользовательского" шрифта,
Esc % n - выбор шрифта (встроенного или загруженного),
Esc ! n - выбор модификации шрифта (от 0 до 63),
Esc A n - установка интервала между строками (в точках),
CHR(12) - протяжка страницы,
CHR(24) - очистка буфера,
CHR(14) - печать строки увеличенными широкими буквами (enlarged),
CHR(15) - печать строки уменьшенными узкими буквами (condensed),
CHR(8 ) - возврат на один символ назад (backspace),
Esc K ... - печать в графическом режиме с нормальной плотностью,
Esc L ... - печать в графическом режиме с двойной плотностью
и др.
Возникает вопрос, когда должны посылаться на принтер управляющие команды. Ясно, что существует две основных возможности:
а) производить установку режимов перед тем, как на принтер начнет выводиться основное содержимое файла;
б) производить изменение режимов по ходу печати.
Очевидно, способ а) целесообразно применять для установки глобальных параметров - режима работы, вида шрифта, размеров строк, страниц и полей, интервалов между строками, скорости печати. Способ б) необходим для локальных операций - установки индексов, подчеркивания и др.
Некоторые системы обработки текстовой информации вставляют внутрь печатаемого текста все управляющие команды. Из-за этого текст становится непригоден для использования его в других целях (например, при обычном выводе на экран командой TYPE такой текст будет испещрен непонятными значками). Зато при выводе этих текстов на принтер получаются прекрасно оформленные текстовые документы. Иногда установка режимов осуществляется с помощью отдельных сервисных программ. Например, в ВЦ АН СССР разработан ряд программ для установки параметров принтеров семейства Epson FX-80.
Одна из этих программ - SETFX (автор В.В.Пономарев) - при запуске запрашивает у пользователя три параметра, которые используются наиболее часто: номер модификации шрифта, интервал между строками и левое поле. Программа загружает шрифт и устанавливает соответствующие параметры печати.
Другая программа - LFONT (автор А.Б.Борковский) - загружает в принтер русский шрифт с одновременным заданием номера его модификации.
Наиболее удобно, чтобы глобальные параметры для управления принтером могли задаваться в текстовом редакторе, но при этом не вносились в текст печатаемого файла. В этом случае переход от редактирования текста к его печати происходит быстро и естественно, но сам текстовый файл остается чистым, т.е. не содержит глобальных управляющих символов.
КАК ФОРМИРУЮТСЯ НОВЫЕ СИМВОЛЫ ДЛЯ ПЕЧАТИ НА ПРИНТЕРЕ? Многие современные принтеры имеют несколько встроенных шрифтов. Кроме того, на таких принтерах возможно использование загружаемых шрифтов. При этом в машине заранее формируется файл, в котором соответствующим образом кодируются знаки требуемого алфавита; этот файл посылается на принтер и запоминается в его оперативной памяти.
Посылка в принтер специальных управляющих команд заставляет его переключаться с одного шрифта на другой, причем это можно делать даже во время печати. После выбора того или иного шрифта выводимые на печать знаки изображаются на бумаге в соответствии с выбранным шрифтом и его модификацией.
Покажем на примере, как оформляется новый символ для точечно-матричного принтера. На принтерах семейства Epson FX-80 загрузка новых символов осуществляется с помощью следующей Esc-последовательности:
Esc & CHR (0) CHR (n) CHR(m) CHR(q) CHR(c1) CHR(c2) ... CHR (c8 ) CHR (с9) CHR(сA) CHR(cB)
В этой последовательности первые три символа (Esc & и CHR(0)) являются признаками начала команды, определяющей новый символ.
Числа n и m указывают диапазон кодов тех символов, для которых вводятся новые изображения. Если задается изображение лишь для одного символа, то n = m. В данном случае будем считать, что определяется единственный символ с десятичным кодом 156, т.е. n = m = 156.
Числа c1 ... cB представляют собой двоичные коды столбцов матрицы размером 8*11, в которой должен изображаться каждый символ. Пример такой матрицы для буквы Ь и соответствующие коды столбцов c1 ... cB приведены в следующих таблицах (при этом следует иметь в виду, что в отдельных строках разряды, содержащие 1, должны чередоваться с разрядами, содержащими 0):
Код числа q содержит управляющую информацию, в которой указывается способ размещения данного символа на матрице 9*12. Старший двоичный разряд указывает, нужно ли опускать данный символ на одну точку вниз (это делается, например, для букве "хвостиками" - таких как р, у, ц, щ).
Младшие 7 двоичных разрядов числа q устанавливают левую и правую границы матрицы с данным символом для вывода на принтер в режиме пропорциональной печати. При пропорциональной печати ширина печатаемой матрицы с изображением символа индивидуальна для каждого символа и зависит от его рисунка. Например, из матрицы с буквой I может печататься лишь 5 столбцов, а матрица с буквой Ш должна печататься целиком - все 11 столбцов. При этом текст на бумаге легче читается. Пример кодирования числа q:
двоичный код: 1(компонента D) 000(L) 1011(R)
Старший разряд D = 1 означает, что данный символ не нужно опускать вниз. Код L = 000 означает, что при пропорциональной печати самым левым является 0-й столбец матрицы с изображением данного символа. Код R = 1011 означает, что самым правым при пропорциональной печати является 11-й столбец. Следовательно, при указанных кодах должна печататься вся матрица с изображением данного символа. Таким образом, десятичное представление числа q = 139. Если необходимо ограничить ширину матрицы для пропорциональной печати, то коды R и L должны иметь другие значения.
Таким образом, вся Esc-последовательность для задания данного символа приобретает следующий вид:
Esc & CHR(0) CHR(156) CHR(156) CHR(139) CHR(255) CHR(0) CHR(255) CHR(0) CHR(17)
CHR(0) CHR(17) CHR(0) CHR(31) CHR(0) CHR(14)
Подобную же последовательность можно сформировать для любых других символов. Чтобы с помощью одной Esc-последовательности определить сразу несколько новых символов, достаточно указать диапазон их кодов (параметры n, m) и далее сформировать (m-n+1) групп по 12 кодов, подобных тем, которые приведены в рассмотренном примере.
ПЕЧАТЬ ТЕКСТОВОЙ И ГРАФИЧЕСКОЙ КОПИИ ЭКРАНА. В ДОС имеется возможность выводить на принтер копию изображения, имеющегося в данный момент на экране. Для этого используется специальная внутренняя подпрограмма, которая запускается при одновременном нажатии двух клавиш: Shift и PrtSc.
Когда на экран выведен текст в режиме 0, 1, 2, 3 или 7 (см. разд.3.1), то при нажатии клавиш Shift и PrtSc происходит считывание с экрана каждой строчки и печать ее на принтере. Так получается текстовая копия экрана. При этом изображения символов на экране и на бумаге совпадают лишь в том случае, если знакогенератор дисплея и шрифт, загруженный в принтер, идентичны. Если это не так, то некоторые символы, имеющие на экране один вид (например, русские буквы или буквы какого-либо национального алфавита), на бумаге напечатаются совершенно по-другому. Чтобы пояснить это обстоятельство, рассмотрим следующую схему:
<код символа в памяти компьютера> -> <код символа в знакогенераторе дисплея> -> R1 -> <изображение символа на экране>
<код символа в памяти компьютера> -> <код символа в шрифте принтера> -> R2 -> <изображение символа на бумаге>
Здесь R1 означает определение данного символа в знакогенераторе дисплея, a R2 - определение символа с тем же самым кодом в наборе символов (шрифте) принтера. Лишь при согласованном определении R1 и R2 изображение символа с данным кодом на экране дисплея и на бумаге будет одинаковым. Следовательно, задание кодировки символов в знакогенераторе дисплея и задание шрифта для принтера - это РАЗНЫЕ задачи, ио они должны решаться СОГЛАСОВАННО.
При попытке печати копии экрана, когда он находится в одном из графических режимов (4, 5 или 6), сканирование и считывание изображения с экрана происходит не по текстовым строчкам (их всего 25), а по точкам растра. В строке растра может быть 640 или 320 точек, а число строк равно 200. При выводе на принтер, который в этом случае автоматически переводится в графический режим, имеется возможность использовать разные степени плотности печати. Так, например, на принтерах типа Epson FX-80 могут использоваться три степени плотности графической печати:
- нормальная - 480 точек на строку (команда Esc K);
- двойная - 960 точек на строку (команда Esc L);
- четверная - 1920 точек на строку (команда Esc Z).
Следовательно, экранное изображение искажается при выводе на принтер. Обычно оно сжимается по горизонтали и вертикали. При этом, если на экран был выведен текст, то и он в данном режиме выводится на печать со сжатием всех символов.
В комплект ДОС входит сервисная программа GRAPHICS, к которой необходимо обращаться перед выдачей на принтер графической копии экрана. После обращения к этой программе нажатие клавиш Shift и PrtSc вызывает вывод на принтер графической копии экрана. При этом возможны 3 варианта:
1) если экран находится в текстовом режиме (0-3 или 7), то копирование происходит точно так же, как и без команды GRAPHICS;
2) если экран находится в режиме 4 или 5 (320*200 точек), то на принтер копируется текст и графические изображения, причем закрашенные цветные области отображаются на бумаге в оттенки серого цвета, если принтер не цветной;
3) если экран находится в 6-м режиме (640*200 точек), го изображение копируется на принтер повернутым на 90o - правый верхний угол экрана отображается в левый верхний угол на бумаге; при этом изображение как на экране, так и на принтере одноцветное.
После вызова программы GRAPHICS при копировании изображения с экрана точки черного цвета отображаются на бумаге в белый цвет и наоборот. Чтобы инвертировать цвета печатаемого на бумаге изображения, нужно обратиться к GRAPHICS с параметром /R, После этого черные точки экрана будут становиться черными и на бумаге.
Используя возможность перевода принтера в графический режим с помощью Esc-последовательностей, можно составить свою программу для вывода на принтер графических изображений. Такая программа, в частности, имеется в составе графических процессоров ВИКОНТ и ВГРАФ, разработанных в ВЦ АН СССР (автор Б.Т.Сираджов). Графические изображения, формируемые с помощью этой системы, могут выводиться в специальном формате в файлы, которые впоследствии могут быть выведены на печать. Полученные таким образом файлы могут содержать графические иллюстрации к текстовым документам и статьям. Вывод на печать файла с изображением, соответствующим одному экрану, занимает всего несколько секунд.
КОМАНДА MODE. Обычно принтеры подключаются к ПЭВМ по 8-разрядному параллельному каналу, который работает в соответствии со стандартом Centronix, Однако для многих типов принтеров существует возможность подключения по последовательному (асинхронному) каналу, который действует в соответствии со стандартом RS-232C. С точки зрения обслуживания принтера, последовательный канал не имеет никаких преимуществ перед параллельным; даже наоборот, он работает несколько медленнее, чем параллельный. Тем не менее по разным причинам может возникнуть необходимость подключения принтера к последовательному каналу (например, из-за отсутствия или неисправности адаптера параллельного канала).
Что нужно сделать для переключения принтера на последовательный канал?
Во-первых, в самом принтере нужно установить в соответствующие положения внутренние переключатели. Такие переключатели, разумеется, есть только в тех принтерах, которые обеспечивают работу по последовательному каналу.
Во-вторых, нужно подобрать соответствующий кабель для подсоединения принтера к адаптеру последовательного канала.
В-третьих, нужно указать операционной системе, что принтер подключен пе по параллельному, а по последовательному каналу. Эта операция проще всего реализуется с помощью сервисной программы MODE, поставляемой в комплекте ДОС.
Команда MODE, как указывалось в разд.4.1, позволяет устанавливать режим работы дисплея. Кроме того, имеется еще две разновидности этой команды: для переключения принтера на последовательный канал и для установки параметров последовательного канала. Пример обращения, обеспечивающего переключение принтера #1 на коммуникационный канал COM1:
mode lpt1 := com1
Для настройки параметров коммуникационного канала может быть применена такая команда:
mode com1:1200,e,8,1,p
Эта команда устанавливает скорость передачи данных 1200 бод, контроль по четности (на это указывает символ e), разрядность элемента данных - 8 и число стоп-битов - 1. Символ "p" означает, что при ошибке в приемнике (например, при выключенном принтере) необходимо повторять передаваемую порцию данных, пока ошибка ие будет устранена.
Указанные параметры должны быть согласованы с параметрами приемника - принтера или другого устройства, подключенного по последовательному каналу. Обыкновенно установка параметров в таких устройствах осуществляется с помощью соответствующих переключателей, согласно инструкции.
Возможные значения скорости передачи по последовательному каналу - 110, 150, 300, 600, 1200, 2400, 4800 или 9600 бод. Такой диапазон скоростей позволяет подключать ПЭВМ к самым разным линиям связи - начиная от простой телефонной сети до локальной сети с соответствующим протоколом обмена.
Точно так же можно изменять другие параметры последовательного канала. Возможные значения этих параметров: N - контроль по четности не производится, E - контроль на четность, О - контроль на нечетность; разрядность элемента данных: 7 или 8; число стоп-битов: 1 или 2.
Таким образом, с помощью команды MODE легко осуществлять настройку последовательных каналов, по которым ПЭВМ может соединяться с разнообразными внешними устройствами и другими ЭВМ.
ВЫВОД ФАЙЛОВ НА ПЕЧАТАЮЩИЕ УСТРОЙСТВА. Вывод текста и графических изображений на печатающие устройства (принтеры), на первый взгляд, кажется очень простой задачей. Действительно, если есть заранее подготовленный файл с текстовой или закодированной особым образом графической информацией, то простейший способ вывода его на печатающее устройство состоит в применении команды COPY, у которой первым аргументом должно быть имя исходного файла, а в качестве второго аргумента указывается имя принтера - PRN, LPT1, LPT2 и др. Пример такой команды:
copy f1 prn
Вместо имени принтера можно употребить имя специального драйвера, обеспечивающего особый способ формирования символов и вывода их на принтер. Например, разработанный в ВЦ АН СССР драйвер TOSH.SYS (автор - А.А.Чижов) обеспечивает выдачу русских текстов на высококачественный принтер типа Toshiba P1350/P1351 с использованием такого же шрифта, который применяется в стандартных пишущих машинках. При этом каждая буква фактически рисуется из точек, а принтер работает в графическом режиме. В команде COPY достаточно указать в качестве второго аргумента слово TOSH, и тогда печатаемые символы будут формироваться и выводиться на печать с помощью указанного драйвера.
Другой простой способ выдачи на печать основан на использовании сервисных программ печати. Так, стандартный комплект ДОС поставляется с системной программой PRINT, которая обеспечивает постановку текстовых файлов в очередь на печать, Собственно печать в этом случае производится на фоне любой другой задачи. Обращение к программе PRINT может иметь следующий вид:
print f1 f2 f3
При таком обращении файлы F1, F2 и F3 ставятся в очередь на печать, и если принтер свободен и готов к печати, то сразу же начинается печать файла F1. По умолчанию максимальное число файлов в очереди равно 10, но оно может быть изменено. Для изменения этого числа, а также других установочных параметров в команде PRINT имя каждого файла может сопровождаться специальным указателем. Указатели вводятся вслед за именем файла с префиксом /. В частности, можно применять следующие указатели:
/Q:ff (ff - максимальное число файлов в очереди),
/D:pp (pp - имя принтера или другого устройства для вывода данного файла),
/B:bb (bb - размер буфера в байтах (по умолчанию буфер = 512)),
/C (признак исключения данного файла и всех последующих из очереди),
/V (отмена действия /С).
Команда PRINT /T исключает все файлы из очереди. С помощью других указателей можно также регулировать относительное время, выделяемое для команды PRINT на фоне других программ.
Разрабатываются и другие сервисные программы для вывода на печать. Как правило, такие программы ориентированы на определенный тип принтера и на определенный способ печати.
УПРАВЛЕНИЕ РЕЖИМАМИ ПЕЧАТИ. При внешней простоте команд, обеспечивающих вывод текстовых файлов на печать, на практике приходится сталкиваться с множеством мелких проблем, связанных со способом оформления выводимого на бумагу текста или графического изображения. Дело в том, что печатающие устройства, применяемые совместно с ПЭВМ, позволяют устанавливать различные параметры печати. Например, широко распространенные точечно-матричные принтеры позволяют задавать с помощью управляющих команд следующие важные параметры:
- режим печати-текстовый или графический;
- шрифт, т.е. набор символов для печати текста;
- модификацию шрифта, определяющую размеры букв, их насыщенность, плотность, разные способы выделения и др.;
- максимальное число символов в строке;
- интервал между строками;
- максимальную длину страницы;
- установку/отмену остановки при отсутствии бумаги;
- величину хода при горизонтальной и вертикальной табуляции;
- величину левого и правого поля;
- установку/отмену режима печати с подчеркиванием;
- установку/отмену печати верхних и нижних индексов;
- способ печати (при прямом и обратном ходе или только при прямом ходе);
- скорость печати - нормальную или замедленную (для уменьшения шума).
Команды оформляются двумя способами - это либо специальные управляющие символы (с кодами от 0 до 31 или от 128 до 159), либо Esc-последовательности. Например, для управления разными типами принтеров семейства Epson используются команды, обусловленные специальным стандартом. Этот стандарт имеет условное обозначение ESC/P. Он принят многими производителями печатающих устройств для ПЭВМ. Большинство команд в этом стандарте задается с помощью Esc-последовательностей с буквенными или числовыми параметрами. Примеры таких команд:
Esc @ - инициализация принтера,
Esc & ... - загрузка нового "пользовательского" шрифта,
Esc % n - выбор шрифта (встроенного или загруженного),
Esc ! n - выбор модификации шрифта (от 0 до 63),
Esc A n - установка интервала между строками (в точках),
CHR(12) - протяжка страницы,
CHR(24) - очистка буфера,
CHR(14) - печать строки увеличенными широкими буквами (enlarged),
CHR(15) - печать строки уменьшенными узкими буквами (condensed),
CHR(8 ) - возврат на один символ назад (backspace),
Esc K ... - печать в графическом режиме с нормальной плотностью,
Esc L ... - печать в графическом режиме с двойной плотностью
и др.
Возникает вопрос, когда должны посылаться на принтер управляющие команды. Ясно, что существует две основных возможности:
а) производить установку режимов перед тем, как на принтер начнет выводиться основное содержимое файла;
б) производить изменение режимов по ходу печати.
Очевидно, способ а) целесообразно применять для установки глобальных параметров - режима работы, вида шрифта, размеров строк, страниц и полей, интервалов между строками, скорости печати. Способ б) необходим для локальных операций - установки индексов, подчеркивания и др.
Некоторые системы обработки текстовой информации вставляют внутрь печатаемого текста все управляющие команды. Из-за этого текст становится непригоден для использования его в других целях (например, при обычном выводе на экран командой TYPE такой текст будет испещрен непонятными значками). Зато при выводе этих текстов на принтер получаются прекрасно оформленные текстовые документы. Иногда установка режимов осуществляется с помощью отдельных сервисных программ. Например, в ВЦ АН СССР разработан ряд программ для установки параметров принтеров семейства Epson FX-80.
Одна из этих программ - SETFX (автор В.В.Пономарев) - при запуске запрашивает у пользователя три параметра, которые используются наиболее часто: номер модификации шрифта, интервал между строками и левое поле. Программа загружает шрифт и устанавливает соответствующие параметры печати.
Другая программа - LFONT (автор А.Б.Борковский) - загружает в принтер русский шрифт с одновременным заданием номера его модификации.
Наиболее удобно, чтобы глобальные параметры для управления принтером могли задаваться в текстовом редакторе, но при этом не вносились в текст печатаемого файла. В этом случае переход от редактирования текста к его печати происходит быстро и естественно, но сам текстовый файл остается чистым, т.е. не содержит глобальных управляющих символов.
КАК ФОРМИРУЮТСЯ НОВЫЕ СИМВОЛЫ ДЛЯ ПЕЧАТИ НА ПРИНТЕРЕ? Многие современные принтеры имеют несколько встроенных шрифтов. Кроме того, на таких принтерах возможно использование загружаемых шрифтов. При этом в машине заранее формируется файл, в котором соответствующим образом кодируются знаки требуемого алфавита; этот файл посылается на принтер и запоминается в его оперативной памяти.
Посылка в принтер специальных управляющих команд заставляет его переключаться с одного шрифта на другой, причем это можно делать даже во время печати. После выбора того или иного шрифта выводимые на печать знаки изображаются на бумаге в соответствии с выбранным шрифтом и его модификацией.
Покажем на примере, как оформляется новый символ для точечно-матричного принтера. На принтерах семейства Epson FX-80 загрузка новых символов осуществляется с помощью следующей Esc-последовательности:
Esc & CHR (0) CHR (n) CHR(m) CHR(q) CHR(c1) CHR(c2) ... CHR (c8 ) CHR (с9) CHR(сA) CHR(cB)
В этой последовательности первые три символа (Esc & и CHR(0)) являются признаками начала команды, определяющей новый символ.
Числа n и m указывают диапазон кодов тех символов, для которых вводятся новые изображения. Если задается изображение лишь для одного символа, то n = m. В данном случае будем считать, что определяется единственный символ с десятичным кодом 156, т.е. n = m = 156.
Числа c1 ... cB представляют собой двоичные коды столбцов матрицы размером 8*11, в которой должен изображаться каждый символ. Пример такой матрицы для буквы Ь и соответствующие коды столбцов c1 ... cB приведены в следующих таблицах (при этом следует иметь в виду, что в отдельных строках разряды, содержащие 1, должны чередоваться с разрядами, содержащими 0):
Код числа q содержит управляющую информацию, в которой указывается способ размещения данного символа на матрице 9*12. Старший двоичный разряд указывает, нужно ли опускать данный символ на одну точку вниз (это делается, например, для букве "хвостиками" - таких как р, у, ц, щ).
Младшие 7 двоичных разрядов числа q устанавливают левую и правую границы матрицы с данным символом для вывода на принтер в режиме пропорциональной печати. При пропорциональной печати ширина печатаемой матрицы с изображением символа индивидуальна для каждого символа и зависит от его рисунка. Например, из матрицы с буквой I может печататься лишь 5 столбцов, а матрица с буквой Ш должна печататься целиком - все 11 столбцов. При этом текст на бумаге легче читается. Пример кодирования числа q:
двоичный код: 1(компонента D) 000(L) 1011(R)
Старший разряд D = 1 означает, что данный символ не нужно опускать вниз. Код L = 000 означает, что при пропорциональной печати самым левым является 0-й столбец матрицы с изображением данного символа. Код R = 1011 означает, что самым правым при пропорциональной печати является 11-й столбец. Следовательно, при указанных кодах должна печататься вся матрица с изображением данного символа. Таким образом, десятичное представление числа q = 139. Если необходимо ограничить ширину матрицы для пропорциональной печати, то коды R и L должны иметь другие значения.
Таким образом, вся Esc-последовательность для задания данного символа приобретает следующий вид:
Esc & CHR(0) CHR(156) CHR(156) CHR(139) CHR(255) CHR(0) CHR(255) CHR(0) CHR(17)
CHR(0) CHR(17) CHR(0) CHR(31) CHR(0) CHR(14)
Подобную же последовательность можно сформировать для любых других символов. Чтобы с помощью одной Esc-последовательности определить сразу несколько новых символов, достаточно указать диапазон их кодов (параметры n, m) и далее сформировать (m-n+1) групп по 12 кодов, подобных тем, которые приведены в рассмотренном примере.
ПЕЧАТЬ ТЕКСТОВОЙ И ГРАФИЧЕСКОЙ КОПИИ ЭКРАНА. В ДОС имеется возможность выводить на принтер копию изображения, имеющегося в данный момент на экране. Для этого используется специальная внутренняя подпрограмма, которая запускается при одновременном нажатии двух клавиш: Shift и PrtSc.
Когда на экран выведен текст в режиме 0, 1, 2, 3 или 7 (см. разд.3.1), то при нажатии клавиш Shift и PrtSc происходит считывание с экрана каждой строчки и печать ее на принтере. Так получается текстовая копия экрана. При этом изображения символов на экране и на бумаге совпадают лишь в том случае, если знакогенератор дисплея и шрифт, загруженный в принтер, идентичны. Если это не так, то некоторые символы, имеющие на экране один вид (например, русские буквы или буквы какого-либо национального алфавита), на бумаге напечатаются совершенно по-другому. Чтобы пояснить это обстоятельство, рассмотрим следующую схему:
<код символа в памяти компьютера> -> <код символа в знакогенераторе дисплея> -> R1 -> <изображение символа на экране>
<код символа в памяти компьютера> -> <код символа в шрифте принтера> -> R2 -> <изображение символа на бумаге>
Здесь R1 означает определение данного символа в знакогенераторе дисплея, a R2 - определение символа с тем же самым кодом в наборе символов (шрифте) принтера. Лишь при согласованном определении R1 и R2 изображение символа с данным кодом на экране дисплея и на бумаге будет одинаковым. Следовательно, задание кодировки символов в знакогенераторе дисплея и задание шрифта для принтера - это РАЗНЫЕ задачи, ио они должны решаться СОГЛАСОВАННО.
При попытке печати копии экрана, когда он находится в одном из графических режимов (4, 5 или 6), сканирование и считывание изображения с экрана происходит не по текстовым строчкам (их всего 25), а по точкам растра. В строке растра может быть 640 или 320 точек, а число строк равно 200. При выводе на принтер, который в этом случае автоматически переводится в графический режим, имеется возможность использовать разные степени плотности печати. Так, например, на принтерах типа Epson FX-80 могут использоваться три степени плотности графической печати:
- нормальная - 480 точек на строку (команда Esc K);
- двойная - 960 точек на строку (команда Esc L);
- четверная - 1920 точек на строку (команда Esc Z).
Следовательно, экранное изображение искажается при выводе на принтер. Обычно оно сжимается по горизонтали и вертикали. При этом, если на экран был выведен текст, то и он в данном режиме выводится на печать со сжатием всех символов.
В комплект ДОС входит сервисная программа GRAPHICS, к которой необходимо обращаться перед выдачей на принтер графической копии экрана. После обращения к этой программе нажатие клавиш Shift и PrtSc вызывает вывод на принтер графической копии экрана. При этом возможны 3 варианта:
1) если экран находится в текстовом режиме (0-3 или 7), то копирование происходит точно так же, как и без команды GRAPHICS;
2) если экран находится в режиме 4 или 5 (320*200 точек), то на принтер копируется текст и графические изображения, причем закрашенные цветные области отображаются на бумаге в оттенки серого цвета, если принтер не цветной;
3) если экран находится в 6-м режиме (640*200 точек), го изображение копируется на принтер повернутым на 90o - правый верхний угол экрана отображается в левый верхний угол на бумаге; при этом изображение как на экране, так и на принтере одноцветное.
После вызова программы GRAPHICS при копировании изображения с экрана точки черного цвета отображаются на бумаге в белый цвет и наоборот. Чтобы инвертировать цвета печатаемого на бумаге изображения, нужно обратиться к GRAPHICS с параметром /R, После этого черные точки экрана будут становиться черными и на бумаге.
Используя возможность перевода принтера в графический режим с помощью Esc-последовательностей, можно составить свою программу для вывода на принтер графических изображений. Такая программа, в частности, имеется в составе графических процессоров ВИКОНТ и ВГРАФ, разработанных в ВЦ АН СССР (автор Б.Т.Сираджов). Графические изображения, формируемые с помощью этой системы, могут выводиться в специальном формате в файлы, которые впоследствии могут быть выведены на печать. Полученные таким образом файлы могут содержать графические иллюстрации к текстовым документам и статьям. Вывод на печать файла с изображением, соответствующим одному экрану, занимает всего несколько секунд.
КОМАНДА MODE. Обычно принтеры подключаются к ПЭВМ по 8-разрядному параллельному каналу, который работает в соответствии со стандартом Centronix, Однако для многих типов принтеров существует возможность подключения по последовательному (асинхронному) каналу, который действует в соответствии со стандартом RS-232C. С точки зрения обслуживания принтера, последовательный канал не имеет никаких преимуществ перед параллельным; даже наоборот, он работает несколько медленнее, чем параллельный. Тем не менее по разным причинам может возникнуть необходимость подключения принтера к последовательному каналу (например, из-за отсутствия или неисправности адаптера параллельного канала).
Что нужно сделать для переключения принтера на последовательный канал?
Во-первых, в самом принтере нужно установить в соответствующие положения внутренние переключатели. Такие переключатели, разумеется, есть только в тех принтерах, которые обеспечивают работу по последовательному каналу.
Во-вторых, нужно подобрать соответствующий кабель для подсоединения принтера к адаптеру последовательного канала.
В-третьих, нужно указать операционной системе, что принтер подключен пе по параллельному, а по последовательному каналу. Эта операция проще всего реализуется с помощью сервисной программы MODE, поставляемой в комплекте ДОС.
Команда MODE, как указывалось в разд.4.1, позволяет устанавливать режим работы дисплея. Кроме того, имеется еще две разновидности этой команды: для переключения принтера на последовательный канал и для установки параметров последовательного канала. Пример обращения, обеспечивающего переключение принтера #1 на коммуникационный канал COM1:
mode lpt1 := com1
Для настройки параметров коммуникационного канала может быть применена такая команда:
mode com1:1200,e,8,1,p
Эта команда устанавливает скорость передачи данных 1200 бод, контроль по четности (на это указывает символ e), разрядность элемента данных - 8 и число стоп-битов - 1. Символ "p" означает, что при ошибке в приемнике (например, при выключенном принтере) необходимо повторять передаваемую порцию данных, пока ошибка ие будет устранена.
Указанные параметры должны быть согласованы с параметрами приемника - принтера или другого устройства, подключенного по последовательному каналу. Обыкновенно установка параметров в таких устройствах осуществляется с помощью соответствующих переключателей, согласно инструкции.
Возможные значения скорости передачи по последовательному каналу - 110, 150, 300, 600, 1200, 2400, 4800 или 9600 бод. Такой диапазон скоростей позволяет подключать ПЭВМ к самым разным линиям связи - начиная от простой телефонной сети до локальной сети с соответствующим протоколом обмена.
Точно так же можно изменять другие параметры последовательного канала. Возможные значения этих параметров: N - контроль по четности не производится, E - контроль на четность, О - контроль на нечетность; разрядность элемента данных: 7 или 8; число стоп-битов: 1 или 2.
Таким образом, с помощью команды MODE легко осуществлять настройку последовательных каналов, по которым ПЭВМ может соединяться с разнообразными внешними устройствами и другими ЭВМ.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Брябрин. Программное обеспечение персональных ЭВМ. 1990
4.4. ИНСТРУМЕНТАЛЬНЫЕ ЯЗЫКИ И СИСТЕМЫ ПРОГРАММИРОВАНИЯ
Разработка системного и прикладного программного обеспечения на персональных компьютерах осуществляется с помощью инструментальных средств, к которым в первую очередь относятся:
- трансляторы с языков высокого уровня;
- средства редактирования, компоновки и загрузки программ;
- макроассемблеры (машинно-ориентированные языки);
- отладчики машинных программ.
С каждой операционной системой связывается относительно стандартный набор инструментальных средств. Различия имеются лишь в версиях языков высокого уровня и в форматах объектных и загрузочных модулей, получающихся после трансляции и компоновки программ.
Основные инструментальные языки высокого уровня, используемые на персональных компьютерах - бейсик, паскаль, си, фортран. Не вдаваясь в детальные описания указанных языков, рассмотрим кратко их основные свойства.
БЕЙСИК. Исторически одним из самых популярных языков высокого уровня для ПЭВМ стал бейсик. В чем причина этой популярности? Прежде всего бейсик очень прост в освоении и использовании. Написать на бейсике небольшую программу в 10-20 строчек и тут же ее исполнить можно буквально за несколько минут.
В язык, как правило, встраиваются удобные функции для работы с экраном дисплея, клавиатурой, внешними накопителями, принтером, коммуникационными каналами. Это позволяет относиться к бейсику как к продолжению аппаратуры ПЭВМ. Чтобы освоить какую-нибудь особенность или режим работы аппаратных средств, проще всего написать и исполнить соответствующую программу на бейсике.
Стандартная система программирования на основе языка бейсик состоит из двух главных компонентов - редактора, позволяющего составлять и модифицировать программы, и интерпретатора, исполняющего подготовленные программы. Соответственно общение пользователя с системой распадается на два постоянно чередующихся процесса. При редактировании человек вводит с клавиатуры строки программы, просматривает набранный текст, сохраняет его в файлах на внешних носителях или читает (загружает) ранее введенную программу из файла с целью ее модификации или исполнения. Исполнение программы начинается, когда пользователь дает команду RUN; с этого момента к до конца работы программы (в частности, до остановки по ошибке) пользователь уже не меняет текст программы, а только наблюдает за результатом интерпретации, в ходе которой, разумеется, может происходить обмен информацией между человеком и машиной - рабочий диалог (рис.4.3).
Рис. 4.3. Схема взаимодействия пользователя с редактором и интерпретатором языка бейсик
Режим интерпретации способствует сокращению характерного цикла в работе программиста: составление программы - пробное исполнение - исправление ошибок - повторное исполнение. Это очень удобно при разработке небольших программ. Интерпретация, однако, имеет неизбежный недостаток - программы работают существенно медленнее, чем в случае использования трансляторов компилирующего типа, как, например, для языков паскаль и си. Объясняется это тем, что в режиме интерпретации каждый оператор языка сначала читается системой, анализируется в контексте уже работающей программы и лишь после этого исполняется. В трансляторах компилирующего типа, в отличие от этого, все стадии чтения и анализа осуществляются заранее - на этапе компиляции, а при исполнении работает готовая программа в машинных кодах, сформированная на этапе компиляции. Чтобы сохранить преимущества языка бейсик и в то же время дать возможность построения эффективных, быстро работающих программ, созданы бейсик-компиляторы. При этом на этапе составления и отладки программы используются преимущества интерпретационного режима, а после завершения отладки программа компилируется, порождая эффективные машинные коды. Появление компиляторов поставило бейсик в ряд с другими языками высокого уровня и придало ему дополнительную популярность.
Рассмотрим небольшую программу на бейсике:
10 SCREEN 1
20 CLS
30 REM ----- начальный диалог; запрос параметров -----
40 LOCATE 1, 1
50 PRINT "Будем рисовать прямоугольники";
60 LOCATE 3, 1
70 INPUT "Левый верхний угол (коорд. X, Y)", X, Y
80 INPUT "Ширина и высота прямоугольника", DX, DY
90 INPUT "Цвет (1 - синий, 2 - красный, 3 - белый)", C
100 REM ----- Далее идет подпрограмма рисования и окраски -----
110 LINE (X, Y) - (X + DX, Y), С 'верхняя сторона прямоугольника
120 LINE - (X + DX, Y + DY), С 'правая сторона
130 LINE - (X, Y + DY), С 'нижняя сторона
140 LINE - (X, Y), С 'левая сторона
150 PAINT (X + DX/2, Y + DY/2), С 'окраска из центра цветом C
160 REM ----- Переспрос, нужно ли повторять -----
170 LOCATE 23, 4 : PRINT "Чтобы повторить, нажмите пробел";
180 К$ = INKEY$: IF K$ = "" THEN GOTO 180
190 IF K$ <> " " THEN END 'Выход если нажат не пробел
200 REM --- Очистка позиций для параметров в 3-5-й строчках ---
210 FOR I = 33 ТО 5 : LOCATE 1,32 : PRINT SPACE$(7); : NEXT
220 BEEP : GOTO 60 'Переход на повторение
В этой программе иллюстрируется несколько характерных возможностей бейсика. Первые два оператора управляют экраном - оператор SCREEN 1 устанавливает графический режим со средней разрешающей способностью (320 точек по горизонтали, 200 точек по вертикали), а оператор CLS очищает экран.
Символ REM в 30-й строке, как и другие подобные символы в 100-й, 160-й и 200-й строках, служит для ввода в текст программы комментария. Такие строки игнорируются при исполнении программы и нужны лишь для того, чтобы программа была понятнее при чтении ее человеком. Имеется также возможность комментировать отдельные операторы, для чего после них ставится символ "апостроф" и после него - произвольный текст. Такие комментарии введены в строках 110-150, 190 и 220.
Группа операторов в 40-90 строках обеспечивает выдачу пользователю начальных сообщений (оператором PRINT) и запрашивает у него параметры для рисования цветных прямоугольников (операторами INPUT); при этом место на экране для выдачи сообщений устанавливается оператором LOCATE.
В строках 110-160 работает подпрограмма построения прямоугольника и его окраски. При этом используется специальный оператор LINE, который проводит линию заданного цвета из одной точки в другую. Четыре такие линии проводятся одна за другой в направлении по часовой стрелке, начиная и заканчивая точкой, которая определена как левый верхний угол прямоугольника (с координатами X, Y).
Затем оператор PAINT окрашивает построенный прямоугольник в тот же цвет, что и цвет линий, начиная с геометрического центра прямоугольника (координаты центра рассчитываются по исходным величинам - X, Y, DX и DY).
Наконец, в строках 170-220 реализуется заключительная фаза программы - пользователю предлагается нажать клавишу "пробел", если он хочет повторить построение. Следует обратить внимание, что в некоторых строках - 170, 180 и 210 - записано сразу по несколько операторов, разделяемых знаком :, что допускается правилами бейсика. На исполнение программы это не оказывает никакого влияния.
В строке 180 для анализа ответа пользователя применена особая функция ввода INKEY$, которая, в отличие от INPUT, ожидает ввода с клавиатуры сигнала от одной-единственной нажатой клавиши, а не последовательности символов, заканчивающейся нажатием клавиши "Исполнение". Символ, соответствующий нажатой клавише - значение функции INKEY$, присваивается символьной переменной К$. Пока клавиша не нажата,- INKEY$ возвращает в переменную К$ пустую строку, и оператор перехода GOTO заставляет программу "крутиться" в цикле. Это характерный прием, который служит для остановки бейсик-программы в ожидании, пока пользователь не нажмет какую-нибудь клавишу.
Принятый с помощью INKEY$ символ в 190-й строке сравнивается с пробелом. При несовпадении (обозначаемом символами <>) происходит окончание работы программы с помощью оператора END. В противном случае вступает в действие другой небольшой цикл (оператор FOR ... NEXT в 210-й строке программы). В теле этого цикла с помощью функций LOCATE и PRINT SPACE$(7) очищаются те позиции в 3-5-й строчках экрана, где пользователь вводил начальные параметры. Очистка указанных позиций достигается тем, что в них пишутся символы "пробел", вырабатываемые функцией SPACE$.
В последней строке программы оператором ВЕЕР подается короткий звуковой сигнал и происходит переход на повторение процесса (на строку 60).
Эта простая программа могла бы быть усовершенствована разными способами. Например, рисование закрашенного прямоугольника можно осуществить всего лишь одним оператором:
LINE (X, Y) - (X + DX, Y + DY), C, BF
С целью структуризации программы можно применять обращения к подпрограммам (операторы GOSUB и RETURN). Диалог можно организовать на основе меню с использованием операторов ON ... GOTO, ON ... GOSUB и др. Кроме операторов LINE, использованных в данной программе, имеется еще целый ряд графических операторов (CIRCLE, PSET, DRAW, PUT, GET, WINDOW, VIEW и др.), позволяющих производить сложные графические построения и манипуляции над построенными объектами.
Имеется несколько операторов для генерации звуковых сигналов (ВЕЕР, SOUND, PLAY), а также для манипулирования текстовыми строками. Наконец, имеются операторы для обращения к программам в машинных кодах.
Из этого небольшого обзора видно, что бейсик дает весьма богатые возможности для программирования прикладных систем.
Интерпретатор языка бейсик очень компактен по сравнению с трансляторами других языков высокого уровня. Он обычно занимает небольшой объем памяти - от 32 до 60 Кбайт - и часто записывается в ПЗУ машины, становясь как бы частью аппаратуры.
В связи со своей особой ролью бейсик считается необходимой принадлежностью персонального компьютера. В настоящее время имеется довольно много реализаций этого языка, но наиболее популярна версия бейсика для операционной системы типа MS-DOS.
Как правило, начинающие программисты пользуются языком бейсик для составления своих первых программ, но и переходя впоследствии к более профессиональному программированию, часто остаются приверженцами этого языка.
Бейсику отводится ведущая роль в школьном образовании, как языку обучения основам программирования. Именно поэтому в стандартном комплекте программного обеспечения для школьных машин предусмотрена обязательная реализация бейсика.
ЯЗЫКИ ПАСКАЛЬ И СИ. Языки паскаль и си чаще всего используются профессиональными системными программистами для разработки системных и прикладных программ. Оба эти языка позволяют работать с данными сложной структуры; оба имеют развитые средства для выделения отдельных частей программ в процедуры. Трансляторы с этих языков работают в режиме компиляции, что позволяет создавать эффективные машинные программы. Важным средством для построения больших программных систем является модульность, т.е. возможность независимой разработки отдельных частей программ и последующего их связывания в единую систему. Все эти особенности способствовали тому, что именно на паскале и си разрабатывается большинство крупных программных систем для персональных компьютеров.
Следует отметить, что между указанными языками, несмотря на общее сходство, имеются существенные различия. Паскаль является классическим языком программирования, который первоначально (в 1969г.) был создан как учебный язык и лишь спустя 5-6 лет приобрел популярность как отличный инструмент для решения серьезных задач. Программы на паскале понятны любому программисту-профессионалу, в то же время они транслируются в эффективные машинные коды. Программирование на паскале обеспечивает высокую степень надежности программ. В настоящее время разработано более десятка разных трансляторов с паскаля для ПЭВМ.
Паскаль, наряду с бейсиком, считается также учебным языком; он принят во многих учебных заведениях как базовый язык для изучения программирования.
Язык си, в отличие от Паскаля, с момента своего появления (1972г.) был ориентирован на разработку системных программ. Он, в частности, послужил главным инструментом для создания операционных систем ЮНИКС и MS-DOS. В этом языке имеются более гибкие средства для эффективного использования особенностей аппаратуры, чем в паскале. Благодаря этому порождаемые машинные программы, как правило, более компактны и работают быстрее, чем программы, полученные паскаль-трансляторами. С другой стороны, синтаксис языка си менее прозрачен, чем у паскаля; возможностей для внесения ошибок больше; чтение текстов программ требует определенного навыка. В связи с этим язык си применяется главным образом для создания системных и прикладных программ, в которых скорость работы и объем памяти являются критическими параметрами.
ЯЗЫК МОДУЛА-2. Стремление к созданию подлинно универсального и эффективного инструмента системного программирования привело к разработке нового языка - модула-2. Этот язык предложен известным ученым Н.Виртом - автором паскаля. Наследуя лучшие черты паскаля, в том числе его ясный синтаксис, модула-2 обладает лучшими средствами для разработки больших программных комплексов и позволяет более эффективно использовать особенности аппаратуры. Таким образом, этот новый язык призван заполнить нишу между паскалем и си.
В языке модула-2 явно сформулированы средства оформления программных модулей и организации взаимодействия между ними, в том числе на основе так называемых сопрограмм, работающих псевдопараллельно. В более распространенных языках, например в паскале и си, эти средства вводятся стихийно - в одних трансляторах они поддерживаются, в других нет. В языке модула-2 явными операторами задается экспорт и импорт внешних объектов.
По мере появления хороших трансляторов и приобретения опыта работы с ними модула-2 может занять ведущее место в иерархии языков высокого уровня для ПЭВМ.
ФОРТРАН И КОБОЛ. Язык фортран, как один из самых старых языков высокого уровня, активно используется и на персональных компьютерах. Применяется он главным образом при разработке прикладных систем, ориентированных на научные исследования, автоматизацию проектирования и другие области, где уже накоплены обширные стандартные библиотеки программ. Имеется несколько версий этого языка, из которых наиболее популярна версия фортран-77.
Другой "старый" язык - кобол, широко распространенный на больших и средних машинах, на персональных компьютерах почти не используется, хотя для него разработано несколько трансляторов. Дело в том, что вместо кобола в задачах экономического и управленческого характера с гораздо большим успехом могут использоваться интегрированные системы, базы данных и другие типы прикладных систем.
Кроме основных названных языков высокого уровня, следует упомянуть другие языки, получившие распространение на ПЭВМ: лого, лисп, пролог, АПЛ, форт.
ЯЗЫК ЛОГО. Язык лого создан с целью обучения детей младшего возраста основам алгоритмического мышления и программирования. Этот язык реализован для большинства персональных компьютеров, применяемых в школах. Хотя лого был разработан до того, как началось массовое распространение персональных компьютеров, именно с их появлением этот язык привлек внимание и приобрел популярность,
В отличие от бейсика, в лого используется концепция прямого управления движущимся на экране объектом. В роли такого объекта выступает специальный маркер, называемый черепашкой. С помощью простых, понятных ребенку операторов можно заставить черепашку двигаться по экрану и при этом рисовать или не рисовать за собой цветную линию. Типичные операторы лого: ВПЕРЕД, ВПРАВО, ВЛЕВО, НАЗАД, ПОВЕРНУТЬ, ПОДНЯТЬ ПЕРО, ОПУСТИТЬ ПЕРО, СМЕНИТЬ ЦВЕТ и др. Аргументы этих операций - числа, обозначающие число точек на экране, на которые нужно продвинуться, или число градусов для поворота. Операторы можно объединять в процедуры и затем вызывать эти процедуры с фактическими параметрами. Это свойство роднит лого с мощными языками программирования, такими как паскаль или лисп, и позволяет на простых игровых ситуациях освоить основные принципы структурного программирования.
ЯЗЫКИ ЛИСП И ПРОЛОГ. Язык лисп является идеальным инструментальным средством для построения программ с использованием методов искусственного интеллекта. Имеется несколько реализаций лисп-трансляторов для персональных компьютеров разных классов. Особенность этого языка состоит в удобстве динамического создания новых объектов. В качестве порождаемых программой объектов могут фигурировать и сами программы (функции), которые внешне ничем не отличаются от данных. Это открывает неожиданные возможности, которых нет в других языках программирования, такие как построение адаптирующихся и самоизменяющихся программ и др. Память в лиспе используется динамически - когда создается новый объект, для него из "свободной" памяти берется ровно столько ячеек, сколько нужно для хранения всех элементов; при этом не требуется никакого заблаговременного резервирования памяти, как в других языках (например, Паскале). При уничтожении объекта занятая им память автоматически освобождается.
Другая особенность языка лисп - функциональный способ записи программ, который, в частности, стимулирует составление рекурсивных алгоритмов, отличающихся выразительностью и компактной записью.
В последнее время в "традиционный" лисп внесен ряд дополнений, повышающих его пригодность к составлению больших и эффективных программ. Сюда относится расширение первичных (встроенных) типов данных, в частности, добавление массивов и специальных типов таблиц, введение таких управляющих конструкций, как WHILE и др., существенное расширение возможностей ввода/вывода, в том числе для работы с графической информацией на дисплее, стандартизация средств перехвата ошибок и отладки, введение механизма макрогенерации и др.
Большинство экспериментальных систем искусственного интеллекта - для анализа визуальных сцен, управления роботами, анализа текстов на естественном языке и др.- разрабатывается с использованием языка лисп.
Другой язык, применяемый при разработке систем искусственного интеллекта,- пролог. Этот сравнительно молодой язык, в основе которого лежит аппарат математической логики, позволяет разрабатывать на основе ПЭВМ экспертные системы, базы знаний и системы обработки естественного языка.
Программа на прологе содержит, во-первых, набор предикатов-утверждений, которые образуют проблемно-ориентированную базу данных. Другой тип выражений - это правила, имеющие вид условий "чтобы было X, нужно Y" или "имеет место X, если справедливо Y", где X и Y - любые предикаты или переменные.
Работа программы начинается с ввода предиката - утверждения или вопроса, который возбуждает перебор имеющихся в базе данных предикатов и правил, пока не будет достигнуто доказательство истинности или ложности исходного утверждения. В ходе такого доказательства, основанного на идеях метода резолюций, происходит присваивание значений переменным; эти значения представляют побочный результат работы программы и могут содержать ответ на поставленный в исходном предложении вопрос.
ЯЗЫКИ АПЛ И ФОРТ. Язык АПЛ, реализованный для нескольких моделей персональных компьютеров, наиболее пригоден для инженерных расчетов. На этом языке особенно легко формулируются задачи, связанные с операциями над векторами и матрицами. На основе языка АПЛ часто реализуются также специализированные прикладные системы - такие как системы машинной графики. Этот язык обеспечивает компактную запись алгоритмов и эффективные вычисления.
Однако для удобной работы с этим языком требуется довольно большой набор специальных символов, которые приходится наносить на клавиши стандартной клавиатуры. Это приемлемо лишь при систематическом использовании данного языка. В связи с этим применение АПЛ на персональных компьютерах не получило особенно широкого распространения.
Язык форт также относится к числу своеобразных языков. Он обладает структурой, позволяющей создавать очень компактные трансляторы. Объем требуемой памяти для транслятора, совмещенного с редактором,- менее 15 Кбайт. Это стимулировало появление форта еще на 8-разрядных персональных компьютерах первого поколения. Однако программирование на этом языке требует специальных навыков, поскольку базируется на особой нотации - "обратной польской записи". В связи с этим, несмотря на определенную привлекательность, форт получил распространение лишь в кругу своих активных поклонников.
ЯЗЫК АДА. Язык ада был предложен как универсальный инструмент для разработки больших программных систем, в первую очередь для решения задач реального времени. Однако несмотря на попытки придать ему статус универсального языка для всех применений, значительного распространения на ПЭВМ язык ада пока не нашел. Главная причина этого лежит, по-видимому, в его чрезмерной сложности, поскольку в подавляющем большинстве приложений ПЭВМ вполне достаточно возможностей, обеспечиваемых языками паскаль, си, модула-2. Будущее этого языка на персональных компьютерах пока неопределенно.
КРИТЕРИИ ВЫБОРА ЯЗЫКА ПРОГРАММИРОВАНИЯ. Когда возникает необходимость создания большой программной системы или составления программы для решении какой-либо частной задачи, встает вопрос о выборе для этой цели наиболее подходящего языка программирования. Во многих случаях такой выбор диктуется очень простыми "земными" факторами - доступностью того или иного транслятора и умением составлять программы на данном языке. Если, однако, в распоряжении пользователя имеется достаточно большой выбор языков программирования, то следует учитывать следующие обстоятельства:
- назначение разрабатываемой программы - нужна ли она временно или будет использоваться постоянно, планируется ли передавать ее другим организациям, будут ли разрабатываться ее новые версии;
- требуемая скорость работы программы, соотношение ее диалоговых и вычислительных компонентов;
- ожидаемый размер программы - можно ли будет ее создавать как единое целое или придется разбивать на отдельные взаимодействующие модули, требуется ли минимизировать размер памяти, занимаемой программой во время работы;
- необходимость сопряжения разрабатываемой программы с другими пакетами или программами, в том числе составленными на других языках программирования;
- предусматривается ли возможность переноса программы на другие типы ПЭВМ;
- основные типы данных, с которыми придется иметь дело, необходимость поддержки работы с действительными числами, строками, списками и другими типами структур;
- характер и уровень использования аппаратных средств - дисплея, клавиатуры и др., необходимость в специальном программировании некоторых функций для работы с внешними устройствами;
- возможность и целесообразность использования имеющихся стандартных библиотек подпрограмм, процедур, функций.
С точки зрения этих критериев возможности языков могут весьма сильно различаться, поэтому правильный выбор инструментального языка программирования является, вообще говоря, непростой задачей. Для программиста или даже коллектива программистов характерно начинать использование ПЭВМ с языка бейсик. На бейсике реализовано довольно много хороших прикладных систем. Появление компиляторов для бейсика делает этот язык еще более привлекательным, так как позволяет быстро переходить от экспериментальной, интерпретируемой версии программы к ее окончательной "коммерческой" версии.
Если встает задача построения большой прикладной системы, в которой должно быть несколько взаимодействующих модулей, и при этом необходима еще экономия памяти и достижение максимально возможного быстродействия программ, преимущество бейсика как быстрого и удобного для работы языка программирования отступает на второй план. Здесь обычно возникает выбор между использованием языков паскаль или си. Как указывалось, паскаль является более ортодоксальным языком, зато си позволяет программисту быть ближе к аппаратным средствам и более эффективно программировать критические места. Однако в целом эти языки сравнимы. Решающими для выбора могут стать конкретные особенности имеющихся в распоряжении программистов трансляторов, наличие библиотек со стандартными функциями. Часто выбор определяется тем, на каком языке программируют коллеги данного программиста или с какими другими системами и отдельными программами предстоит стыковать разрабатываемую программу.
Стыковка отдельных модулей или программ представляет собой отдельную проблему, которая может решаться разными способами и, в частности, может повлиять на выбор инструментального языка (или языков) программирования. В следующем параграфе подробнее рассматриваются методы стыковки программных модулей в рамках одного языка или программ на разных языках.
Разработка системного и прикладного программного обеспечения на персональных компьютерах осуществляется с помощью инструментальных средств, к которым в первую очередь относятся:
- трансляторы с языков высокого уровня;
- средства редактирования, компоновки и загрузки программ;
- макроассемблеры (машинно-ориентированные языки);
- отладчики машинных программ.
С каждой операционной системой связывается относительно стандартный набор инструментальных средств. Различия имеются лишь в версиях языков высокого уровня и в форматах объектных и загрузочных модулей, получающихся после трансляции и компоновки программ.
Основные инструментальные языки высокого уровня, используемые на персональных компьютерах - бейсик, паскаль, си, фортран. Не вдаваясь в детальные описания указанных языков, рассмотрим кратко их основные свойства.
БЕЙСИК. Исторически одним из самых популярных языков высокого уровня для ПЭВМ стал бейсик. В чем причина этой популярности? Прежде всего бейсик очень прост в освоении и использовании. Написать на бейсике небольшую программу в 10-20 строчек и тут же ее исполнить можно буквально за несколько минут.
В язык, как правило, встраиваются удобные функции для работы с экраном дисплея, клавиатурой, внешними накопителями, принтером, коммуникационными каналами. Это позволяет относиться к бейсику как к продолжению аппаратуры ПЭВМ. Чтобы освоить какую-нибудь особенность или режим работы аппаратных средств, проще всего написать и исполнить соответствующую программу на бейсике.
Стандартная система программирования на основе языка бейсик состоит из двух главных компонентов - редактора, позволяющего составлять и модифицировать программы, и интерпретатора, исполняющего подготовленные программы. Соответственно общение пользователя с системой распадается на два постоянно чередующихся процесса. При редактировании человек вводит с клавиатуры строки программы, просматривает набранный текст, сохраняет его в файлах на внешних носителях или читает (загружает) ранее введенную программу из файла с целью ее модификации или исполнения. Исполнение программы начинается, когда пользователь дает команду RUN; с этого момента к до конца работы программы (в частности, до остановки по ошибке) пользователь уже не меняет текст программы, а только наблюдает за результатом интерпретации, в ходе которой, разумеется, может происходить обмен информацией между человеком и машиной - рабочий диалог (рис.4.3).
Рис. 4.3. Схема взаимодействия пользователя с редактором и интерпретатором языка бейсик
Режим интерпретации способствует сокращению характерного цикла в работе программиста: составление программы - пробное исполнение - исправление ошибок - повторное исполнение. Это очень удобно при разработке небольших программ. Интерпретация, однако, имеет неизбежный недостаток - программы работают существенно медленнее, чем в случае использования трансляторов компилирующего типа, как, например, для языков паскаль и си. Объясняется это тем, что в режиме интерпретации каждый оператор языка сначала читается системой, анализируется в контексте уже работающей программы и лишь после этого исполняется. В трансляторах компилирующего типа, в отличие от этого, все стадии чтения и анализа осуществляются заранее - на этапе компиляции, а при исполнении работает готовая программа в машинных кодах, сформированная на этапе компиляции. Чтобы сохранить преимущества языка бейсик и в то же время дать возможность построения эффективных, быстро работающих программ, созданы бейсик-компиляторы. При этом на этапе составления и отладки программы используются преимущества интерпретационного режима, а после завершения отладки программа компилируется, порождая эффективные машинные коды. Появление компиляторов поставило бейсик в ряд с другими языками высокого уровня и придало ему дополнительную популярность.
Рассмотрим небольшую программу на бейсике:
10 SCREEN 1
20 CLS
30 REM ----- начальный диалог; запрос параметров -----
40 LOCATE 1, 1
50 PRINT "Будем рисовать прямоугольники";
60 LOCATE 3, 1
70 INPUT "Левый верхний угол (коорд. X, Y)", X, Y
80 INPUT "Ширина и высота прямоугольника", DX, DY
90 INPUT "Цвет (1 - синий, 2 - красный, 3 - белый)", C
100 REM ----- Далее идет подпрограмма рисования и окраски -----
110 LINE (X, Y) - (X + DX, Y), С 'верхняя сторона прямоугольника
120 LINE - (X + DX, Y + DY), С 'правая сторона
130 LINE - (X, Y + DY), С 'нижняя сторона
140 LINE - (X, Y), С 'левая сторона
150 PAINT (X + DX/2, Y + DY/2), С 'окраска из центра цветом C
160 REM ----- Переспрос, нужно ли повторять -----
170 LOCATE 23, 4 : PRINT "Чтобы повторить, нажмите пробел";
180 К$ = INKEY$: IF K$ = "" THEN GOTO 180
190 IF K$ <> " " THEN END 'Выход если нажат не пробел
200 REM --- Очистка позиций для параметров в 3-5-й строчках ---
210 FOR I = 33 ТО 5 : LOCATE 1,32 : PRINT SPACE$(7); : NEXT
220 BEEP : GOTO 60 'Переход на повторение
В этой программе иллюстрируется несколько характерных возможностей бейсика. Первые два оператора управляют экраном - оператор SCREEN 1 устанавливает графический режим со средней разрешающей способностью (320 точек по горизонтали, 200 точек по вертикали), а оператор CLS очищает экран.
Символ REM в 30-й строке, как и другие подобные символы в 100-й, 160-й и 200-й строках, служит для ввода в текст программы комментария. Такие строки игнорируются при исполнении программы и нужны лишь для того, чтобы программа была понятнее при чтении ее человеком. Имеется также возможность комментировать отдельные операторы, для чего после них ставится символ "апостроф" и после него - произвольный текст. Такие комментарии введены в строках 110-150, 190 и 220.
Группа операторов в 40-90 строках обеспечивает выдачу пользователю начальных сообщений (оператором PRINT) и запрашивает у него параметры для рисования цветных прямоугольников (операторами INPUT); при этом место на экране для выдачи сообщений устанавливается оператором LOCATE.
В строках 110-160 работает подпрограмма построения прямоугольника и его окраски. При этом используется специальный оператор LINE, который проводит линию заданного цвета из одной точки в другую. Четыре такие линии проводятся одна за другой в направлении по часовой стрелке, начиная и заканчивая точкой, которая определена как левый верхний угол прямоугольника (с координатами X, Y).
Затем оператор PAINT окрашивает построенный прямоугольник в тот же цвет, что и цвет линий, начиная с геометрического центра прямоугольника (координаты центра рассчитываются по исходным величинам - X, Y, DX и DY).
Наконец, в строках 170-220 реализуется заключительная фаза программы - пользователю предлагается нажать клавишу "пробел", если он хочет повторить построение. Следует обратить внимание, что в некоторых строках - 170, 180 и 210 - записано сразу по несколько операторов, разделяемых знаком :, что допускается правилами бейсика. На исполнение программы это не оказывает никакого влияния.
В строке 180 для анализа ответа пользователя применена особая функция ввода INKEY$, которая, в отличие от INPUT, ожидает ввода с клавиатуры сигнала от одной-единственной нажатой клавиши, а не последовательности символов, заканчивающейся нажатием клавиши "Исполнение". Символ, соответствующий нажатой клавише - значение функции INKEY$, присваивается символьной переменной К$. Пока клавиша не нажата,- INKEY$ возвращает в переменную К$ пустую строку, и оператор перехода GOTO заставляет программу "крутиться" в цикле. Это характерный прием, который служит для остановки бейсик-программы в ожидании, пока пользователь не нажмет какую-нибудь клавишу.
Принятый с помощью INKEY$ символ в 190-й строке сравнивается с пробелом. При несовпадении (обозначаемом символами <>) происходит окончание работы программы с помощью оператора END. В противном случае вступает в действие другой небольшой цикл (оператор FOR ... NEXT в 210-й строке программы). В теле этого цикла с помощью функций LOCATE и PRINT SPACE$(7) очищаются те позиции в 3-5-й строчках экрана, где пользователь вводил начальные параметры. Очистка указанных позиций достигается тем, что в них пишутся символы "пробел", вырабатываемые функцией SPACE$.
В последней строке программы оператором ВЕЕР подается короткий звуковой сигнал и происходит переход на повторение процесса (на строку 60).
Эта простая программа могла бы быть усовершенствована разными способами. Например, рисование закрашенного прямоугольника можно осуществить всего лишь одним оператором:
LINE (X, Y) - (X + DX, Y + DY), C, BF
С целью структуризации программы можно применять обращения к подпрограммам (операторы GOSUB и RETURN). Диалог можно организовать на основе меню с использованием операторов ON ... GOTO, ON ... GOSUB и др. Кроме операторов LINE, использованных в данной программе, имеется еще целый ряд графических операторов (CIRCLE, PSET, DRAW, PUT, GET, WINDOW, VIEW и др.), позволяющих производить сложные графические построения и манипуляции над построенными объектами.
Имеется несколько операторов для генерации звуковых сигналов (ВЕЕР, SOUND, PLAY), а также для манипулирования текстовыми строками. Наконец, имеются операторы для обращения к программам в машинных кодах.
Из этого небольшого обзора видно, что бейсик дает весьма богатые возможности для программирования прикладных систем.
Интерпретатор языка бейсик очень компактен по сравнению с трансляторами других языков высокого уровня. Он обычно занимает небольшой объем памяти - от 32 до 60 Кбайт - и часто записывается в ПЗУ машины, становясь как бы частью аппаратуры.
В связи со своей особой ролью бейсик считается необходимой принадлежностью персонального компьютера. В настоящее время имеется довольно много реализаций этого языка, но наиболее популярна версия бейсика для операционной системы типа MS-DOS.
Как правило, начинающие программисты пользуются языком бейсик для составления своих первых программ, но и переходя впоследствии к более профессиональному программированию, часто остаются приверженцами этого языка.
Бейсику отводится ведущая роль в школьном образовании, как языку обучения основам программирования. Именно поэтому в стандартном комплекте программного обеспечения для школьных машин предусмотрена обязательная реализация бейсика.
ЯЗЫКИ ПАСКАЛЬ И СИ. Языки паскаль и си чаще всего используются профессиональными системными программистами для разработки системных и прикладных программ. Оба эти языка позволяют работать с данными сложной структуры; оба имеют развитые средства для выделения отдельных частей программ в процедуры. Трансляторы с этих языков работают в режиме компиляции, что позволяет создавать эффективные машинные программы. Важным средством для построения больших программных систем является модульность, т.е. возможность независимой разработки отдельных частей программ и последующего их связывания в единую систему. Все эти особенности способствовали тому, что именно на паскале и си разрабатывается большинство крупных программных систем для персональных компьютеров.
Следует отметить, что между указанными языками, несмотря на общее сходство, имеются существенные различия. Паскаль является классическим языком программирования, который первоначально (в 1969г.) был создан как учебный язык и лишь спустя 5-6 лет приобрел популярность как отличный инструмент для решения серьезных задач. Программы на паскале понятны любому программисту-профессионалу, в то же время они транслируются в эффективные машинные коды. Программирование на паскале обеспечивает высокую степень надежности программ. В настоящее время разработано более десятка разных трансляторов с паскаля для ПЭВМ.
Паскаль, наряду с бейсиком, считается также учебным языком; он принят во многих учебных заведениях как базовый язык для изучения программирования.
Язык си, в отличие от Паскаля, с момента своего появления (1972г.) был ориентирован на разработку системных программ. Он, в частности, послужил главным инструментом для создания операционных систем ЮНИКС и MS-DOS. В этом языке имеются более гибкие средства для эффективного использования особенностей аппаратуры, чем в паскале. Благодаря этому порождаемые машинные программы, как правило, более компактны и работают быстрее, чем программы, полученные паскаль-трансляторами. С другой стороны, синтаксис языка си менее прозрачен, чем у паскаля; возможностей для внесения ошибок больше; чтение текстов программ требует определенного навыка. В связи с этим язык си применяется главным образом для создания системных и прикладных программ, в которых скорость работы и объем памяти являются критическими параметрами.
ЯЗЫК МОДУЛА-2. Стремление к созданию подлинно универсального и эффективного инструмента системного программирования привело к разработке нового языка - модула-2. Этот язык предложен известным ученым Н.Виртом - автором паскаля. Наследуя лучшие черты паскаля, в том числе его ясный синтаксис, модула-2 обладает лучшими средствами для разработки больших программных комплексов и позволяет более эффективно использовать особенности аппаратуры. Таким образом, этот новый язык призван заполнить нишу между паскалем и си.
В языке модула-2 явно сформулированы средства оформления программных модулей и организации взаимодействия между ними, в том числе на основе так называемых сопрограмм, работающих псевдопараллельно. В более распространенных языках, например в паскале и си, эти средства вводятся стихийно - в одних трансляторах они поддерживаются, в других нет. В языке модула-2 явными операторами задается экспорт и импорт внешних объектов.
По мере появления хороших трансляторов и приобретения опыта работы с ними модула-2 может занять ведущее место в иерархии языков высокого уровня для ПЭВМ.
ФОРТРАН И КОБОЛ. Язык фортран, как один из самых старых языков высокого уровня, активно используется и на персональных компьютерах. Применяется он главным образом при разработке прикладных систем, ориентированных на научные исследования, автоматизацию проектирования и другие области, где уже накоплены обширные стандартные библиотеки программ. Имеется несколько версий этого языка, из которых наиболее популярна версия фортран-77.
Другой "старый" язык - кобол, широко распространенный на больших и средних машинах, на персональных компьютерах почти не используется, хотя для него разработано несколько трансляторов. Дело в том, что вместо кобола в задачах экономического и управленческого характера с гораздо большим успехом могут использоваться интегрированные системы, базы данных и другие типы прикладных систем.
Кроме основных названных языков высокого уровня, следует упомянуть другие языки, получившие распространение на ПЭВМ: лого, лисп, пролог, АПЛ, форт.
ЯЗЫК ЛОГО. Язык лого создан с целью обучения детей младшего возраста основам алгоритмического мышления и программирования. Этот язык реализован для большинства персональных компьютеров, применяемых в школах. Хотя лого был разработан до того, как началось массовое распространение персональных компьютеров, именно с их появлением этот язык привлек внимание и приобрел популярность,
В отличие от бейсика, в лого используется концепция прямого управления движущимся на экране объектом. В роли такого объекта выступает специальный маркер, называемый черепашкой. С помощью простых, понятных ребенку операторов можно заставить черепашку двигаться по экрану и при этом рисовать или не рисовать за собой цветную линию. Типичные операторы лого: ВПЕРЕД, ВПРАВО, ВЛЕВО, НАЗАД, ПОВЕРНУТЬ, ПОДНЯТЬ ПЕРО, ОПУСТИТЬ ПЕРО, СМЕНИТЬ ЦВЕТ и др. Аргументы этих операций - числа, обозначающие число точек на экране, на которые нужно продвинуться, или число градусов для поворота. Операторы можно объединять в процедуры и затем вызывать эти процедуры с фактическими параметрами. Это свойство роднит лого с мощными языками программирования, такими как паскаль или лисп, и позволяет на простых игровых ситуациях освоить основные принципы структурного программирования.
ЯЗЫКИ ЛИСП И ПРОЛОГ. Язык лисп является идеальным инструментальным средством для построения программ с использованием методов искусственного интеллекта. Имеется несколько реализаций лисп-трансляторов для персональных компьютеров разных классов. Особенность этого языка состоит в удобстве динамического создания новых объектов. В качестве порождаемых программой объектов могут фигурировать и сами программы (функции), которые внешне ничем не отличаются от данных. Это открывает неожиданные возможности, которых нет в других языках программирования, такие как построение адаптирующихся и самоизменяющихся программ и др. Память в лиспе используется динамически - когда создается новый объект, для него из "свободной" памяти берется ровно столько ячеек, сколько нужно для хранения всех элементов; при этом не требуется никакого заблаговременного резервирования памяти, как в других языках (например, Паскале). При уничтожении объекта занятая им память автоматически освобождается.
Другая особенность языка лисп - функциональный способ записи программ, который, в частности, стимулирует составление рекурсивных алгоритмов, отличающихся выразительностью и компактной записью.
В последнее время в "традиционный" лисп внесен ряд дополнений, повышающих его пригодность к составлению больших и эффективных программ. Сюда относится расширение первичных (встроенных) типов данных, в частности, добавление массивов и специальных типов таблиц, введение таких управляющих конструкций, как WHILE и др., существенное расширение возможностей ввода/вывода, в том числе для работы с графической информацией на дисплее, стандартизация средств перехвата ошибок и отладки, введение механизма макрогенерации и др.
Большинство экспериментальных систем искусственного интеллекта - для анализа визуальных сцен, управления роботами, анализа текстов на естественном языке и др.- разрабатывается с использованием языка лисп.
Другой язык, применяемый при разработке систем искусственного интеллекта,- пролог. Этот сравнительно молодой язык, в основе которого лежит аппарат математической логики, позволяет разрабатывать на основе ПЭВМ экспертные системы, базы знаний и системы обработки естественного языка.
Программа на прологе содержит, во-первых, набор предикатов-утверждений, которые образуют проблемно-ориентированную базу данных. Другой тип выражений - это правила, имеющие вид условий "чтобы было X, нужно Y" или "имеет место X, если справедливо Y", где X и Y - любые предикаты или переменные.
Работа программы начинается с ввода предиката - утверждения или вопроса, который возбуждает перебор имеющихся в базе данных предикатов и правил, пока не будет достигнуто доказательство истинности или ложности исходного утверждения. В ходе такого доказательства, основанного на идеях метода резолюций, происходит присваивание значений переменным; эти значения представляют побочный результат работы программы и могут содержать ответ на поставленный в исходном предложении вопрос.
ЯЗЫКИ АПЛ И ФОРТ. Язык АПЛ, реализованный для нескольких моделей персональных компьютеров, наиболее пригоден для инженерных расчетов. На этом языке особенно легко формулируются задачи, связанные с операциями над векторами и матрицами. На основе языка АПЛ часто реализуются также специализированные прикладные системы - такие как системы машинной графики. Этот язык обеспечивает компактную запись алгоритмов и эффективные вычисления.
Однако для удобной работы с этим языком требуется довольно большой набор специальных символов, которые приходится наносить на клавиши стандартной клавиатуры. Это приемлемо лишь при систематическом использовании данного языка. В связи с этим применение АПЛ на персональных компьютерах не получило особенно широкого распространения.
Язык форт также относится к числу своеобразных языков. Он обладает структурой, позволяющей создавать очень компактные трансляторы. Объем требуемой памяти для транслятора, совмещенного с редактором,- менее 15 Кбайт. Это стимулировало появление форта еще на 8-разрядных персональных компьютерах первого поколения. Однако программирование на этом языке требует специальных навыков, поскольку базируется на особой нотации - "обратной польской записи". В связи с этим, несмотря на определенную привлекательность, форт получил распространение лишь в кругу своих активных поклонников.
ЯЗЫК АДА. Язык ада был предложен как универсальный инструмент для разработки больших программных систем, в первую очередь для решения задач реального времени. Однако несмотря на попытки придать ему статус универсального языка для всех применений, значительного распространения на ПЭВМ язык ада пока не нашел. Главная причина этого лежит, по-видимому, в его чрезмерной сложности, поскольку в подавляющем большинстве приложений ПЭВМ вполне достаточно возможностей, обеспечиваемых языками паскаль, си, модула-2. Будущее этого языка на персональных компьютерах пока неопределенно.
КРИТЕРИИ ВЫБОРА ЯЗЫКА ПРОГРАММИРОВАНИЯ. Когда возникает необходимость создания большой программной системы или составления программы для решении какой-либо частной задачи, встает вопрос о выборе для этой цели наиболее подходящего языка программирования. Во многих случаях такой выбор диктуется очень простыми "земными" факторами - доступностью того или иного транслятора и умением составлять программы на данном языке. Если, однако, в распоряжении пользователя имеется достаточно большой выбор языков программирования, то следует учитывать следующие обстоятельства:
- назначение разрабатываемой программы - нужна ли она временно или будет использоваться постоянно, планируется ли передавать ее другим организациям, будут ли разрабатываться ее новые версии;
- требуемая скорость работы программы, соотношение ее диалоговых и вычислительных компонентов;
- ожидаемый размер программы - можно ли будет ее создавать как единое целое или придется разбивать на отдельные взаимодействующие модули, требуется ли минимизировать размер памяти, занимаемой программой во время работы;
- необходимость сопряжения разрабатываемой программы с другими пакетами или программами, в том числе составленными на других языках программирования;
- предусматривается ли возможность переноса программы на другие типы ПЭВМ;
- основные типы данных, с которыми придется иметь дело, необходимость поддержки работы с действительными числами, строками, списками и другими типами структур;
- характер и уровень использования аппаратных средств - дисплея, клавиатуры и др., необходимость в специальном программировании некоторых функций для работы с внешними устройствами;
- возможность и целесообразность использования имеющихся стандартных библиотек подпрограмм, процедур, функций.
С точки зрения этих критериев возможности языков могут весьма сильно различаться, поэтому правильный выбор инструментального языка программирования является, вообще говоря, непростой задачей. Для программиста или даже коллектива программистов характерно начинать использование ПЭВМ с языка бейсик. На бейсике реализовано довольно много хороших прикладных систем. Появление компиляторов для бейсика делает этот язык еще более привлекательным, так как позволяет быстро переходить от экспериментальной, интерпретируемой версии программы к ее окончательной "коммерческой" версии.
Если встает задача построения большой прикладной системы, в которой должно быть несколько взаимодействующих модулей, и при этом необходима еще экономия памяти и достижение максимально возможного быстродействия программ, преимущество бейсика как быстрого и удобного для работы языка программирования отступает на второй план. Здесь обычно возникает выбор между использованием языков паскаль или си. Как указывалось, паскаль является более ортодоксальным языком, зато си позволяет программисту быть ближе к аппаратным средствам и более эффективно программировать критические места. Однако в целом эти языки сравнимы. Решающими для выбора могут стать конкретные особенности имеющихся в распоряжении программистов трансляторов, наличие библиотек со стандартными функциями. Часто выбор определяется тем, на каком языке программируют коллеги данного программиста или с какими другими системами и отдельными программами предстоит стыковать разрабатываемую программу.
Стыковка отдельных модулей или программ представляет собой отдельную проблему, которая может решаться разными способами и, в частности, может повлиять на выбор инструментального языка (или языков) программирования. В следующем параграфе подробнее рассматриваются методы стыковки программных модулей в рамках одного языка или программ на разных языках.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Брябрин. Программное обеспечение персональных ЭВМ. 1990
4.5. ОСОБЕННОСТИ РАЗРАБОТКИ ПРИКЛАДНЫХ СИСТЕМ
При создании прикладных систем на ПЭВМ большая часть программных модулей составляется на языках высокого уровня (ЯВУ). Имеется несколько вариантов организации их взаимодействия, основанных как на свойствах ЯВУ, так и на особенностях операционных систем. Довольно часто возникает необходимость в программировании машинно-зависимых частей на языке ассемблера или макроассемблера, в связи с чем встает задача организации взаимодействия программ на ЯВУ с программами на ассемблере.
При проектировании большой прикладной системы с самого начала необходимо решить несколько принципиальных вопросов, касающихся общей структуры системы и способа взаимодействия отдельных компонентов. В частности, должны быть определены следующие характеристики.
A. Состав исходного текста программ, который может представлять собой:
А1) единый текст на ЯВУ или на ассемблере;
А2) отдельные текстовые модули на ЯВУ или на ассемблере, которые составляются независимо и, возможно, даже разными людьми.
Б. Структура исполняемой программы, которая может представлять собой:
Б1) единый модуль, полностью загружаемый в оперативную память при запуске системы;
Б2) несколько сегментов, загружаемых в оперативную память по мере необходимости с частичным взаимным перекрытием (наложением друг на друга);
Б3) резидентную часть, загружаемую в оперативную память в начале сеанса, и одну или несколько нерезидентных частей, загружаемых в оперативную память по мере необходимости.
В. Способ хранения данных, с которыми работает система. Основные варианты хранения:
В1) все данные располагаются в одном файле;
В2) данные распределены по нескольким файлам.
Различные сочетания указанных характеристик приводят к построению прикладных систем, которые могут отличаться очень сильно. Варианты А влияют на способ и качество разработки. Варианты Б оказывают критическое воздействие на оперативные характеристики системы - объем требуемой памяти и быстродействие. Варианты В, с одной стороны, влияют на быстродействие при доступе к данным, с другой стороны - на характер использования и экономию внешней памяти.
Рассмотрим несколько приемов реализации указанных характеристик при построении прикладных систем.
4.5.1. СТРУКТУРИРОВАНИЕ ПРОГРАММ НА УРОВНЕ ТЕКСТОВЫХ МОДУЛЕЙ
ПРОСТЫЕ ПРОГРАММЫ. Самый простой способ разработки программ не предполагает применения каких-либо приемов деления их на модули или на сегменты. Для составления такой программы обычно используется текстовый редактор общего назначения или редактор, встроенный в систему (как, например, в языке бейсик или в системе программирования TurboPascal). Процесс разработки программы соответствует общей схеме, изображенной на рис.4.3.
Простейшая программа на паскале, печатающая на экране слово "Hello", может выглядеть следующим образом:
PROGRAM Test;
BEGIN
WRITELN ('Hello');
END.
Аналогичная программа на языке си имеет следующий вид:
main ()
{
printf ("Hello");
}
Более сложные программы включают описания типов данных, переменных, констант. Важнейшими компонентами программ на ЯВУ являются процедуры и функции, которые обеспечивают структуризацию программ на уровне исходных текстов. Так, например, общая структура программы на паскале может иметь вид:
PROGRAM имя-программы (параметры-программы);
<описания глобальных объектов программы - типов данных, переменных, констант> PROCEDURE P1 (параметры процедуры P1);
<описания локальных объектов процедуры P1>
BEGIN
<тело процедуры P1>
END;
PROCEDURE P2 (параметры процедуры P2);
<описания локальных объектов процедуры P2>
BEGIN
<тело процедуры P2>
END;
...
BEGIN
<начало тела программы>
... P1(...); ... {обращение к P1}
... P2(...); ... {обращение к P2}
<конец тела программы>
END.
В этом тексте можно выделить три основных компонента:
- заголовок программы - название, список параметров, описания типов, глобальных переменных, констант;
- описания процедур - их заголовки с описаниями параметров и тела, состоящие из выражений;
- тело программы - последовательность выражений, среди которых встречаются обращения к определенным выше процедурам.
Таким образом, структуризация программы на уровне исходного текста обеспечивается благодаря оформлению отдельных частей алгоритмов в виде процедур и последующему вызову этих процедур в теле программы. Все необходимые связи между формальными и фактическими параметрами процедур устанавливаются транслятором данного языка программирования. В разных языках способы оформления указанных компонентов различаются, но общий принцип сохраняется.
В частности, в языке си отсутствует, как таковой, заголовок программы. Вместо него используется специальная "главная" процедура-функция с именем main, аргументы которой интерпретируются так же, как аргументы программы в паскале.
В начальной части программы на си можно, как и на паскале, ввести описания глобальных переменных и констант. В теле программы точно так же могут использоваться обращения к определенным ранее функциям (в языке си все процедуры являются функциями), а также к переменным и константам.
В бейсике, в отличие от паскаля и си, нет средства для явного определения процедур. Их роль играют просто участки программ, оканчивающиеся оператором возврата RETURN. Такие участки называются подпрограммами, и к ним можно обращаться с помощью оператора GOSUB из любых других точек программы. При структурном программировании на бейсике подпрограммы обычно размещают в конце, а основные операторы - в начале текста программы.
ТЕКСТОВАЯ ПОДСТАНОВКА ПРОГРАММНЫХ МОДУЛЕЙ. Рассмотренный выше подход позволяет создавать программы, тексты которых представляют собой единое целое и хранятся в отдельных массивах на внешних носителях.
Один из приемов деления исходного текста программы на отдельные части состоит в использовании метода макрогенерации. В текст главной программы вводятся специальные выражения, указывающие компилятору на необходимость включения в нее текста других модулей, В системе программирования на основе паскаля "включение" тестового файла M1.PAS в программу осуществляется с помощью выражения вида:
{$INCLUDE; 'M1.PAS'}
На языке Си включение в программу текстового файла STDIO.H обеспечивается выражением вида:
#include "stdio.h"
Возможность текстовой подстановки позволяет при вводе (редактировании) исходных текстов программ иметь дело с относительно небольшими фрагментами текста, каждый из которых содержит определенную группу функций.
4.5.2. РАЗДЕЛЬНО КОМПИЛИРУЕМЫЕ МОДУЛИ И БИБЛИОТЕКИ ПРОЦЕДУР
В рассмотренном выше методе соединение текстов отдельных модулей происходит в самом начале процесса трансляции - при макроподстановке; основная же работа транслятора производится над полностью собранным текстом. Если составленная таким образом программа велика по объему, например содержит от 500 до 1000 и более строк, то процесс трансляции может занимать довольно много времени - до нескольких минут, что весьма обременительно при интенсивной отладке, когда приходится часто вносить небольшие изменения в исходные тексты и вновь транслировать программу.
Чтобы избежать указанного недостатка, применяется другой подход к построению больших программ - составление отдельных модулей, которые транслируются совершенно независимо друг от друга и должны связываться лишь на стадии окончательного формирования исполняемой программы в машинных кодах.
Так, в некоторых реализациях языка паскаль (в частности, в системе IBM-Pascal) можно использовать два типа раздельно компилируемых модулей: MODULE и UNIT. Рассмотрим способы оформления указанных модулей.
МОДУЛЬ ТИПА MODULE. Модуль типа MODULE внешне оформляется почти как главная программа; его основной целью является описание нескольких взаимосвязанных процедур вместе с необходимыми типами, переменными и константами. Тело у модуля обычно отсутствует. Рассмотрим простой пример такого модуля:
{ ----- Модуль P1.PAS ----- }
MODULE P1;
PROCEDURE PP1 (A:INTEGER); [PUBLIC]
BEGIN
<тело процедуры PP1>
END;
PROCEDURE PP2 (B:REAL); [PUBLIC]
BEGIN
<тело процедуры PP2>
END;
BEGIN
END.
{ ----- }
Описанные в этом модуле процедуры PP1 и PP2 снабжены специальными указателями [PUBLIC], которые свидетельствуют об общедоступности этих процедур для других программ.
Чтобы использовать указанные процедуры в главной программе и в других модулях, их необходимо объявить там следующим образом:
PROCEDURE PP1 (A:INTEGER); EXTERNAL;
PROCEDURE PP2 (B:REAL); EXTERNAL;
Указатель EXTERNAL свидетельствует, что объявленные таким способом процедуры являются внешними по отношению к тому модулю, который их использует. Однако обращения к ним в его теле имеют самый обычный вид, и в этом смысле внешние процедуры не отличаются от тех, которые описаны непосредственно в данном модуле.
Этот способ применяется не только при модульном программировании в рамках одного ЯВУ, но также и при составлении программ из модулей на разных языках, например на паскале и фортране или па паскале и ассемблере. Главная проблема в этом случае состоит в правильной передаче параметров процедур и функций, поскольку в разных языках параметры могут обрабатываться по-разному.
МОДУЛЬ ТИПА UNIT. Модуль типа UNIT, который можно назвать иначе "блоком", описывается с помощью двух компонентов. Один из них - РЕАЛИЗАЦИЯ БЛОКА - содержит тела процедур и вспомогательные типы, переменные и константы. Другой компонент - ОПИСАНИЕ БЛОКА, или ИНТЕРФЕЙС,- содержит описания типов, переменных и констант, а также заголовки процедур (без их тел), которые предназначены для использования в других модулях и в главной программе. В интерфейс блока включается общий список имен указанных объектов, что делает их "видимыми" из других модулей.
Пример реализации блока P2.PAS:
{ ----- Реализация блока P2.PAS ----- }
IMPLEMENTATION OF P2;
PROCEDURE get_key;
BEGIN
<тело процедуры get_key>
END;
<описания и тела других процедур>
BEGIN
END.
Интерфейс этого блока может иметь следующий вид:
{ ----- Интерфейс блока P2.INT ----- }
INTERFACE;
UNIT P2;
(get_key, key_descr, ...<имена других процедур> ...);
TYPE key_descr = RECORD scan_code, ascii:BYTE END;
PROCEDURE get_key;
...
<заголовки других процедур данного блока>
...
END;
{ ----- }
Использование объектов модуля типа UNIT в главной программе требует, во-первых, включения его интерфейса перед заголовкам программы; во-вторых, упоминания имени блока сразу после заголовка программы, для чего служит выражение вида:
USES <имя блока>;
Начальная часть программы приобретает в результате такой вид:
{ ----- Главная программа - PP.PAS ----- }
{$INCLUDE: 'P2.INT'}
...
PROGRAM PP (Input, output);
USES P2;
...
{ ----- }
Здесь текстовое включение интерфейса блока P2 в программу PP.PAS осуществляется с помощью рассмотренного выше выражения $INCLUDE.
4.5.3. ГЕНЕРАЦИЯ ОБЪЕКТНЫХ МОДУЛЕЙ И ЗАГРУЗОЧНЫХ ФАЙЛОВ
В результате компиляции отдельных текстовых модулей порождаются так называемые объектные модули. Например, обращение к транслятору IBM-Pascal для трансляции исходной программы PP.PAS имеет вид:
PAS1 PP;
PAS2
Объектный модуль, который порождается после двух проходов трансляции (PAS1 и PAS2), можно считать "полуфабрикатом" - куском машинного кода, готовым к превращению в загрузочный файл. Объектный модуль заносится в особый файл, которому придается тип OBJ. Следовательно, паскаль-транслятор осуществляет преобразование файла типа PAS в файл типа OBJ. Для рассматриваемого нами примера этот процесс можно изобразить следующей условной схемой:
PP.PAS -> транслятор -> PP.OBJ
Следующий этап состоит в преобразовании совокупности отдельных объектных модулей в загрузочный файл, т.е. в файл типа EXE или COM. Этот процесс называется связыванием объектных модулей или сборкой задачи. Соответствующая схема преобразования:
PP.OBJ -> PP.EXE или PP.OBJ -> PP.COM
Данный этап реализуется специальной системной программой LINK, которую называют редактором связей или компоновщиком. При обращении к LINK указываются все объектные модули, которые должны быть объединены в общую программу; указывается также имя файла с результирующей программой, имя файла с листингом (необязательный параметр) и имя файла с библиотекой процедур. Пример обращения к LINK для связывания модулей, оттранслированных с паскаля:
LINK PP+P1+P2, PP, PP.LST, PASLIB.LIB
(т.е. объектные модули, эагрузочный файл, файл-листинг, библиотека процедур)
4.5.4. БИБЛИОТЕКИ ОБЪЕКТНЫХ МОДУЛЕЙ
Один из способов оформления независимых частей программы состоит в создании библиотек объектных модулей, которые затем можно включать в формируемую задачу на стадии сборки. Для формирования библиотеки обьектных модулей служит вспомогательная программа LIB, которая позволяет создать новую библиотеку или пополнить старую библиотеку процедурами, которые извлекаются нз оттранслированных заранее объектных модулей или из другой библиотеки. Общий вид обращения к программе LIB:
LIB <старая-библиотека> <размер-страницы> <операции>, <файл-с-листингом>, <новая-библиотека>
При обращении к LIB могут указываться имена старой и новой библиотек. Размер страницы (= 16, 32, ... 512) задает величину буфера для обмена; это необязательный параметр. Главные действия задаются ОПЕРАЦИЯМИ. Операция может иметь следующие разновидности (mm - имя модуля):
+ mm {добавление модуля в библиотеку},
- mm {удаление модуля из библиотеки},
* mm {извлечение модуля из библиотеки},
-+ mm {замена модуля в библиотеке},
-* mm {извлечение модуля с удалением}.
Пример обращения к LIB:
LIB OLDLIB +P2,,NEWLIB
Такое обращение вызывает создание новой библиотеки NEWLIB из старой OLDLIB с добавлением отдельно оттранслированного модуля P2. После того как библиотека создана, достаточно упомянуть ее имя при связывании объектных модулей в единую программу. Обращение к библиотечным процедурам в главной программе или в любом другом модуле требует их упоминания в начале программы с указателем EXTERNAL,- так же как и в случае использования модулей типа MODULE. При этом необходимо помнить о согласовании типов параметров библиотечных процедур и функций.
Каждая система программирования обыкновенно имеет собственную библиотеку стандартных процедур/функций. Файлы с библиотеками для паскаль- и си-трансляторов обычно имеют тип LIB. Эта файлы указываются при обращении к компоновщику программ LINK.
Итак, весь процесс трансляции складывается, в общем случае, из следующих стадий:
- формирование текстовых модулей (с использованием текстовой подстановки);
- синтаксический анализ и выдача ошибок, найденных транслятором в тексте программы;
- генерация объектных модулей в машинных кодах, оптимизация;
- сборка из объектных модулей исполняемого кода программы.
Отнюдь не во всех системах программирования присутствуют все эти стадии. Например, в популярной системе TurboPascal не поддерживается раздельная компиляция модулей. Как следствие, отпадает потребность в использовании редактора связей. Это возможно благодаря тому, что в системе TurboPascal транслятор порождает сразу исполняемый код и работает очень быстро. Это весьма привлекатальная черта для многих пользователей, несмотря на отсутствие раздельной компиляции модулей.
Большинство трансляторов имеют несколько ФАЗ или ПРОХОДОВ, предназначенных для выполнения специфической работы над полным текстом программы. Так, в системе IBM-Pascal транслятор двухпроходный, а в системе C86 - четырехпроходиый.
Помимо фазы синтаксического анализа и генерации объектных модулей, часто отдельно выделяется фаза оптимизации. Чем больше таких фаз, тем дольше идет процесс трансляции, но зато результирующая программа получается более качественной.
Рассмотренные приемы позволяют при составлении исходных текстов программ иметь дело с несколькими относительно автономными компонентами, которые собираются вместе либо в начале процесса трансляции (текстовое включение), либо при сборке исполняемых программ (использование раздельно компилируемых модулей и библиотек процедур). Благодаря такому методу программы становятся более удобными для анализа и модификации. Кроме того, появляется возможность нескольким программистам участвовать в разработке одной системы; каждый из них может заниматься своими модулями, при условии, что заранее оговорены "соглашения о связях", включающие имена и способы обращения к процедурам, входящим в разные модули. Наконец, раздельная компиляция позволяет собирать программы из модулей, составленных на разных языках программирования, при условии, что согласованы способы передачи и обработки параметров процедур и функций.
4.5.5. РЕАЛИЗАЦИЯ СЕГМЕНТИРОВАННЫХ ПРОГРАММ С ПЕРЕКРЫТИЯМИ
Рассмотренные выше методы структурирования обеспечивают независимую разработку отдельных частей прикладной системы; однако получаемый в результате исполняемый программный код представляет собой единый файл, который при вызове программы должен полностью разместиться в оперативной памяти. Это далеко ве всегда устраивает разработчиков системы. Необходимы способы деления программ на такие части (СЕГМЕНТЫ), которые могли бы постоянно находиться во внешней памяти и загружаться в оперативную память лишь по мере необходимости.
В рамках развитой системы программирования, базирующейся на языке высокого уровня типа паскаль, один из распространенных приемов такого деления программ на части основан на создании ПЕРЕКРЫВАЮЩИХСЯ (ОВЕРЛЕЙНЫХ) СЕГМЕНТОВ. При таком подходе программа составляется из отдельных кусков, которые во время работы могут по мере необходимости загружаться в оперативную память и частично накладываться друг на друга.
Сегменты хранятся во внешней памяти (на диске) и лишь один из них - КОРНЕВОЙ - находится постоянно в оперативной памяти. Когда в корневом сегменте происходит обращение к процедуре, тело которой находится в одном из оверлейных сегментов, отсутствующих в данный момент в оперативной памяти, производится его загрузка с внешнего носителя в ОЗУ. При этом все связи между частями корневого сегмента и только что загруженным сегментом начинают выглядеть так, как если бы они составляли с самого начала единую программу. Точно так же происходит по мере необходимости загрузка других сегментов из внешней памяти.
Сегменты могут быть связаны в сложные деревообразные структуры и при загрузке размещаться в оперативной памяти так, чтобы наиболее эффективно использовать выделенное пространство.
Так, например, в системе TurboPascal можно объявлять оверлейные процедуры, тела которых после трансляции попадают в соответствующие оверлейные файлы. Пример такого объявления:
PROGRAM PP(input,output);
...
OVERLAY PROCEDURE PI;
BEGIN
<тело процедуры PI>
END;
OVERLAY PFOCEDURE P2;
BEGIN
<тело процедуры P2>
END;
PROCEDURE P3;
BEGIN
<тело процедуры PЗ>
END;
OVERLAY PROCEDURE P4;
BEGIN
<тело процедуры P4>
END;
...
BEGIN
<тело программы PP>
END.
Трансляция такой программы приведет к созданию трех перекрывающихся сегментов:
PP.COM
PP.000
PP.001
Первый из них - PP.COM - соответствует главной программе, два других сегмента - оверлейные. При этом по правилам системы TurboPascal процедуры P1 и P2 попадут в сегмент PP.000, поскольку в исходном тексте их описания следуют одно за другим. Процедура P4 окажется во втором оверлейном сегменте - PP.001. Такое разделение обусловлено тем, что описание P4 отделено от описаний двух первых процедур внутренней (не оверлейной) процедурой P3. Получившаяся структура программы может быть отображена схемой, представленной на рис.4.4.
Рис.4.4. Соотношение корневого и оверлейных сегментов
Область памяти, выделяемая в корневом сегменте для размещения оверлейных сегментов, рассчитывается системой автоматически, исходя из длины максимального оверлейного сегмента. Процедуры разных оверлейных сегментов, например, P1 и P4, не могут вызывать друг друга, так как соответствующие им сегменты не могут одновременно размещаться в оперативной памяти. Чем больше число оверлейных сегментов, тем больше будет происходить обменов с внешними накопителями, и работа системы будет замедляться.
Следовательно, применение перекрывающихся сегментов требует тщательного планирования, чтобы наилучшим образом использовать выделяемую оперативную память и при этом не слишком проигрывать в быстродействии системы.
При создании прикладных систем на ПЭВМ большая часть программных модулей составляется на языках высокого уровня (ЯВУ). Имеется несколько вариантов организации их взаимодействия, основанных как на свойствах ЯВУ, так и на особенностях операционных систем. Довольно часто возникает необходимость в программировании машинно-зависимых частей на языке ассемблера или макроассемблера, в связи с чем встает задача организации взаимодействия программ на ЯВУ с программами на ассемблере.
При проектировании большой прикладной системы с самого начала необходимо решить несколько принципиальных вопросов, касающихся общей структуры системы и способа взаимодействия отдельных компонентов. В частности, должны быть определены следующие характеристики.
A. Состав исходного текста программ, который может представлять собой:
А1) единый текст на ЯВУ или на ассемблере;
А2) отдельные текстовые модули на ЯВУ или на ассемблере, которые составляются независимо и, возможно, даже разными людьми.
Б. Структура исполняемой программы, которая может представлять собой:
Б1) единый модуль, полностью загружаемый в оперативную память при запуске системы;
Б2) несколько сегментов, загружаемых в оперативную память по мере необходимости с частичным взаимным перекрытием (наложением друг на друга);
Б3) резидентную часть, загружаемую в оперативную память в начале сеанса, и одну или несколько нерезидентных частей, загружаемых в оперативную память по мере необходимости.
В. Способ хранения данных, с которыми работает система. Основные варианты хранения:
В1) все данные располагаются в одном файле;
В2) данные распределены по нескольким файлам.
Различные сочетания указанных характеристик приводят к построению прикладных систем, которые могут отличаться очень сильно. Варианты А влияют на способ и качество разработки. Варианты Б оказывают критическое воздействие на оперативные характеристики системы - объем требуемой памяти и быстродействие. Варианты В, с одной стороны, влияют на быстродействие при доступе к данным, с другой стороны - на характер использования и экономию внешней памяти.
Рассмотрим несколько приемов реализации указанных характеристик при построении прикладных систем.
4.5.1. СТРУКТУРИРОВАНИЕ ПРОГРАММ НА УРОВНЕ ТЕКСТОВЫХ МОДУЛЕЙ
ПРОСТЫЕ ПРОГРАММЫ. Самый простой способ разработки программ не предполагает применения каких-либо приемов деления их на модули или на сегменты. Для составления такой программы обычно используется текстовый редактор общего назначения или редактор, встроенный в систему (как, например, в языке бейсик или в системе программирования TurboPascal). Процесс разработки программы соответствует общей схеме, изображенной на рис.4.3.
Простейшая программа на паскале, печатающая на экране слово "Hello", может выглядеть следующим образом:
PROGRAM Test;
BEGIN
WRITELN ('Hello');
END.
Аналогичная программа на языке си имеет следующий вид:
main ()
{
printf ("Hello");
}
Более сложные программы включают описания типов данных, переменных, констант. Важнейшими компонентами программ на ЯВУ являются процедуры и функции, которые обеспечивают структуризацию программ на уровне исходных текстов. Так, например, общая структура программы на паскале может иметь вид:
PROGRAM имя-программы (параметры-программы);
<описания глобальных объектов программы - типов данных, переменных, констант> PROCEDURE P1 (параметры процедуры P1);
<описания локальных объектов процедуры P1>
BEGIN
<тело процедуры P1>
END;
PROCEDURE P2 (параметры процедуры P2);
<описания локальных объектов процедуры P2>
BEGIN
<тело процедуры P2>
END;
...
BEGIN
<начало тела программы>
... P1(...); ... {обращение к P1}
... P2(...); ... {обращение к P2}
<конец тела программы>
END.
В этом тексте можно выделить три основных компонента:
- заголовок программы - название, список параметров, описания типов, глобальных переменных, констант;
- описания процедур - их заголовки с описаниями параметров и тела, состоящие из выражений;
- тело программы - последовательность выражений, среди которых встречаются обращения к определенным выше процедурам.
Таким образом, структуризация программы на уровне исходного текста обеспечивается благодаря оформлению отдельных частей алгоритмов в виде процедур и последующему вызову этих процедур в теле программы. Все необходимые связи между формальными и фактическими параметрами процедур устанавливаются транслятором данного языка программирования. В разных языках способы оформления указанных компонентов различаются, но общий принцип сохраняется.
В частности, в языке си отсутствует, как таковой, заголовок программы. Вместо него используется специальная "главная" процедура-функция с именем main, аргументы которой интерпретируются так же, как аргументы программы в паскале.
В начальной части программы на си можно, как и на паскале, ввести описания глобальных переменных и констант. В теле программы точно так же могут использоваться обращения к определенным ранее функциям (в языке си все процедуры являются функциями), а также к переменным и константам.
В бейсике, в отличие от паскаля и си, нет средства для явного определения процедур. Их роль играют просто участки программ, оканчивающиеся оператором возврата RETURN. Такие участки называются подпрограммами, и к ним можно обращаться с помощью оператора GOSUB из любых других точек программы. При структурном программировании на бейсике подпрограммы обычно размещают в конце, а основные операторы - в начале текста программы.
ТЕКСТОВАЯ ПОДСТАНОВКА ПРОГРАММНЫХ МОДУЛЕЙ. Рассмотренный выше подход позволяет создавать программы, тексты которых представляют собой единое целое и хранятся в отдельных массивах на внешних носителях.
Один из приемов деления исходного текста программы на отдельные части состоит в использовании метода макрогенерации. В текст главной программы вводятся специальные выражения, указывающие компилятору на необходимость включения в нее текста других модулей, В системе программирования на основе паскаля "включение" тестового файла M1.PAS в программу осуществляется с помощью выражения вида:
{$INCLUDE; 'M1.PAS'}
На языке Си включение в программу текстового файла STDIO.H обеспечивается выражением вида:
#include "stdio.h"
Возможность текстовой подстановки позволяет при вводе (редактировании) исходных текстов программ иметь дело с относительно небольшими фрагментами текста, каждый из которых содержит определенную группу функций.
4.5.2. РАЗДЕЛЬНО КОМПИЛИРУЕМЫЕ МОДУЛИ И БИБЛИОТЕКИ ПРОЦЕДУР
В рассмотренном выше методе соединение текстов отдельных модулей происходит в самом начале процесса трансляции - при макроподстановке; основная же работа транслятора производится над полностью собранным текстом. Если составленная таким образом программа велика по объему, например содержит от 500 до 1000 и более строк, то процесс трансляции может занимать довольно много времени - до нескольких минут, что весьма обременительно при интенсивной отладке, когда приходится часто вносить небольшие изменения в исходные тексты и вновь транслировать программу.
Чтобы избежать указанного недостатка, применяется другой подход к построению больших программ - составление отдельных модулей, которые транслируются совершенно независимо друг от друга и должны связываться лишь на стадии окончательного формирования исполняемой программы в машинных кодах.
Так, в некоторых реализациях языка паскаль (в частности, в системе IBM-Pascal) можно использовать два типа раздельно компилируемых модулей: MODULE и UNIT. Рассмотрим способы оформления указанных модулей.
МОДУЛЬ ТИПА MODULE. Модуль типа MODULE внешне оформляется почти как главная программа; его основной целью является описание нескольких взаимосвязанных процедур вместе с необходимыми типами, переменными и константами. Тело у модуля обычно отсутствует. Рассмотрим простой пример такого модуля:
{ ----- Модуль P1.PAS ----- }
MODULE P1;
PROCEDURE PP1 (A:INTEGER); [PUBLIC]
BEGIN
<тело процедуры PP1>
END;
PROCEDURE PP2 (B:REAL); [PUBLIC]
BEGIN
<тело процедуры PP2>
END;
BEGIN
END.
{ ----- }
Описанные в этом модуле процедуры PP1 и PP2 снабжены специальными указателями [PUBLIC], которые свидетельствуют об общедоступности этих процедур для других программ.
Чтобы использовать указанные процедуры в главной программе и в других модулях, их необходимо объявить там следующим образом:
PROCEDURE PP1 (A:INTEGER); EXTERNAL;
PROCEDURE PP2 (B:REAL); EXTERNAL;
Указатель EXTERNAL свидетельствует, что объявленные таким способом процедуры являются внешними по отношению к тому модулю, который их использует. Однако обращения к ним в его теле имеют самый обычный вид, и в этом смысле внешние процедуры не отличаются от тех, которые описаны непосредственно в данном модуле.
Этот способ применяется не только при модульном программировании в рамках одного ЯВУ, но также и при составлении программ из модулей на разных языках, например на паскале и фортране или па паскале и ассемблере. Главная проблема в этом случае состоит в правильной передаче параметров процедур и функций, поскольку в разных языках параметры могут обрабатываться по-разному.
МОДУЛЬ ТИПА UNIT. Модуль типа UNIT, который можно назвать иначе "блоком", описывается с помощью двух компонентов. Один из них - РЕАЛИЗАЦИЯ БЛОКА - содержит тела процедур и вспомогательные типы, переменные и константы. Другой компонент - ОПИСАНИЕ БЛОКА, или ИНТЕРФЕЙС,- содержит описания типов, переменных и констант, а также заголовки процедур (без их тел), которые предназначены для использования в других модулях и в главной программе. В интерфейс блока включается общий список имен указанных объектов, что делает их "видимыми" из других модулей.
Пример реализации блока P2.PAS:
{ ----- Реализация блока P2.PAS ----- }
IMPLEMENTATION OF P2;
PROCEDURE get_key;
BEGIN
<тело процедуры get_key>
END;
<описания и тела других процедур>
BEGIN
END.
Интерфейс этого блока может иметь следующий вид:
{ ----- Интерфейс блока P2.INT ----- }
INTERFACE;
UNIT P2;
(get_key, key_descr, ...<имена других процедур> ...);
TYPE key_descr = RECORD scan_code, ascii:BYTE END;
PROCEDURE get_key;
...
<заголовки других процедур данного блока>
...
END;
{ ----- }
Использование объектов модуля типа UNIT в главной программе требует, во-первых, включения его интерфейса перед заголовкам программы; во-вторых, упоминания имени блока сразу после заголовка программы, для чего служит выражение вида:
USES <имя блока>;
Начальная часть программы приобретает в результате такой вид:
{ ----- Главная программа - PP.PAS ----- }
{$INCLUDE: 'P2.INT'}
...
PROGRAM PP (Input, output);
USES P2;
...
{ ----- }
Здесь текстовое включение интерфейса блока P2 в программу PP.PAS осуществляется с помощью рассмотренного выше выражения $INCLUDE.
4.5.3. ГЕНЕРАЦИЯ ОБЪЕКТНЫХ МОДУЛЕЙ И ЗАГРУЗОЧНЫХ ФАЙЛОВ
В результате компиляции отдельных текстовых модулей порождаются так называемые объектные модули. Например, обращение к транслятору IBM-Pascal для трансляции исходной программы PP.PAS имеет вид:
PAS1 PP;
PAS2
Объектный модуль, который порождается после двух проходов трансляции (PAS1 и PAS2), можно считать "полуфабрикатом" - куском машинного кода, готовым к превращению в загрузочный файл. Объектный модуль заносится в особый файл, которому придается тип OBJ. Следовательно, паскаль-транслятор осуществляет преобразование файла типа PAS в файл типа OBJ. Для рассматриваемого нами примера этот процесс можно изобразить следующей условной схемой:
PP.PAS -> транслятор -> PP.OBJ
Следующий этап состоит в преобразовании совокупности отдельных объектных модулей в загрузочный файл, т.е. в файл типа EXE или COM. Этот процесс называется связыванием объектных модулей или сборкой задачи. Соответствующая схема преобразования:
PP.OBJ -> PP.EXE или PP.OBJ -> PP.COM
Данный этап реализуется специальной системной программой LINK, которую называют редактором связей или компоновщиком. При обращении к LINK указываются все объектные модули, которые должны быть объединены в общую программу; указывается также имя файла с результирующей программой, имя файла с листингом (необязательный параметр) и имя файла с библиотекой процедур. Пример обращения к LINK для связывания модулей, оттранслированных с паскаля:
LINK PP+P1+P2, PP, PP.LST, PASLIB.LIB
(т.е. объектные модули, эагрузочный файл, файл-листинг, библиотека процедур)
4.5.4. БИБЛИОТЕКИ ОБЪЕКТНЫХ МОДУЛЕЙ
Один из способов оформления независимых частей программы состоит в создании библиотек объектных модулей, которые затем можно включать в формируемую задачу на стадии сборки. Для формирования библиотеки обьектных модулей служит вспомогательная программа LIB, которая позволяет создать новую библиотеку или пополнить старую библиотеку процедурами, которые извлекаются нз оттранслированных заранее объектных модулей или из другой библиотеки. Общий вид обращения к программе LIB:
LIB <старая-библиотека> <размер-страницы> <операции>, <файл-с-листингом>, <новая-библиотека>
При обращении к LIB могут указываться имена старой и новой библиотек. Размер страницы (= 16, 32, ... 512) задает величину буфера для обмена; это необязательный параметр. Главные действия задаются ОПЕРАЦИЯМИ. Операция может иметь следующие разновидности (mm - имя модуля):
+ mm {добавление модуля в библиотеку},
- mm {удаление модуля из библиотеки},
* mm {извлечение модуля из библиотеки},
-+ mm {замена модуля в библиотеке},
-* mm {извлечение модуля с удалением}.
Пример обращения к LIB:
LIB OLDLIB +P2,,NEWLIB
Такое обращение вызывает создание новой библиотеки NEWLIB из старой OLDLIB с добавлением отдельно оттранслированного модуля P2. После того как библиотека создана, достаточно упомянуть ее имя при связывании объектных модулей в единую программу. Обращение к библиотечным процедурам в главной программе или в любом другом модуле требует их упоминания в начале программы с указателем EXTERNAL,- так же как и в случае использования модулей типа MODULE. При этом необходимо помнить о согласовании типов параметров библиотечных процедур и функций.
Каждая система программирования обыкновенно имеет собственную библиотеку стандартных процедур/функций. Файлы с библиотеками для паскаль- и си-трансляторов обычно имеют тип LIB. Эта файлы указываются при обращении к компоновщику программ LINK.
Итак, весь процесс трансляции складывается, в общем случае, из следующих стадий:
- формирование текстовых модулей (с использованием текстовой подстановки);
- синтаксический анализ и выдача ошибок, найденных транслятором в тексте программы;
- генерация объектных модулей в машинных кодах, оптимизация;
- сборка из объектных модулей исполняемого кода программы.
Отнюдь не во всех системах программирования присутствуют все эти стадии. Например, в популярной системе TurboPascal не поддерживается раздельная компиляция модулей. Как следствие, отпадает потребность в использовании редактора связей. Это возможно благодаря тому, что в системе TurboPascal транслятор порождает сразу исполняемый код и работает очень быстро. Это весьма привлекатальная черта для многих пользователей, несмотря на отсутствие раздельной компиляции модулей.
Большинство трансляторов имеют несколько ФАЗ или ПРОХОДОВ, предназначенных для выполнения специфической работы над полным текстом программы. Так, в системе IBM-Pascal транслятор двухпроходный, а в системе C86 - четырехпроходиый.
Помимо фазы синтаксического анализа и генерации объектных модулей, часто отдельно выделяется фаза оптимизации. Чем больше таких фаз, тем дольше идет процесс трансляции, но зато результирующая программа получается более качественной.
Рассмотренные приемы позволяют при составлении исходных текстов программ иметь дело с несколькими относительно автономными компонентами, которые собираются вместе либо в начале процесса трансляции (текстовое включение), либо при сборке исполняемых программ (использование раздельно компилируемых модулей и библиотек процедур). Благодаря такому методу программы становятся более удобными для анализа и модификации. Кроме того, появляется возможность нескольким программистам участвовать в разработке одной системы; каждый из них может заниматься своими модулями, при условии, что заранее оговорены "соглашения о связях", включающие имена и способы обращения к процедурам, входящим в разные модули. Наконец, раздельная компиляция позволяет собирать программы из модулей, составленных на разных языках программирования, при условии, что согласованы способы передачи и обработки параметров процедур и функций.
4.5.5. РЕАЛИЗАЦИЯ СЕГМЕНТИРОВАННЫХ ПРОГРАММ С ПЕРЕКРЫТИЯМИ
Рассмотренные выше методы структурирования обеспечивают независимую разработку отдельных частей прикладной системы; однако получаемый в результате исполняемый программный код представляет собой единый файл, который при вызове программы должен полностью разместиться в оперативной памяти. Это далеко ве всегда устраивает разработчиков системы. Необходимы способы деления программ на такие части (СЕГМЕНТЫ), которые могли бы постоянно находиться во внешней памяти и загружаться в оперативную память лишь по мере необходимости.
В рамках развитой системы программирования, базирующейся на языке высокого уровня типа паскаль, один из распространенных приемов такого деления программ на части основан на создании ПЕРЕКРЫВАЮЩИХСЯ (ОВЕРЛЕЙНЫХ) СЕГМЕНТОВ. При таком подходе программа составляется из отдельных кусков, которые во время работы могут по мере необходимости загружаться в оперативную память и частично накладываться друг на друга.
Сегменты хранятся во внешней памяти (на диске) и лишь один из них - КОРНЕВОЙ - находится постоянно в оперативной памяти. Когда в корневом сегменте происходит обращение к процедуре, тело которой находится в одном из оверлейных сегментов, отсутствующих в данный момент в оперативной памяти, производится его загрузка с внешнего носителя в ОЗУ. При этом все связи между частями корневого сегмента и только что загруженным сегментом начинают выглядеть так, как если бы они составляли с самого начала единую программу. Точно так же происходит по мере необходимости загрузка других сегментов из внешней памяти.
Сегменты могут быть связаны в сложные деревообразные структуры и при загрузке размещаться в оперативной памяти так, чтобы наиболее эффективно использовать выделенное пространство.
Так, например, в системе TurboPascal можно объявлять оверлейные процедуры, тела которых после трансляции попадают в соответствующие оверлейные файлы. Пример такого объявления:
PROGRAM PP(input,output);
...
OVERLAY PROCEDURE PI;
BEGIN
<тело процедуры PI>
END;
OVERLAY PFOCEDURE P2;
BEGIN
<тело процедуры P2>
END;
PROCEDURE P3;
BEGIN
<тело процедуры PЗ>
END;
OVERLAY PROCEDURE P4;
BEGIN
<тело процедуры P4>
END;
...
BEGIN
<тело программы PP>
END.
Трансляция такой программы приведет к созданию трех перекрывающихся сегментов:
PP.COM
PP.000
PP.001
Первый из них - PP.COM - соответствует главной программе, два других сегмента - оверлейные. При этом по правилам системы TurboPascal процедуры P1 и P2 попадут в сегмент PP.000, поскольку в исходном тексте их описания следуют одно за другим. Процедура P4 окажется во втором оверлейном сегменте - PP.001. Такое разделение обусловлено тем, что описание P4 отделено от описаний двух первых процедур внутренней (не оверлейной) процедурой P3. Получившаяся структура программы может быть отображена схемой, представленной на рис.4.4.
Рис.4.4. Соотношение корневого и оверлейных сегментов
Область памяти, выделяемая в корневом сегменте для размещения оверлейных сегментов, рассчитывается системой автоматически, исходя из длины максимального оверлейного сегмента. Процедуры разных оверлейных сегментов, например, P1 и P4, не могут вызывать друг друга, так как соответствующие им сегменты не могут одновременно размещаться в оперативной памяти. Чем больше число оверлейных сегментов, тем больше будет происходить обменов с внешними накопителями, и работа системы будет замедляться.
Следовательно, применение перекрывающихся сегментов требует тщательного планирования, чтобы наилучшим образом использовать выделяемую оперативную память и при этом не слишком проигрывать в быстродействии системы.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Брябрин. Программное обеспечение персональных ЭВМ. 1990
4.6. ОРГАНИЗАЦИЯ ВЗАИМОДЕЙСТВИЯ ПРОГРАММ
Взаимодействие программных модулей, рассмотренное в предыдущем параграфе, основывалось на механизме взаимного вызова процедур для конкретных ЯВУ. При этом предполагалось, что отдельные модули хотя и разрабатываются независимо, но достаточно тесно увязаны друг с другом, т.е. имеют согласованные процедурные интерфейсы.
Довольно часто, однако, встает вопрос об организации взаимодействия программ, которые составлены независимо и к тому же на разных языках программирования (например, си и паскаль). В этом случае для взаимного вызова программ можно воспользоваться прерываниями ДОС. Другой универсальный метод взаимодействия - использование подпрограмм на языке ассемблера, через посредство которых можно не только иметь прямой доступ к аппаратуре, но и осуществлять передачу параметров между разными программами на ЯВУ. Рассмотрим кратко особенности указанных методов.
4.6.1. ВЗАИМОДЕЙСТВИЕ ПРОГРАММ ЧЕРЕЗ ПРЕРЫВАНИЯ ДОС
В ДОС имеется специальное прерывание с десятичным номером 33 (шестнадцатеричный номер 21 H), через которое любая прикладная программа может иметь доступ к внутренним функциям операционной системы. В их число входит несколько функций, с помощью которых может быть организован взаимный вызов программ. Дадим краткое описание этих функций.
Функция 31 H (здесь символ H означает, что число является шестнадцатеричным) останавливает данную программу и оставляет ее в оперативной памяти резидентной, что дает возможность позднее вновь обратиться к ней через соответствующую ТОЧКУ ВХОДА.
Функция 4B H обеспечивает вызов (загрузку с диска и переход на исполнение) другой программы. Когда вызванная таким образом программа закончится, управление автоматически возвращается вызывавшей программе. Имеется вариант этой функции, когда файл только загружается с диска, но не исполняется; это используется для загрузки перекрывающихся сегментов программ или загрузки данных.
Функция 4C H оканчивает работающую программу с засылкой в системный регистр AL кода возврата. Этот код может быть взят и проанализирован вызвавшей программой, для чего используется функция 4D. Функция 4D позволяет выяснить, по какой причине окончилась вызванная программа, Причин может быть четыре:
- нормальное окончание;
- окончание в результате нажатия пользователем клавиш Ctrl+Break;
- окончание в результате фатальной ошибки внешнего устройства;
- окончание в результате применения функции 31.
Функции 48 H и 49 H позволяют соответственно запросить у ДОС оперативную память для работы программы и освободить ее. Функция 4A H позволяет изменить (уменьшить или увеличить) выделенную память. Указанные функции дают возможность прикладной программе регулировать объем занимаемой оперативной памяти.
Большинство развитых систем программирования на основе ЯВУ обеспечивает обращение к прерываниям ДОС через специальные процедуры. При этом в регистры микропроцессора засылаются необходимые параметры. Так, например, в системе TurboPascal обращение к прерыванию ДОС осуществляется процедурой:
INTR (InterruptNo, Registers)
Здесь параметр InterruptNo: INTEGER - целое десятичное число, указывающее номер прерывания. Параметр Registers - это список базовых регистров микропроцессора:
Registers = RECORD
AX, BX, CX, DX, BP, SI, DI, DS, ES, Flags: INTEGER;
END;
При обращении к прерыванию ДОС необходимо сначала занести в регистры нужные значения, а после завершения прерывания из них можно извлечь результаты работы.
Каждый из этих двухбайтовых регистров состоит фактически из двух однобайтовых (полу)регистров. Например, двухбайтовый регистр АX состоит из двух однобайтовых - AH и AL. Однобайтовые регистры используются для передачи информации в ДОС. Так, по принятому в ДОС соглашению регистр AH служит для задания номера функции, вызываемой через любое прерывание.
Если, например, в прикладной программе применяется прерывание 21 H и через него вызывается функция 4B H (загрузка и запуск другой программы), то регистры заполняются следующим образом:
AH = 4B - номер вызываемой функции;
AL - признак загрузки программы с исполнением (AL = 0) или без исполнения (AL = 1);
DS:DX - два указанных регистра содержат "длинный" адрес строки с расширенным именем файла;
ES:BX - два этих регистра содержат длинный адрес управляющего блока запускаемой программы, который должен быть оформлен соответствующим образом.
Чтобы пользоваться указанным методом для организации взаимодействия программ, от программиста требуется определенная профессиональная подготовка, в частности, знание архитектуры ПЭВМ и ДОС, умение работать с значениями регистров и др.
Обладание этими приемами открывает доступ к мощным средствам управления программами. Использование разных языков программирования в этом случае уже не будет препятствием для сочетания различных программ в рамках одной прикладной системы. Кроме того, через прерывания ДОС можно непосредственно обращаться к функциям, обслуживающим различные внешние устройства - дисплей, клавиатуру, дисковые накопители, принтер, коммуникационные каналы.
4.6.2. ВЗАИМОДЕЙСТВИЕ С ПРОГРАММАМИ НА ЯЗЫКЕ АССЕМБЛЕРА
Помимо возможности прямого обращения к прерываниям ДОС из программ на ЯВУ, при создании сложных прикладных систем обычно возникает необходимость в использовании машинио-ориентироваиных программ на языке ассемблера (часто говорят "программ на ассемблере" или "ассемблерных программ"). Более того, с целью повышения быстродействия или сокращения требуемых объемов памяти на ассемблере иногда составляются значительные куски прикладных программ.
В этих случаях возникает задача организации взаимодействия программ на ЯВУ с ассемблерными программами. Прежде всего отметим, что ассемблерные программы могут Объединяться с другими программами на уровне объектных модулей - с помощью компоновщика LINK. Главная проблема состоит во взаимной передаче параметров между такими программами. Рассмотрим общий метод передачи параметров в ассемблерные программы.
Допустим, имеется ассемблерная процедура для установки положения курсора в дисплейном окне, которая должна быть доступна из программ на паскале. Описание соответствующей процедуры в паскаль-программе может иметь вид:
PROCEDURE CURPOS(LINE: INTEGER; POS: INTEGER); EXTERNAL;
Соответственно обращение к этой процедуре в паскаль-программе может иметь вид:
CURPOS(L, P);
Вызываемая программа на ассемблере имеет следующий примерный вид:
WINDOW SEGMENT 'CODE' ;начало сегмента с именем WINDOW
PUBLIC CURPOS ;объявление "общедоступной" процедуры CURPOS
CURPOS PROC FAR ;обеспечение "дальнего" вызова процедуры
PUSH BP ;сохранение старого указателя на "фрейм"
MOV BP, SP ;установка нового положения "фрейма"
PUSH AX ;сохранение старых значений регистров
PUSH BX ;AX и BX
MOV BX, [BP+6] ;перенос в регистр BX 2-го параметра
MOV AX, [BP+8] ;перенос в регистр AX 1-го параметра
...
(выполнение необходимых действий с использованием параметров, сохраненных в регистрах AX и BX)
...
POP BX ;восстановление регистров
POP AX ;BX и AX
POP BP ;восстановление старого указателя на стек
RET 8 ;возврат из процедуры со сдвигом указателя стека на 8 байт назад
CURPOS ENDP ;конец тела процедуры CURPOS
WINDOW END ;конец сегмента WINDOW
В приведенном примере можно отметить несколько характерных деталей. Прежде всего необходимо пояснить, что передача информации между вызывающей программой и данной процедурой осуществляется через СТЕК - последовательность машинных слов, в которую данные "заталкиваются" оператором PUSH и "выталкиваются" оператором POP. В стек автоматически заносится также АДРЕС ВОЗВРАТА из процедуры. На текущую ячейку стека указывает содержимое регистра SP. В регистре BP находится указатель на ФРЕЙМ, т.е. на ту часть стека, в которой хранятся данные, относящиеся к вызванной процедуре.
В начале процедуры происходит сохранение в стеке старого значения регистра BP, а также регистров AX и BX, которые далее понадобятся для работы. Затем происходит очень важная операция - из стека командой MOV извлекаются значения двух параметров (заданных в обращении к паскаль-процедуре CURPOS как значения переменных L и P). Эти значения заносятся соответственно в регистры AX и BX и используются затем для выполнения основных действий - установки положения курсора в дисплейном окне.
Положения параметров в стеке фиксированы относительно начала фрейма, заданного значением указателя BP. Первые 4 байта заняты адресом возврата и старым значением SP, еще 2 байта - регистром счетчика команд, а параметры занимают по 2 следующих байта и поэтому адресуются конструкциями вида [BP+6] и [BP+8]. Следует иметь в виду, что при обращении к данной процедуре из паскаля стек заполняется от старших адресов к младшим, поэтому первый параметр находится дальше всего от позиции, на которую указывает регистр ВP. Если бы параметров было 4, то они адресовались бы с помощью следующих выражений:
[BP+6] - адрес 4-го двухбайтового параметра,
[BP+8] - адрес 3-го двухбайтового параметра,
[BP+10] - адрес 2-го двухбайтового параметра,
[BP+12] - адрес 1-го двухбайтового параметра.
Важным моментом является то, что в данном примере процедура CURPOS не меняет значений указанных параметров. Это позволяет передать их из паскаль-программы по ЗНАЧЕНИЮ, т.е. попросту скопировать в стек. Если же предполагается изменение параметров в ассемблерной процедуре, то их нужно передавать ПО ССЫЛКЕ. Для этого описание процедуры CURPOS в паскаль-программе должно было бы содержать описания параметров с указателем VAR или VARS, т.е. иметь, например, следующий вид:
PROCEDURE CURPOS (VAR LINE: INTEGER; VAR POS: INTEGER); EXTERNAL;
В этом случае и извлечение параметров в ассемблерной процедуре должно быть оформлено по-другому. Сначала нужно извлечь из стека ссылку на параметр (его адрес), а затем уже взять по этому адресу значение ячейки. Соответствующие операторы для 1-го параметра выглядели бы следующим образом:
MOV BX, [BP+8] ;занесение в BX адреса 1-го параметра
MOV AХ, [BХ] ;занесение в AX значения 1-го параметра
Возврат значения этого параметра паскаль-программе должен быть в этом случае осуществлен обратными операциями:
MOV BX, [BP+8] ;установка в BX адреса 1-го параметра
MOV [BX], AX ;возврат значения из AX в 1-й параметр
Аналогичным образом следует поступить со 2-м и со всеми последующими параметрами.
Следует иметь в виду, что в фортране передача параметров осуществляется только по ссылке, вне зависимости от того, меняются ли значения параметров в вызываемых подпрограммах или нет.
В языке си по умолчанию параметры передаются по значению, но поскольку в этом языке очень часто сами значения являются адресами других ячеек, то при работе с передаваемыми параметрами следует проявлять очень большую аккуратность. Поскольку ни в языке си, ни тем более в ассемблере нет никакого контроля за правильностью передачи параметров, вся забота о правильной обработке ссылок и значений возлагается на программиста. В си можно явно указать, что переменная должна содержать адрес, а не значение; для этого переменная снабжается префиксом *, Здесь проявляется некоторое сходство с языком паскаль, где для этой же цели служит указатель VAR.
Помимо того, в си порядок размещения параметров на стеке противоположен рассмотренному выше и принятому в Паскале, а размешаются они на два байта ближе к началу фрейма, чем в случае паскаля. Наконец, в си, в отличие от паскаля, допускается переменное число параметров при обращении к функциям, что может дополнительно усложнить их обработку в ассемблерной программе.
Из всего этого следует, что одна и та же ассемблерная подпрограмма не может обслуживать программы и на си, и на паскале, если только не применять специальных ухищрений. Для интерфейса с каждым из этих языков требуется свой подход к передаче и обработке параметров.
4.6.3. РЕЗИДЕНТНЫЕ ПРОГРАММЫ
Часто бывает необходимо, чтобы служебная программа сработала один раз и осталась в памяти для того, чтобы к ней позднее могли обращаться другие программы. Такую программу называют РЕЗИДЕНТНОЙ, в отличие от обычных программ, которые по окончании работы освобождают занятую память.
Как указывалось выше, ДОС-функция 31 H осуществляет остановку программы и оставляет ее резидентной в памяти. К этой функции можно обращаться непосредственно из программы на ЯВУ, если в нем обеспечивается доступ к прерываниям ДОС. Можно выполнить те же действия, используя соответствующую ассемблерную подпрограмму. Фрагмент программы на аосемблере, предназначенной для реализации указанной операции, имеет следующий вид:
PUSH ES ;запоминание начала программы в стеке
...
POP AX ;выталкивание адреса начала программы из стека а регистр AX
MOV DX, SEG ZZ ;занесение адреса конца программы ZZ в регистр DX
SUB DX, AX ;вычисление длины программы
INC DX ;увеличение длины на 1
MOV АН, 31Н ;задание в регистре AH номера функции 31 H (остановить задачу и сделать ее резидентной)
INT 21H ;обращение к прерыванию 21 H
ZZ SEGMENT 'ZZ' ;конец программы ZZ
ZZ ENDS
Такая подпрограмма может быть соединена о любой другой программой на ЯВУ и использована для создания резидентной копии задачи.
4.6.4. СВЯЗЫВАНИЕ ПРОГРАММ ЧЕРЕЗ ПОТОКИ ВВОДА/ВЫВОДА
Рассмотренные выше приемы основаны на проникновении внутрь операционной системы и требуют, как правило, тщательного программирования для обработки параметров, передаваемых между программами. Существует, однако, гораздо более простой путь для организации взаимодействия программ, основанный на стандартном сервисе, предоставляемом ДОС.
В ДОС имеется понятие СТАНДАРТНОГО ВХОДНОГО и СТАНДАРТНОГО ВЫХОДНОГО УСТРОЙСТВА. По умолчанию эти устройства соответствуют клавиатуре и дисплею. Имеется возможность переопределять стандартные устройства (или потоки) ввода и вывода. Вместо клавиатуры и дисплея в этой роли могут выступать, во-первых, различные внешние устройства (например, принтер или коммуникационный канал), во-вторых, любые дисковые файлы, и, в-третьих, любые программы, работающие со стандартным входом и выходом.
В программе на ЯВУ стандартное входное и стандартное выходное устройства доступны через обычные операторы ввода/вывода: в паскале - READ и WRITE, в языке си - getchar, putchar и printf. Любой начинающий программист знает, что такие операторы позволяют обмениваться информацией с клавиатурой и дисплеем, не задумываясь о том, что здесь кроются более широкие возможности.
В командной строке, обращенной к ДОС и предусматривающей запуск какой-либо программы, можно указать, откуда должен поступать в программу стандартный входной поток и куда должен направляться стандартный выходной поток. Благодаря этой возможности можно, не меняя программ, подключать к ним различные внешние устройства и файлы в качестве источников и приемников информации, а также организовывать взаимную передачу информации между отдельными программами. Если имя программы - PP, то изменить ее входной и выходной потоки можно командой следующего вида:
PP <from >to
Здесь символ "from" соответствует стандартному входному потоку, а символ "to" - стандартному выходному потоку. Приведенная выше запись может иметь варианты, когда указывается только входной или только выходной поток:
PP <from или PP >to
Вместо символов from и to могут фигурировать имена файлов или зарезервированные имена внешних устройств (CON:, PRN:, LPT1:, LPT2:, СOМ1:, COM2:, AUX:). Следует помнить, что одни внешние устройства могут использоваться только на выходе (например, принтер), другие только на входе (например, диджитайзер), но есть и такие устройства, которые способны передавать информацию в обоих направлениях (например, модемы).
Если источником или приемником информации для данной программы является другая программа, то используется иное обозначение. Пример такого обозначения для трех взаимосвязанных программ:
PP1 | PP2 | PP3
В данном примере стандартный выходной поток программы PP1 связывается со стандартным входным потоком программы PP2, а ее стандартный выходной поток, в свою очередь, поступает на стандартный вход программы PPЗ.
Для обозначения таких цепочечных связей между программами используют термин "канал" (англ. pipe). В ДОС такой канал реализуется с помощью временного файла, который операционная система сама создает в корневом каталоге и уничтожает после окончания работы программ. В системе Юникс этот же самый механизм реализуется при помощи внутренних файлов, благодаря чему обмен информацией между программами происходит гораздо быстрее.
Программа, которая принимает данные со стандартного входа и передает их (после обработки) на стандартный выход, называется ФИЛЬТРОМ. В приведенном выше примере роль фильтра играла программа PP2. К фильтрам относятся некоторые системные утилиты ДОС: SORT, MORE.
Программа-фильтр "пропускает" через себя соответствующую информацию, осуществляя ее переработку. Так, фильтр SORT обеспечивает сортировку пропускаемых через него текстовых данных; MORE пропускает текст порциями по 24 строки с остановками (используется при выводе текстов файлов на экран). В принципе можно составлять собственные программы-фильтры, которые будут осуществлять необходимую переработку последовательных потоков данных. Это может понадобиться, например, при организации связи ПЭВМ с большой ЭВМ, при необходимости перекодировки текстов и при других операциях.
Описанный метод взаимодействия программ очень прост, но имеет очевидные недостатки. Во-первых, передача информации между программами осуществляется только посредством последовательного потока, а не с помощью параметров, как это имеет место при процедурном взаимодействии. Во-вторых, у программ занимаются стандартные каналы ввода-вывода, а это часто бывает неприемлемо. В-третьих, указанный обмен происходит сравнительно медленно, поскольку реализуется через обычную файловую систему.
Таковы основные методы разработки прикладных систем на языках высокого уровня. В следующих главах мы рассмотрим некоторые прикладные системы уже с точки зрения пользователя. Будут рассмотрены методы построения автоматизированных рабочих мест на основе персональных компьютеров, а также порядок работы с некоторыми типами прикладных систем.
Взаимодействие программных модулей, рассмотренное в предыдущем параграфе, основывалось на механизме взаимного вызова процедур для конкретных ЯВУ. При этом предполагалось, что отдельные модули хотя и разрабатываются независимо, но достаточно тесно увязаны друг с другом, т.е. имеют согласованные процедурные интерфейсы.
Довольно часто, однако, встает вопрос об организации взаимодействия программ, которые составлены независимо и к тому же на разных языках программирования (например, си и паскаль). В этом случае для взаимного вызова программ можно воспользоваться прерываниями ДОС. Другой универсальный метод взаимодействия - использование подпрограмм на языке ассемблера, через посредство которых можно не только иметь прямой доступ к аппаратуре, но и осуществлять передачу параметров между разными программами на ЯВУ. Рассмотрим кратко особенности указанных методов.
4.6.1. ВЗАИМОДЕЙСТВИЕ ПРОГРАММ ЧЕРЕЗ ПРЕРЫВАНИЯ ДОС
В ДОС имеется специальное прерывание с десятичным номером 33 (шестнадцатеричный номер 21 H), через которое любая прикладная программа может иметь доступ к внутренним функциям операционной системы. В их число входит несколько функций, с помощью которых может быть организован взаимный вызов программ. Дадим краткое описание этих функций.
Функция 31 H (здесь символ H означает, что число является шестнадцатеричным) останавливает данную программу и оставляет ее в оперативной памяти резидентной, что дает возможность позднее вновь обратиться к ней через соответствующую ТОЧКУ ВХОДА.
Функция 4B H обеспечивает вызов (загрузку с диска и переход на исполнение) другой программы. Когда вызванная таким образом программа закончится, управление автоматически возвращается вызывавшей программе. Имеется вариант этой функции, когда файл только загружается с диска, но не исполняется; это используется для загрузки перекрывающихся сегментов программ или загрузки данных.
Функция 4C H оканчивает работающую программу с засылкой в системный регистр AL кода возврата. Этот код может быть взят и проанализирован вызвавшей программой, для чего используется функция 4D. Функция 4D позволяет выяснить, по какой причине окончилась вызванная программа, Причин может быть четыре:
- нормальное окончание;
- окончание в результате нажатия пользователем клавиш Ctrl+Break;
- окончание в результате фатальной ошибки внешнего устройства;
- окончание в результате применения функции 31.
Функции 48 H и 49 H позволяют соответственно запросить у ДОС оперативную память для работы программы и освободить ее. Функция 4A H позволяет изменить (уменьшить или увеличить) выделенную память. Указанные функции дают возможность прикладной программе регулировать объем занимаемой оперативной памяти.
Большинство развитых систем программирования на основе ЯВУ обеспечивает обращение к прерываниям ДОС через специальные процедуры. При этом в регистры микропроцессора засылаются необходимые параметры. Так, например, в системе TurboPascal обращение к прерыванию ДОС осуществляется процедурой:
INTR (InterruptNo, Registers)
Здесь параметр InterruptNo: INTEGER - целое десятичное число, указывающее номер прерывания. Параметр Registers - это список базовых регистров микропроцессора:
Registers = RECORD
AX, BX, CX, DX, BP, SI, DI, DS, ES, Flags: INTEGER;
END;
При обращении к прерыванию ДОС необходимо сначала занести в регистры нужные значения, а после завершения прерывания из них можно извлечь результаты работы.
Каждый из этих двухбайтовых регистров состоит фактически из двух однобайтовых (полу)регистров. Например, двухбайтовый регистр АX состоит из двух однобайтовых - AH и AL. Однобайтовые регистры используются для передачи информации в ДОС. Так, по принятому в ДОС соглашению регистр AH служит для задания номера функции, вызываемой через любое прерывание.
Если, например, в прикладной программе применяется прерывание 21 H и через него вызывается функция 4B H (загрузка и запуск другой программы), то регистры заполняются следующим образом:
AH = 4B - номер вызываемой функции;
AL - признак загрузки программы с исполнением (AL = 0) или без исполнения (AL = 1);
DS:DX - два указанных регистра содержат "длинный" адрес строки с расширенным именем файла;
ES:BX - два этих регистра содержат длинный адрес управляющего блока запускаемой программы, который должен быть оформлен соответствующим образом.
Чтобы пользоваться указанным методом для организации взаимодействия программ, от программиста требуется определенная профессиональная подготовка, в частности, знание архитектуры ПЭВМ и ДОС, умение работать с значениями регистров и др.
Обладание этими приемами открывает доступ к мощным средствам управления программами. Использование разных языков программирования в этом случае уже не будет препятствием для сочетания различных программ в рамках одной прикладной системы. Кроме того, через прерывания ДОС можно непосредственно обращаться к функциям, обслуживающим различные внешние устройства - дисплей, клавиатуру, дисковые накопители, принтер, коммуникационные каналы.
4.6.2. ВЗАИМОДЕЙСТВИЕ С ПРОГРАММАМИ НА ЯЗЫКЕ АССЕМБЛЕРА
Помимо возможности прямого обращения к прерываниям ДОС из программ на ЯВУ, при создании сложных прикладных систем обычно возникает необходимость в использовании машинио-ориентироваиных программ на языке ассемблера (часто говорят "программ на ассемблере" или "ассемблерных программ"). Более того, с целью повышения быстродействия или сокращения требуемых объемов памяти на ассемблере иногда составляются значительные куски прикладных программ.
В этих случаях возникает задача организации взаимодействия программ на ЯВУ с ассемблерными программами. Прежде всего отметим, что ассемблерные программы могут Объединяться с другими программами на уровне объектных модулей - с помощью компоновщика LINK. Главная проблема состоит во взаимной передаче параметров между такими программами. Рассмотрим общий метод передачи параметров в ассемблерные программы.
Допустим, имеется ассемблерная процедура для установки положения курсора в дисплейном окне, которая должна быть доступна из программ на паскале. Описание соответствующей процедуры в паскаль-программе может иметь вид:
PROCEDURE CURPOS(LINE: INTEGER; POS: INTEGER); EXTERNAL;
Соответственно обращение к этой процедуре в паскаль-программе может иметь вид:
CURPOS(L, P);
Вызываемая программа на ассемблере имеет следующий примерный вид:
WINDOW SEGMENT 'CODE' ;начало сегмента с именем WINDOW
PUBLIC CURPOS ;объявление "общедоступной" процедуры CURPOS
CURPOS PROC FAR ;обеспечение "дальнего" вызова процедуры
PUSH BP ;сохранение старого указателя на "фрейм"
MOV BP, SP ;установка нового положения "фрейма"
PUSH AX ;сохранение старых значений регистров
PUSH BX ;AX и BX
MOV BX, [BP+6] ;перенос в регистр BX 2-го параметра
MOV AX, [BP+8] ;перенос в регистр AX 1-го параметра
...
(выполнение необходимых действий с использованием параметров, сохраненных в регистрах AX и BX)
...
POP BX ;восстановление регистров
POP AX ;BX и AX
POP BP ;восстановление старого указателя на стек
RET 8 ;возврат из процедуры со сдвигом указателя стека на 8 байт назад
CURPOS ENDP ;конец тела процедуры CURPOS
WINDOW END ;конец сегмента WINDOW
В приведенном примере можно отметить несколько характерных деталей. Прежде всего необходимо пояснить, что передача информации между вызывающей программой и данной процедурой осуществляется через СТЕК - последовательность машинных слов, в которую данные "заталкиваются" оператором PUSH и "выталкиваются" оператором POP. В стек автоматически заносится также АДРЕС ВОЗВРАТА из процедуры. На текущую ячейку стека указывает содержимое регистра SP. В регистре BP находится указатель на ФРЕЙМ, т.е. на ту часть стека, в которой хранятся данные, относящиеся к вызванной процедуре.
В начале процедуры происходит сохранение в стеке старого значения регистра BP, а также регистров AX и BX, которые далее понадобятся для работы. Затем происходит очень важная операция - из стека командой MOV извлекаются значения двух параметров (заданных в обращении к паскаль-процедуре CURPOS как значения переменных L и P). Эти значения заносятся соответственно в регистры AX и BX и используются затем для выполнения основных действий - установки положения курсора в дисплейном окне.
Положения параметров в стеке фиксированы относительно начала фрейма, заданного значением указателя BP. Первые 4 байта заняты адресом возврата и старым значением SP, еще 2 байта - регистром счетчика команд, а параметры занимают по 2 следующих байта и поэтому адресуются конструкциями вида [BP+6] и [BP+8]. Следует иметь в виду, что при обращении к данной процедуре из паскаля стек заполняется от старших адресов к младшим, поэтому первый параметр находится дальше всего от позиции, на которую указывает регистр ВP. Если бы параметров было 4, то они адресовались бы с помощью следующих выражений:
[BP+6] - адрес 4-го двухбайтового параметра,
[BP+8] - адрес 3-го двухбайтового параметра,
[BP+10] - адрес 2-го двухбайтового параметра,
[BP+12] - адрес 1-го двухбайтового параметра.
Важным моментом является то, что в данном примере процедура CURPOS не меняет значений указанных параметров. Это позволяет передать их из паскаль-программы по ЗНАЧЕНИЮ, т.е. попросту скопировать в стек. Если же предполагается изменение параметров в ассемблерной процедуре, то их нужно передавать ПО ССЫЛКЕ. Для этого описание процедуры CURPOS в паскаль-программе должно было бы содержать описания параметров с указателем VAR или VARS, т.е. иметь, например, следующий вид:
PROCEDURE CURPOS (VAR LINE: INTEGER; VAR POS: INTEGER); EXTERNAL;
В этом случае и извлечение параметров в ассемблерной процедуре должно быть оформлено по-другому. Сначала нужно извлечь из стека ссылку на параметр (его адрес), а затем уже взять по этому адресу значение ячейки. Соответствующие операторы для 1-го параметра выглядели бы следующим образом:
MOV BX, [BP+8] ;занесение в BX адреса 1-го параметра
MOV AХ, [BХ] ;занесение в AX значения 1-го параметра
Возврат значения этого параметра паскаль-программе должен быть в этом случае осуществлен обратными операциями:
MOV BX, [BP+8] ;установка в BX адреса 1-го параметра
MOV [BX], AX ;возврат значения из AX в 1-й параметр
Аналогичным образом следует поступить со 2-м и со всеми последующими параметрами.
Следует иметь в виду, что в фортране передача параметров осуществляется только по ссылке, вне зависимости от того, меняются ли значения параметров в вызываемых подпрограммах или нет.
В языке си по умолчанию параметры передаются по значению, но поскольку в этом языке очень часто сами значения являются адресами других ячеек, то при работе с передаваемыми параметрами следует проявлять очень большую аккуратность. Поскольку ни в языке си, ни тем более в ассемблере нет никакого контроля за правильностью передачи параметров, вся забота о правильной обработке ссылок и значений возлагается на программиста. В си можно явно указать, что переменная должна содержать адрес, а не значение; для этого переменная снабжается префиксом *, Здесь проявляется некоторое сходство с языком паскаль, где для этой же цели служит указатель VAR.
Помимо того, в си порядок размещения параметров на стеке противоположен рассмотренному выше и принятому в Паскале, а размешаются они на два байта ближе к началу фрейма, чем в случае паскаля. Наконец, в си, в отличие от паскаля, допускается переменное число параметров при обращении к функциям, что может дополнительно усложнить их обработку в ассемблерной программе.
Из всего этого следует, что одна и та же ассемблерная подпрограмма не может обслуживать программы и на си, и на паскале, если только не применять специальных ухищрений. Для интерфейса с каждым из этих языков требуется свой подход к передаче и обработке параметров.
4.6.3. РЕЗИДЕНТНЫЕ ПРОГРАММЫ
Часто бывает необходимо, чтобы служебная программа сработала один раз и осталась в памяти для того, чтобы к ней позднее могли обращаться другие программы. Такую программу называют РЕЗИДЕНТНОЙ, в отличие от обычных программ, которые по окончании работы освобождают занятую память.
Как указывалось выше, ДОС-функция 31 H осуществляет остановку программы и оставляет ее резидентной в памяти. К этой функции можно обращаться непосредственно из программы на ЯВУ, если в нем обеспечивается доступ к прерываниям ДОС. Можно выполнить те же действия, используя соответствующую ассемблерную подпрограмму. Фрагмент программы на аосемблере, предназначенной для реализации указанной операции, имеет следующий вид:
PUSH ES ;запоминание начала программы в стеке
...
POP AX ;выталкивание адреса начала программы из стека а регистр AX
MOV DX, SEG ZZ ;занесение адреса конца программы ZZ в регистр DX
SUB DX, AX ;вычисление длины программы
INC DX ;увеличение длины на 1
MOV АН, 31Н ;задание в регистре AH номера функции 31 H (остановить задачу и сделать ее резидентной)
INT 21H ;обращение к прерыванию 21 H
ZZ SEGMENT 'ZZ' ;конец программы ZZ
ZZ ENDS
Такая подпрограмма может быть соединена о любой другой программой на ЯВУ и использована для создания резидентной копии задачи.
4.6.4. СВЯЗЫВАНИЕ ПРОГРАММ ЧЕРЕЗ ПОТОКИ ВВОДА/ВЫВОДА
Рассмотренные выше приемы основаны на проникновении внутрь операционной системы и требуют, как правило, тщательного программирования для обработки параметров, передаваемых между программами. Существует, однако, гораздо более простой путь для организации взаимодействия программ, основанный на стандартном сервисе, предоставляемом ДОС.
В ДОС имеется понятие СТАНДАРТНОГО ВХОДНОГО и СТАНДАРТНОГО ВЫХОДНОГО УСТРОЙСТВА. По умолчанию эти устройства соответствуют клавиатуре и дисплею. Имеется возможность переопределять стандартные устройства (или потоки) ввода и вывода. Вместо клавиатуры и дисплея в этой роли могут выступать, во-первых, различные внешние устройства (например, принтер или коммуникационный канал), во-вторых, любые дисковые файлы, и, в-третьих, любые программы, работающие со стандартным входом и выходом.
В программе на ЯВУ стандартное входное и стандартное выходное устройства доступны через обычные операторы ввода/вывода: в паскале - READ и WRITE, в языке си - getchar, putchar и printf. Любой начинающий программист знает, что такие операторы позволяют обмениваться информацией с клавиатурой и дисплеем, не задумываясь о том, что здесь кроются более широкие возможности.
В командной строке, обращенной к ДОС и предусматривающей запуск какой-либо программы, можно указать, откуда должен поступать в программу стандартный входной поток и куда должен направляться стандартный выходной поток. Благодаря этой возможности можно, не меняя программ, подключать к ним различные внешние устройства и файлы в качестве источников и приемников информации, а также организовывать взаимную передачу информации между отдельными программами. Если имя программы - PP, то изменить ее входной и выходной потоки можно командой следующего вида:
PP <from >to
Здесь символ "from" соответствует стандартному входному потоку, а символ "to" - стандартному выходному потоку. Приведенная выше запись может иметь варианты, когда указывается только входной или только выходной поток:
PP <from или PP >to
Вместо символов from и to могут фигурировать имена файлов или зарезервированные имена внешних устройств (CON:, PRN:, LPT1:, LPT2:, СOМ1:, COM2:, AUX:). Следует помнить, что одни внешние устройства могут использоваться только на выходе (например, принтер), другие только на входе (например, диджитайзер), но есть и такие устройства, которые способны передавать информацию в обоих направлениях (например, модемы).
Если источником или приемником информации для данной программы является другая программа, то используется иное обозначение. Пример такого обозначения для трех взаимосвязанных программ:
PP1 | PP2 | PP3
В данном примере стандартный выходной поток программы PP1 связывается со стандартным входным потоком программы PP2, а ее стандартный выходной поток, в свою очередь, поступает на стандартный вход программы PPЗ.
Для обозначения таких цепочечных связей между программами используют термин "канал" (англ. pipe). В ДОС такой канал реализуется с помощью временного файла, который операционная система сама создает в корневом каталоге и уничтожает после окончания работы программ. В системе Юникс этот же самый механизм реализуется при помощи внутренних файлов, благодаря чему обмен информацией между программами происходит гораздо быстрее.
Программа, которая принимает данные со стандартного входа и передает их (после обработки) на стандартный выход, называется ФИЛЬТРОМ. В приведенном выше примере роль фильтра играла программа PP2. К фильтрам относятся некоторые системные утилиты ДОС: SORT, MORE.
Программа-фильтр "пропускает" через себя соответствующую информацию, осуществляя ее переработку. Так, фильтр SORT обеспечивает сортировку пропускаемых через него текстовых данных; MORE пропускает текст порциями по 24 строки с остановками (используется при выводе текстов файлов на экран). В принципе можно составлять собственные программы-фильтры, которые будут осуществлять необходимую переработку последовательных потоков данных. Это может понадобиться, например, при организации связи ПЭВМ с большой ЭВМ, при необходимости перекодировки текстов и при других операциях.
Описанный метод взаимодействия программ очень прост, но имеет очевидные недостатки. Во-первых, передача информации между программами осуществляется только посредством последовательного потока, а не с помощью параметров, как это имеет место при процедурном взаимодействии. Во-вторых, у программ занимаются стандартные каналы ввода-вывода, а это часто бывает неприемлемо. В-третьих, указанный обмен происходит сравнительно медленно, поскольку реализуется через обычную файловую систему.
Таковы основные методы разработки прикладных систем на языках высокого уровня. В следующих главах мы рассмотрим некоторые прикладные системы уже с точки зрения пользователя. Будут рассмотрены методы построения автоматизированных рабочих мест на основе персональных компьютеров, а также порядок работы с некоторыми типами прикладных систем.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Временная тема
ГЛАВА 5. ПРИКЛАДНЫЕ СИСТЕМЫ НА ПЕРСОНАЛЬНЫХ КОМПЬЮТЕРАХ
5.1. АВТОМАТИЗИРОВАННОЕ РАБОЧЕЕ МЕСТО НА ОСНОВЕ ПЭВМ
Персональные ЭВМ представляют новый класс средств вычислительной техники. Они отличаются высокой надежностью, дешевизной, компактностью, малым потреблением энергии. Эти свойства позволяют создавать на их основе автоматизированные рабочие места широкого назначения. Они могут использоваться в органах государственного управления, проектно-конструкторских бюро, промышленных и сельскохозяйственных предприятиях, научных и медицинских учреждениях, учебных заведениях.
ПЭВМ дает возможность построения систем нового типа, отличающихся, с одной стороны, разнообразием средств отображения информации, с другой - интеграцией этих средств и обеспечением максимального удобства и простоты работы пользователей, не обладающих специальной подготовкой.
С начала появления ПЭВМ прикладные системы для разных видов работы создавались на них в виде автономных программ или пакетов программ. Наиболее распространенными и популярными были и остаются до сих пор системы обработки текстов (текстовые процессоры), системы обработки "электронных таблиц" и базы данных. Следующими по распространенности являются системы "деловой графики" и коммуникационные подсистемы. Наконец, имеется множество прикладных систем более узкой ориентации - для поддержки планирования, финансовых расчетов, автоматизации проектирования различных изделий и др.
По мере накопления опыта разработки и использования различных прикладных систем стало ясно, что наиболее удобно сочетание нескольких видов прикладных систем в рамках единой операционной среды. Было положено начало построению так называемых ИНТЕГРИРОВАННЫХ систем, объединяющих наиболее часто используемые прикладные программы и пакеты. Наиболее популярные интегрированные системы, созданные в 1983-85гг.,- Symphony, Framework, Lotus 1-2-3. В них сочетаются возможности обработки текстовой и табличной информации, могут создаваться простые базы данных, можно отображать информацию в графическом виде. Правда, общение с этими системами для неподготовленного пользователя все же затруднительно,- довольно много времени тратится на чтение "подсказок", изучение руководств и просто приобретение опыта общения с системой. Для каждой категории пользователей или для определенных видов работы необходимо предварительно правильно сконфигурировать систему, заполнить ее релевантной информацией.
Работы по созданию более удобных для пользователей систем основываются на подборе более подходящих моделей человеко-машинного взаимодействия, учете особенностей определенных сфер применения автоматизированных систем.
В данной главе рассматриваются общие черты интегрированной системы, которая может послужить основой для построения автоматизированных рабочих мест на основе ПЭВМ. Такая система должна обеспечивать:
- удобный ввод проблемно-ориентированной информации,
- быстрый доступ к ранее введенной информации,
- формирование и обработку документов сложной структуры,
- создание личных картотек, деловых календарей, записных книжек и других средств оргтехники.
Интеграция в рассматриваемой системе должна проявляться, во-первых, в том, что все программные компоненты системы взаимно согласованы и могут обмениваться информацией друг с другом. Во-вторых, должен обеспечиваться единый стиль взаимодействия пользователя с системой, который предусматривает минимум манипуляций на клавиатуре, единообразное и наглядное отображение информации, простое управление ходом диалога, быстрое переключение между различными функциональными компонентами системы.
Концепция построения такой системы, которая лежит в основе разработок, выполняемых в Вычислительном центре АН СССР, предполагает, что представление данных и работа с ними с точки зрения пользователя основаны на ОБЪЕКТНО-ОРИЕНТИРОВАННОМ подходе. Сущность этого подхода состоит в том, что каждая логически замкнутая информационная единица трактуется как отдельный объект, который может рассматриваться пользователем с разных точек зрения. Одни объекты представляются естественнее всего как таблицы или строки в них, другие-как текстовые документы, третьи - как графические изображения.
Какие виды деятельности можно автоматизировать с помощью описываемой системы? Ниже будет рассмотрено несколько типичных задач, в которых применяются текстовые, табличные и графические объекты. При описании метода взаимодействия пользователя с системой будут рассмотрены типичные функции, которые предоставляются человеку при создании и обработке соответствующих документов. С целью конкретизации мы рассмотрим сначала несколько характерных применений интегрированной системы, с тем чтобы проиллюстрировать на реальных примерах общие приемы обработки текстовой, табличной и графической информации.
РАБОЧЕЕ МЕСТО РУКОВОДИТЕЛЯ. Одно нз наиболее частых применений ЭВМ связано с автоматизацией информационной деятельности руководителей государственных, проектных, научных учреждений, редакций, отделов и т.п. Рассмотрим типичные документы, с которыми имеет дело руководитель.
Основным документом, как правило, является общий план работы, в котором отражаются основные темы (проекты, задания), раскрывается нх содержание и ожидаемые результаты, указываются исполнители, ресурсы, финансовые показатели и др. Кроме общего плана, необходимо иметь детальные планы работы отдельных подразделений и групп, вплоть до конкретных заданий и исполнителей.
Другой тип документов, с которыми имеет дело руководитель,- это различные ведомости, справки, отчеты. В них содержится более детальная информация об отдельных проектах, изделиях, материалах, исполнителях. Потребность в тех или иных документах возникает при просмотре планов работ или других аналогичных документов.
Наконец, у руководителей всегда есть необходимость в информационной поддержке личной деятельности, для чего используются записные книжки, картотеки, календари и другие средства оргтехники.
Для наглядного представления планов работ часто пользуются справочными таблицами (матрицами) следующего вида (рис. 5.1):
Рис.5.1. Общий вид справочной таблицы
Проанализируем внешний вид такой таблицы и рассмотрим типичный порядок работы с ней. Каждая тема (проект, задание) описывается в таблице несколькими строчками. Группу строчек, относящуюся к одной теме или подтеме, будем называть суперстрокой.
Суперстроки разделены на поля - ЯЧЕЙКИ таблицы. Два левых поля обыкновенно содержат порядковые номера и словесные формулировки тем и подтем, а остальные поля содержат значения различных показателей. Это могут быть текстовые описания содержания и результатов работ по данной теме (подтеме), списки исполнителей, сроки, количественные и финансовые показатели и др.
Пользователь - руководитель или его помощник - должен иметь возможность внимательно просматривать такую таблицу по строкам или столбцам, анализируя и сопоставляя значения показателей ti.
Кроме того, должна иметься возможность занесения новых значений ti в отдельные ячейки таблицы.
Содержимое некоторых ячеек может раскрываться с помощью дополнительных таблиц, которые могут иметь примерно такую же структуру. Кроме того, раскрытие содержания отдельных позиций плана может осуществляться с помощью текстовых документов - пояснительных записок, аннотаций, рефератов и др.
Рассмотрим, каким образом указанная информация может быть представлена в ПЭВМ. На экране дисплея ПЭВМ показать сразу всю таблицу обычно не удается, потому что формат экрана ограничен. Типичный экран ПЭВМ допускает вывод лишь 25 строк по 80 символов. Но здесь может помочь так называемое МНОГООКОННОЕ отображение информации.
При многооконном методе отображения на экран в каждый момент времени выводится лишь фрагмент таблицы, например, такой, как показано на вышеприведенном рисунке. Выведенный фрагмент занимает дисплейное окно, соответствующее полному экрану или его части. В такое окно может быть выведена часть текстового документа. Пользователь имеет возможность выполнять три базовые операции:
а) изменять текстовые и числовые значения в отдельных ячейках справочной таблицы или в текстовых документах, выведенных на экран;
б) перемещаться вдоль таблицы или текста, открывая для просмотра или изменения другие части, в том числе не видимые в данный момент на экране;
в) раскрывать содержимое отдельных ячеек таблицы или позиций текста, выводя на экран вспомогательные таблицы и текстовые документы.
Поясним, как осуществляются указанные операции. Прежде всего заметим, что для любых операций, связанных с перемещениями, используется специальный манипулятор "мышь" - коробочка, скользящая по столу и направляемая рукой в нужном направлении, или же клавиши со стрелками "Вниз", "Вверх", "Вправо" и "Влево", имеющиеся на клавиатуре ПЭВМ.
При выводе окна на дисплей одна из ячеек таблицы помечается как АКТИВНАЯ. Технически такая пометка осуществляется выделением ее особым цветом, негативным изображением или с помощью специального мигающего знака. Будем говорить, что выделенная активная ячейка отмечается с помощью КУРСОРА. Пользуясь манипулятором "мышь" или клавишами со стрелками, курсор можно перемещать по таблице, указывая на ту или другую активную ячейку.
В активную ячейку можно занести новую информацию, для чего достаточно нажать любую алфавитно-цифровую клавишу и тем самым войти в режим редактирования. В этом режиме можно либо ввести совершенно новое значение ti в активную ячейку, либо отредактировать (изменить) старое значение. Конец редактирования фиксируется нажатием специальной клавиши "Исполнение".
Дисплейное окно можно смещать относительно таблицы, открывая для просмотра и изменения невидимые ранее ячейки. При этом положение окна на экране не изменяется, а таблица как бы скользит под окном. Для выполнения такого смещения пользователь должен установить курсор на одну из границ окна и затем как бы продолжать перемещать его за эту границу. В результате будет происходить смещение окна относительно таблицы шагами по одной ячейке, пока не будет достигнут соответствующий край таблицы.
При работе с текстовыми документами используется точно такая же техника работы, как и с таблицами, только курсором выделяется не целая ячейка, а отдельный символ, слово или строка текста.
В тех ячейках таблицы, где должны находиться значения показателей ti, при выводе на экран совсем не обязательно должны фигурировать конкретные текстовые формулировки или числа. Вместо них могут стоять лишь условные символы, обозначающие возможность раскрытия соответствующих значений. Осуществляется такое раскрытие очень простыми действиями пользователя: в интересующую пользователя ячейку табл.1.1 подводится курсор и нажимается специальная клавиша "Раскрыть" (эту роль может играть одна из функциональных клавиш на клавиатуре). В результате раскрытия на экран выводится новое окно с соответствующей таблицей или текстом, причем оно может полностью или частично перекрыть ранее выведенное исходное окио. Изображение на экране может приобрести вид, показанный на рис.5.2.
Рис.5.2. Вид экрана при вызове двух таблиц
Просмотрев информацию во вспомогательном окне (в табл.1.2 на рис.5.2), пользователь может вернуться к исходному окну, нажав специальную функциональную клавишу "Закрыть". При этом окно со вспомогательной табл.1.2 исчезает с экрана, а изображение исходного окна с табл.1.1 восстанавливается.
Поскольку работа со вспомогательными таблицами принципиально ничем не отличается от работы с исходной таблицей, ячейки вспомогательной таблицы можно раскрывать посредством таблиц или текстовых фрагментов следующего уровня.
Таким образом, представление планов работы и других документов с помощью описываемого метода сохраняет привычные формы, но дает удобные возможности их быстрого просмотра и изменения. При этом от пользователя практически не требуется никаких специальных навыков, кроме умения перемещать курсор и нажимать две-три специально выделенные функциональные клавиши.
Рассмотренный метод представления деловой документации является общим для разных видов автоматизированных рабочих мест и разных типов документов. Ниже рассматривается еще несколько типовых задач, иллюстрирующих общий подход.
РАБОЧЕЕ МЕСТО ЭКОНОМИСТА, БУХГАЛТЕРА. В то время как руководители и их помощники имеют дело со структурированной информацией, в которой основными элементами являются формулировки тем, проектов, заданий, фамилии людей, названия организаций, изделий и т.п., другая категория работников административно-управленческого аппарата - экономисты, бухгалтеры и плановики работают в основном с числовыми данными. Эти данные характеризуют бюджет учреждения, различные фонды, распределение денежных средств по отделам, материальные ресурсы, финансовые расчеты с банками и другими учреждениями.
Для автоматизации обработки экономической информации больше всего подходит метод ЭЛЕКТРОННЫХ ТАБЛИЦ. Простой пример такой таблицы показан на рис.5.3.
Рис.5.3. Представление данных в электронной таблице
В представленной на рис.5.3 таблице в первых строках содержатся текстовые пояснения к обрабатываемым данным. Обрабатываемые данные размещаются в строках с номерами 1-6. Столбцы таблицы снабжены однобуквенными метками - А, Б, В, Г, Д, Е. Использование вместо них цифр, как это обычно принято в документах такого типа, несколько затруднило бы дальнейшие рассуждения.
Рассмотрим, в чем заключается обработка данных в этом простом примере. Каждая из строк 1-5 содержит данные по командировочным расходам (в определенный город). Исходные данные - название города, стоимость проезда туда и обратно, расходы одного человека в день, число дней и количество командируемых - задаются в первых пяти ячейках каждой строки.
Последняя, 6-я ячейка заполняется числом, которое рассчитывается по следующей формуле:
Е = (Б*Г)+(В*Г*Д) (1)
где Б - стоимость проезда туда и обратно, В - расходы одного человека в день, Г - количество командируемых, Д - продолжительность командировки.
На отдельную ячейку таблицы удобно ссылаться, указывая ее метку. Так, например, метка Б1 указывает на ячейку, которая находится на пересечении столбца Б и 1-й строки таблицы. Тогда вышеприведенная формула для 1-й строки будет иметь вид:
Е1 = (Б1*Г1)+(В1*Г1*Д1) (2)
Для строк со 2-й по 5-ю в этой формуле достаточно изменить единицу на номер строки.
В 6-й строке, в ячейке Е6 должна стоять общая сумма расходов на все командировки, которая получается сложением значений, взятых из ячеек Е1-Е5; т.е. по формуле:
Е6 = Е1+Е2+ЕЗ+Е4+Е5 (3)
Эта зависимость может быть сформулирована более сжато;
Е6 = СУММА(Е1..Е5) (За)
Ячейку Е6 можно в данном случае назвать итоговой для табл.2.1. Для других аналогичных таблиц, где число строк с фактическими данными может быть иным, итоговая ячейка может иметь другую метку. Далее будет показано, что понятие итоговой ячейки имеет особое значение для установки взаимосвязей между таблицами.
В чем заключается привлекательность электронной таблицы по сравнению с представлением ее на обычной бумаге, как это делается пока в большинстве учреждений? Причин несколько:
Во-первых, вводить исходные данные в электронную таблицу во многих случаях легче и быстрее, чем это можно сделать в бумажном документе. Например, в приведенной выше таблице в колонке В, где задана величина расходов в день на одного человека, почти все значения одинаковы, за исключением одного числа. В такой ситуации достаточно было ввести число 6.60 в одну ячейку В1, затем скопировать ее в ячейки В2, ВЗ и В5. Операция копирования осуществляется очень просто и при большом количестве исходных данных может существенно сократить время ввода информации. К тому же копировать можно не только значения отдельных ячеек, но и целые строки, столбцы или прямоугольные области - вырезки из таблицы.
Во-вторых, в электронной таблице можно с помощью формул задавать зависимость одних значений от других. Например, достаточно ввести в ячейку Е1 формулу (2), а затем скопировать ее в ячейки Е2-Е5; при этом соответствующие индексы у термов формулы автоматически корректируются. Ввод формул осуществляется примерно так же, как и ввод чисел в ячейки таблицы. Введя в ячейку Е6 формулу (3), мы окончательно определим все зависимости - бухгалтеру уже не нужно при помощи калькулятора или других средств проводить вычисления и вносить в таблицу соответствующие числа. Все необходимые вычисления выполняются автоматически. Более того, при работе с электронной таблицей легко осуществить проверку "что будет, если...". Так, например,стоит изменить какое-либо из исходных значений, например, число командируемых в город Таллин (ячейка Г2), и произойдет автоматический пересчет всех зависящих от него величии - чисел в ячейках Е2 и Е6, Это свойство электронных таблиц, позволяющее соединять формирование документов с автоматическими вычислениями по формулам, является их главной привлекательной чертой для экономистов, бухгалтеров и плановиков.
В-третьих, сформированная электронная таблица сразу же становится документом, который может многократно использоваться, легко модифицироваться и выводиться на печать в нужном числе экземпляров. На основе одной таблицы можно очень быстро создать аналогичную таблицу с другими исходными данными и, возможно, с измененными формулами. Техника ввода формул, их копирования в другие ячейки, а также копирования строк, столбцов и областей здесь не рассматривается; важно осознать основные возможности электронных таблиц.
Как и в случае работы с другими типами документов, рассмотренными в предыдущих задачах, электронные таблицы представляются на экране ПЭВМ через дисплейные окна. Окон может быть несколько, и в каждом из них представляется своя информация. Для экономиста, в частности, может оказаться полезным вывод нескольких взаимосвязанных таблиц. Например, в сводной ведомости - таблице вида 2.2 (рис.5.4) могут в качестве исходных данных фигурировать итоговые значения нескольких таблиц вида 2.1.
Рис.5.4. Представление сводной ведомости
Значения столбца Ж этой таблицы рассчитываются по формуле вычисления среднего из значений, фигурирующих в ячейках Б-Е. В свою очередь значения ячеек Б-Ж5 подсчитываются как суммы чисел в соответствующих столбцах. Все эти зависимости легко задаются с помощью формул.
Если на экран выведена табл.2.2, а затем пользователь захочет посмотреть, каким образом получено некоторое число, например, в ячейке E1, достаточно установить курсор на эту ячейку и нажать клавишу "Раскрыть". Поскольку значение Е1 определяется как итоговое значение табл.2.1, эта таблица будет выведена на экран в отдельное дисплейное окно. Таким образом, взаимосвязь между разными таблицами через итоговые значения позволяет экономисту быстро просматривать и анализировать все относящиеся к делу данные.
Кроме удобства работы с электронными таблицами как с таковыми, экономист имеет возможность графического представления данных, содержащихся в таблице. Соответствующие программные средства называют деловой графикой. Сущность работы с этими средствами очень проста. Пользователь выделяет в таблице данные, которые он хотел бы представить в графическом виде. Обычно такие данные содержатся в смежных столбцах и строках. Один из столбцов или одна из строк выбирается в качестве основы для разметки оси X. Значения других столбцов (строк) используются для построения графиков. Сами графики могут иметь разный вид - они могут изображаться столбиками разной высоты (столбиковые гистограммы), линейными графиками, точками на координатной плоскости или круговыми диаграммами, разбитыми на сектора.
Например, данные нз строк 1-4 и столбцов Б-Е табл.2.2 можно представить в виде графика, показанного на рис.5.5.
Рис.5.5. Графическое представление данных табл. 2.2
Высота каждого столбца пропорциональна значению одной из ячеек табл.2.2. Четыре левых столбца соответствуют ячейкам Б1-Б4, следующая группа соответствует ячейкам В1-В4 и т.д. Надписи на графике могут переноситься из соответствующих надписей таблицы или же наноситься на картинку с изображением графика независимыми средствами.
Возможны и другие способы графического отображения этих данных. Важно, что при изменении исходных данных происходит автоматическая перестройка графиков.
Средства деловой графики повышают наглядность отображения числовой информации и особенно ценны при проведении финансового анализа, составлении отчетов и другой документации.
Таким образом, сочетание методов работы с электронными таблицами и средств деловой графики дает в руки финансовых работников удобный инструмент для обработки и отображения числовой экономической информации. Поскольку стиль взаимодействия с ПЭВМ при этом остается таким же, как и при использовании обычных справочных таблиц, рассмотренных в задаче 1, все описанные средства могут легко сочетаться и эффективно использоваться в административно-управленческой работе.
РАБОЧЕЕ МЕСТО ПРОЕКТИРОВЩИКА, ИССЛЕДОВАТЕЛЯ. В отличие от работников административно-управленческого аппарата, для которых большая часть служебной информации может быть представлена в виде достаточно однородных табличных или текстовых документов, проектировщики и исследователи нуждаются в более разнообразных средствах представления и обработки информации. Проектируемый или исследуемый объект обычно характеризуется множеством структурных описаний, которые необходимо хранить в базе данных; он часто сопровождается графическими изображениями (схемами, чертежами) отдельных компонентов; для расчета параметров используются вычислительные модели, реализованные в виде программ; текстовая документация также является необходимой составной частью информации об объекте. Проектировщик должен иметь возможность быстро ориентироваться в этом множестве и находить нужные фрагменты информации, многократно изменять нх, проводить соответствующие вычисления и выдавать твердые копии документов.
Рассмотрим несколько типичных способов задания информации о проектируемых/исследуемых объектах. Чтобы не связывать воображение читателя, рассмотрим в качестве примера некий абстрактный объект, описываемый следующим образом.
Основные компоненты типового объекта:
- центральный обрабатывающий узел (ЦО),
- накапливающие узлы (Н),
- терминальные узлы (Т),
- соединительные коммуникации (К).
Конкретные объекты формируются нз указанных компонентов, причем число экземпляров каждого компонента (узла или коммуникации) зависит от конкретной конфигурации проектируемого объекта.
Взаимное расположение узлов задается схемой компоновки, отдельные узлы описываются чертежами и текстовой документацией.
Каждый узел характеризуется совокупностью параметров {Aij}, соотношения между которыми формально задаются уравнениями и фактически рассчитываются с помощью программ {P}, решающих эти уравнения.
Подобное описание может характеризовать объекты самой разной природы - электронное изделие, станок, обрабатывающий центр, производственное предприятие, нефтедобывающий район, транспортный узел, аэровокзал и др.
Рассмотрим способы представления указанной информации в ПЭВМ. Общий состав конкретного объекта X может быть представлен информационной структурой, которая на экране ПЭВМ выглядит следующим образом (рис.5.6).
Рис.5.6. Представление общей структуры объекта
Начиная с этого представления верхнего уровня, проектировщик может "погружаться" на следующие уровни с целью более детального исследования различных компонентов объекта X. Картина, представленная на рис.5.6, фактически составлена из:
а) поясняющих надписей к отдельным свойствам объекта,
б) значений этих свойств, представленных именами компонентов или просто условными обозначениями (например, пустыми квадратиками).
Подобную картину можно представить как трафарет с текстовыми пометками и "отверстиями", сквозь которые видны значения отдельных свойств.
Чтобы выбрать для дальнейшего исследования какой-либо элемент объекта X, пользователю достаточно установить курсор в соответствующую позицию и нажать клавишу "Исполнение". В ответ на это действие система выведет в новое дисплейное окно соответствующий фрагмент информации. Например, если для очередного этапа исследования выбран узел H1, то на экран может быть выведено окно с описанием параметров этого узла, которое наложится на общее представление структуры объекта X (рис.5.7).
Рис.5.7. Представление информации об узле H1
Точно так же можно получить информацию о других компонентах объекта X. Если же установить курсор в позицию трафарета, помеченную надписью "Схема компоновки", то после нажатия клавиши "Исполнение" произойдет раскрытие соответствующего значения и на экран будет выведено окно с графическим изображением. В зависимости от природы объекта X такое изображение может представлять условную схему, эскиз чертежа или карту местности с нанесенными условными обозначениями узлов и коммуникаций (рис.5.8 ).
Рис.5.8. Графическое представление схемы компоновки
Выбор на трафарете рис.5.6 позиции с пометкой "Общий расчет" вызывает программу, которая осуществляет необходимые вычисления, используя в качестве исходных данных параметры объекта или его отдельных компонентов.
Все вышеприведенные рассуждения применимы к описаниям отдельных узлов и их компонентов,- и так до любой степени детализации. Информация может представляться не только с помощью структурных описаний и графических изображений, но также с помощью справочных и вычисляемых электронных таблиц, которые были рассмотрены в предыдущих разделах.
Таким образом, особенностью данного метода является, с одной стороны, возможность применения различных средств представления информации о проектируемых/исследуемых объектах и их составных частях; с другой стороны, такая организация информации, которая позволяет легко переключаться между общим и частным, текстовыми представлевиями и графическими, режимом просмотра/модификации параметров и режимом вычисления. Эти особенности дают пользователям удобные средства для анализа, модификации и расчетов, при проектировании в исследовании объектов разного назначения.
Рассмотренные принципы применимы для организации рабочих мест и других специалистов - преподавателей в учащихся, врачей, агрономов, администраторов гостиниц и др. На основе рассмотренного метода легко построить автоматизированные справочные системы, доступные широкой публике через специальные терминалы; такие системы могут обеспечивать выдачу информации об имеющихся товарах, о том, "как проехать", о текущих культурных мероприятиях, о службе быта, о трудоустройстве, об основных юридических положениях, о предлагаемых обменах жилой площадью и многом другом.
5.1. АВТОМАТИЗИРОВАННОЕ РАБОЧЕЕ МЕСТО НА ОСНОВЕ ПЭВМ
Персональные ЭВМ представляют новый класс средств вычислительной техники. Они отличаются высокой надежностью, дешевизной, компактностью, малым потреблением энергии. Эти свойства позволяют создавать на их основе автоматизированные рабочие места широкого назначения. Они могут использоваться в органах государственного управления, проектно-конструкторских бюро, промышленных и сельскохозяйственных предприятиях, научных и медицинских учреждениях, учебных заведениях.
ПЭВМ дает возможность построения систем нового типа, отличающихся, с одной стороны, разнообразием средств отображения информации, с другой - интеграцией этих средств и обеспечением максимального удобства и простоты работы пользователей, не обладающих специальной подготовкой.
С начала появления ПЭВМ прикладные системы для разных видов работы создавались на них в виде автономных программ или пакетов программ. Наиболее распространенными и популярными были и остаются до сих пор системы обработки текстов (текстовые процессоры), системы обработки "электронных таблиц" и базы данных. Следующими по распространенности являются системы "деловой графики" и коммуникационные подсистемы. Наконец, имеется множество прикладных систем более узкой ориентации - для поддержки планирования, финансовых расчетов, автоматизации проектирования различных изделий и др.
По мере накопления опыта разработки и использования различных прикладных систем стало ясно, что наиболее удобно сочетание нескольких видов прикладных систем в рамках единой операционной среды. Было положено начало построению так называемых ИНТЕГРИРОВАННЫХ систем, объединяющих наиболее часто используемые прикладные программы и пакеты. Наиболее популярные интегрированные системы, созданные в 1983-85гг.,- Symphony, Framework, Lotus 1-2-3. В них сочетаются возможности обработки текстовой и табличной информации, могут создаваться простые базы данных, можно отображать информацию в графическом виде. Правда, общение с этими системами для неподготовленного пользователя все же затруднительно,- довольно много времени тратится на чтение "подсказок", изучение руководств и просто приобретение опыта общения с системой. Для каждой категории пользователей или для определенных видов работы необходимо предварительно правильно сконфигурировать систему, заполнить ее релевантной информацией.
Работы по созданию более удобных для пользователей систем основываются на подборе более подходящих моделей человеко-машинного взаимодействия, учете особенностей определенных сфер применения автоматизированных систем.
В данной главе рассматриваются общие черты интегрированной системы, которая может послужить основой для построения автоматизированных рабочих мест на основе ПЭВМ. Такая система должна обеспечивать:
- удобный ввод проблемно-ориентированной информации,
- быстрый доступ к ранее введенной информации,
- формирование и обработку документов сложной структуры,
- создание личных картотек, деловых календарей, записных книжек и других средств оргтехники.
Интеграция в рассматриваемой системе должна проявляться, во-первых, в том, что все программные компоненты системы взаимно согласованы и могут обмениваться информацией друг с другом. Во-вторых, должен обеспечиваться единый стиль взаимодействия пользователя с системой, который предусматривает минимум манипуляций на клавиатуре, единообразное и наглядное отображение информации, простое управление ходом диалога, быстрое переключение между различными функциональными компонентами системы.
Концепция построения такой системы, которая лежит в основе разработок, выполняемых в Вычислительном центре АН СССР, предполагает, что представление данных и работа с ними с точки зрения пользователя основаны на ОБЪЕКТНО-ОРИЕНТИРОВАННОМ подходе. Сущность этого подхода состоит в том, что каждая логически замкнутая информационная единица трактуется как отдельный объект, который может рассматриваться пользователем с разных точек зрения. Одни объекты представляются естественнее всего как таблицы или строки в них, другие-как текстовые документы, третьи - как графические изображения.
Какие виды деятельности можно автоматизировать с помощью описываемой системы? Ниже будет рассмотрено несколько типичных задач, в которых применяются текстовые, табличные и графические объекты. При описании метода взаимодействия пользователя с системой будут рассмотрены типичные функции, которые предоставляются человеку при создании и обработке соответствующих документов. С целью конкретизации мы рассмотрим сначала несколько характерных применений интегрированной системы, с тем чтобы проиллюстрировать на реальных примерах общие приемы обработки текстовой, табличной и графической информации.
РАБОЧЕЕ МЕСТО РУКОВОДИТЕЛЯ. Одно нз наиболее частых применений ЭВМ связано с автоматизацией информационной деятельности руководителей государственных, проектных, научных учреждений, редакций, отделов и т.п. Рассмотрим типичные документы, с которыми имеет дело руководитель.
Основным документом, как правило, является общий план работы, в котором отражаются основные темы (проекты, задания), раскрывается нх содержание и ожидаемые результаты, указываются исполнители, ресурсы, финансовые показатели и др. Кроме общего плана, необходимо иметь детальные планы работы отдельных подразделений и групп, вплоть до конкретных заданий и исполнителей.
Другой тип документов, с которыми имеет дело руководитель,- это различные ведомости, справки, отчеты. В них содержится более детальная информация об отдельных проектах, изделиях, материалах, исполнителях. Потребность в тех или иных документах возникает при просмотре планов работ или других аналогичных документов.
Наконец, у руководителей всегда есть необходимость в информационной поддержке личной деятельности, для чего используются записные книжки, картотеки, календари и другие средства оргтехники.
Для наглядного представления планов работ часто пользуются справочными таблицами (матрицами) следующего вида (рис. 5.1):
Рис.5.1. Общий вид справочной таблицы
Проанализируем внешний вид такой таблицы и рассмотрим типичный порядок работы с ней. Каждая тема (проект, задание) описывается в таблице несколькими строчками. Группу строчек, относящуюся к одной теме или подтеме, будем называть суперстрокой.
Суперстроки разделены на поля - ЯЧЕЙКИ таблицы. Два левых поля обыкновенно содержат порядковые номера и словесные формулировки тем и подтем, а остальные поля содержат значения различных показателей. Это могут быть текстовые описания содержания и результатов работ по данной теме (подтеме), списки исполнителей, сроки, количественные и финансовые показатели и др.
Пользователь - руководитель или его помощник - должен иметь возможность внимательно просматривать такую таблицу по строкам или столбцам, анализируя и сопоставляя значения показателей ti.
Кроме того, должна иметься возможность занесения новых значений ti в отдельные ячейки таблицы.
Содержимое некоторых ячеек может раскрываться с помощью дополнительных таблиц, которые могут иметь примерно такую же структуру. Кроме того, раскрытие содержания отдельных позиций плана может осуществляться с помощью текстовых документов - пояснительных записок, аннотаций, рефератов и др.
Рассмотрим, каким образом указанная информация может быть представлена в ПЭВМ. На экране дисплея ПЭВМ показать сразу всю таблицу обычно не удается, потому что формат экрана ограничен. Типичный экран ПЭВМ допускает вывод лишь 25 строк по 80 символов. Но здесь может помочь так называемое МНОГООКОННОЕ отображение информации.
При многооконном методе отображения на экран в каждый момент времени выводится лишь фрагмент таблицы, например, такой, как показано на вышеприведенном рисунке. Выведенный фрагмент занимает дисплейное окно, соответствующее полному экрану или его части. В такое окно может быть выведена часть текстового документа. Пользователь имеет возможность выполнять три базовые операции:
а) изменять текстовые и числовые значения в отдельных ячейках справочной таблицы или в текстовых документах, выведенных на экран;
б) перемещаться вдоль таблицы или текста, открывая для просмотра или изменения другие части, в том числе не видимые в данный момент на экране;
в) раскрывать содержимое отдельных ячеек таблицы или позиций текста, выводя на экран вспомогательные таблицы и текстовые документы.
Поясним, как осуществляются указанные операции. Прежде всего заметим, что для любых операций, связанных с перемещениями, используется специальный манипулятор "мышь" - коробочка, скользящая по столу и направляемая рукой в нужном направлении, или же клавиши со стрелками "Вниз", "Вверх", "Вправо" и "Влево", имеющиеся на клавиатуре ПЭВМ.
При выводе окна на дисплей одна из ячеек таблицы помечается как АКТИВНАЯ. Технически такая пометка осуществляется выделением ее особым цветом, негативным изображением или с помощью специального мигающего знака. Будем говорить, что выделенная активная ячейка отмечается с помощью КУРСОРА. Пользуясь манипулятором "мышь" или клавишами со стрелками, курсор можно перемещать по таблице, указывая на ту или другую активную ячейку.
В активную ячейку можно занести новую информацию, для чего достаточно нажать любую алфавитно-цифровую клавишу и тем самым войти в режим редактирования. В этом режиме можно либо ввести совершенно новое значение ti в активную ячейку, либо отредактировать (изменить) старое значение. Конец редактирования фиксируется нажатием специальной клавиши "Исполнение".
Дисплейное окно можно смещать относительно таблицы, открывая для просмотра и изменения невидимые ранее ячейки. При этом положение окна на экране не изменяется, а таблица как бы скользит под окном. Для выполнения такого смещения пользователь должен установить курсор на одну из границ окна и затем как бы продолжать перемещать его за эту границу. В результате будет происходить смещение окна относительно таблицы шагами по одной ячейке, пока не будет достигнут соответствующий край таблицы.
При работе с текстовыми документами используется точно такая же техника работы, как и с таблицами, только курсором выделяется не целая ячейка, а отдельный символ, слово или строка текста.
В тех ячейках таблицы, где должны находиться значения показателей ti, при выводе на экран совсем не обязательно должны фигурировать конкретные текстовые формулировки или числа. Вместо них могут стоять лишь условные символы, обозначающие возможность раскрытия соответствующих значений. Осуществляется такое раскрытие очень простыми действиями пользователя: в интересующую пользователя ячейку табл.1.1 подводится курсор и нажимается специальная клавиша "Раскрыть" (эту роль может играть одна из функциональных клавиш на клавиатуре). В результате раскрытия на экран выводится новое окно с соответствующей таблицей или текстом, причем оно может полностью или частично перекрыть ранее выведенное исходное окио. Изображение на экране может приобрести вид, показанный на рис.5.2.
Рис.5.2. Вид экрана при вызове двух таблиц
Просмотрев информацию во вспомогательном окне (в табл.1.2 на рис.5.2), пользователь может вернуться к исходному окну, нажав специальную функциональную клавишу "Закрыть". При этом окно со вспомогательной табл.1.2 исчезает с экрана, а изображение исходного окна с табл.1.1 восстанавливается.
Поскольку работа со вспомогательными таблицами принципиально ничем не отличается от работы с исходной таблицей, ячейки вспомогательной таблицы можно раскрывать посредством таблиц или текстовых фрагментов следующего уровня.
Таким образом, представление планов работы и других документов с помощью описываемого метода сохраняет привычные формы, но дает удобные возможности их быстрого просмотра и изменения. При этом от пользователя практически не требуется никаких специальных навыков, кроме умения перемещать курсор и нажимать две-три специально выделенные функциональные клавиши.
Рассмотренный метод представления деловой документации является общим для разных видов автоматизированных рабочих мест и разных типов документов. Ниже рассматривается еще несколько типовых задач, иллюстрирующих общий подход.
РАБОЧЕЕ МЕСТО ЭКОНОМИСТА, БУХГАЛТЕРА. В то время как руководители и их помощники имеют дело со структурированной информацией, в которой основными элементами являются формулировки тем, проектов, заданий, фамилии людей, названия организаций, изделий и т.п., другая категория работников административно-управленческого аппарата - экономисты, бухгалтеры и плановики работают в основном с числовыми данными. Эти данные характеризуют бюджет учреждения, различные фонды, распределение денежных средств по отделам, материальные ресурсы, финансовые расчеты с банками и другими учреждениями.
Для автоматизации обработки экономической информации больше всего подходит метод ЭЛЕКТРОННЫХ ТАБЛИЦ. Простой пример такой таблицы показан на рис.5.3.
Рис.5.3. Представление данных в электронной таблице
В представленной на рис.5.3 таблице в первых строках содержатся текстовые пояснения к обрабатываемым данным. Обрабатываемые данные размещаются в строках с номерами 1-6. Столбцы таблицы снабжены однобуквенными метками - А, Б, В, Г, Д, Е. Использование вместо них цифр, как это обычно принято в документах такого типа, несколько затруднило бы дальнейшие рассуждения.
Рассмотрим, в чем заключается обработка данных в этом простом примере. Каждая из строк 1-5 содержит данные по командировочным расходам (в определенный город). Исходные данные - название города, стоимость проезда туда и обратно, расходы одного человека в день, число дней и количество командируемых - задаются в первых пяти ячейках каждой строки.
Последняя, 6-я ячейка заполняется числом, которое рассчитывается по следующей формуле:
Е = (Б*Г)+(В*Г*Д) (1)
где Б - стоимость проезда туда и обратно, В - расходы одного человека в день, Г - количество командируемых, Д - продолжительность командировки.
На отдельную ячейку таблицы удобно ссылаться, указывая ее метку. Так, например, метка Б1 указывает на ячейку, которая находится на пересечении столбца Б и 1-й строки таблицы. Тогда вышеприведенная формула для 1-й строки будет иметь вид:
Е1 = (Б1*Г1)+(В1*Г1*Д1) (2)
Для строк со 2-й по 5-ю в этой формуле достаточно изменить единицу на номер строки.
В 6-й строке, в ячейке Е6 должна стоять общая сумма расходов на все командировки, которая получается сложением значений, взятых из ячеек Е1-Е5; т.е. по формуле:
Е6 = Е1+Е2+ЕЗ+Е4+Е5 (3)
Эта зависимость может быть сформулирована более сжато;
Е6 = СУММА(Е1..Е5) (За)
Ячейку Е6 можно в данном случае назвать итоговой для табл.2.1. Для других аналогичных таблиц, где число строк с фактическими данными может быть иным, итоговая ячейка может иметь другую метку. Далее будет показано, что понятие итоговой ячейки имеет особое значение для установки взаимосвязей между таблицами.
В чем заключается привлекательность электронной таблицы по сравнению с представлением ее на обычной бумаге, как это делается пока в большинстве учреждений? Причин несколько:
Во-первых, вводить исходные данные в электронную таблицу во многих случаях легче и быстрее, чем это можно сделать в бумажном документе. Например, в приведенной выше таблице в колонке В, где задана величина расходов в день на одного человека, почти все значения одинаковы, за исключением одного числа. В такой ситуации достаточно было ввести число 6.60 в одну ячейку В1, затем скопировать ее в ячейки В2, ВЗ и В5. Операция копирования осуществляется очень просто и при большом количестве исходных данных может существенно сократить время ввода информации. К тому же копировать можно не только значения отдельных ячеек, но и целые строки, столбцы или прямоугольные области - вырезки из таблицы.
Во-вторых, в электронной таблице можно с помощью формул задавать зависимость одних значений от других. Например, достаточно ввести в ячейку Е1 формулу (2), а затем скопировать ее в ячейки Е2-Е5; при этом соответствующие индексы у термов формулы автоматически корректируются. Ввод формул осуществляется примерно так же, как и ввод чисел в ячейки таблицы. Введя в ячейку Е6 формулу (3), мы окончательно определим все зависимости - бухгалтеру уже не нужно при помощи калькулятора или других средств проводить вычисления и вносить в таблицу соответствующие числа. Все необходимые вычисления выполняются автоматически. Более того, при работе с электронной таблицей легко осуществить проверку "что будет, если...". Так, например,стоит изменить какое-либо из исходных значений, например, число командируемых в город Таллин (ячейка Г2), и произойдет автоматический пересчет всех зависящих от него величии - чисел в ячейках Е2 и Е6, Это свойство электронных таблиц, позволяющее соединять формирование документов с автоматическими вычислениями по формулам, является их главной привлекательной чертой для экономистов, бухгалтеров и плановиков.
В-третьих, сформированная электронная таблица сразу же становится документом, который может многократно использоваться, легко модифицироваться и выводиться на печать в нужном числе экземпляров. На основе одной таблицы можно очень быстро создать аналогичную таблицу с другими исходными данными и, возможно, с измененными формулами. Техника ввода формул, их копирования в другие ячейки, а также копирования строк, столбцов и областей здесь не рассматривается; важно осознать основные возможности электронных таблиц.
Как и в случае работы с другими типами документов, рассмотренными в предыдущих задачах, электронные таблицы представляются на экране ПЭВМ через дисплейные окна. Окон может быть несколько, и в каждом из них представляется своя информация. Для экономиста, в частности, может оказаться полезным вывод нескольких взаимосвязанных таблиц. Например, в сводной ведомости - таблице вида 2.2 (рис.5.4) могут в качестве исходных данных фигурировать итоговые значения нескольких таблиц вида 2.1.
Рис.5.4. Представление сводной ведомости
Значения столбца Ж этой таблицы рассчитываются по формуле вычисления среднего из значений, фигурирующих в ячейках Б-Е. В свою очередь значения ячеек Б-Ж5 подсчитываются как суммы чисел в соответствующих столбцах. Все эти зависимости легко задаются с помощью формул.
Если на экран выведена табл.2.2, а затем пользователь захочет посмотреть, каким образом получено некоторое число, например, в ячейке E1, достаточно установить курсор на эту ячейку и нажать клавишу "Раскрыть". Поскольку значение Е1 определяется как итоговое значение табл.2.1, эта таблица будет выведена на экран в отдельное дисплейное окно. Таким образом, взаимосвязь между разными таблицами через итоговые значения позволяет экономисту быстро просматривать и анализировать все относящиеся к делу данные.
Кроме удобства работы с электронными таблицами как с таковыми, экономист имеет возможность графического представления данных, содержащихся в таблице. Соответствующие программные средства называют деловой графикой. Сущность работы с этими средствами очень проста. Пользователь выделяет в таблице данные, которые он хотел бы представить в графическом виде. Обычно такие данные содержатся в смежных столбцах и строках. Один из столбцов или одна из строк выбирается в качестве основы для разметки оси X. Значения других столбцов (строк) используются для построения графиков. Сами графики могут иметь разный вид - они могут изображаться столбиками разной высоты (столбиковые гистограммы), линейными графиками, точками на координатной плоскости или круговыми диаграммами, разбитыми на сектора.
Например, данные нз строк 1-4 и столбцов Б-Е табл.2.2 можно представить в виде графика, показанного на рис.5.5.
Рис.5.5. Графическое представление данных табл. 2.2
Высота каждого столбца пропорциональна значению одной из ячеек табл.2.2. Четыре левых столбца соответствуют ячейкам Б1-Б4, следующая группа соответствует ячейкам В1-В4 и т.д. Надписи на графике могут переноситься из соответствующих надписей таблицы или же наноситься на картинку с изображением графика независимыми средствами.
Возможны и другие способы графического отображения этих данных. Важно, что при изменении исходных данных происходит автоматическая перестройка графиков.
Средства деловой графики повышают наглядность отображения числовой информации и особенно ценны при проведении финансового анализа, составлении отчетов и другой документации.
Таким образом, сочетание методов работы с электронными таблицами и средств деловой графики дает в руки финансовых работников удобный инструмент для обработки и отображения числовой экономической информации. Поскольку стиль взаимодействия с ПЭВМ при этом остается таким же, как и при использовании обычных справочных таблиц, рассмотренных в задаче 1, все описанные средства могут легко сочетаться и эффективно использоваться в административно-управленческой работе.
РАБОЧЕЕ МЕСТО ПРОЕКТИРОВЩИКА, ИССЛЕДОВАТЕЛЯ. В отличие от работников административно-управленческого аппарата, для которых большая часть служебной информации может быть представлена в виде достаточно однородных табличных или текстовых документов, проектировщики и исследователи нуждаются в более разнообразных средствах представления и обработки информации. Проектируемый или исследуемый объект обычно характеризуется множеством структурных описаний, которые необходимо хранить в базе данных; он часто сопровождается графическими изображениями (схемами, чертежами) отдельных компонентов; для расчета параметров используются вычислительные модели, реализованные в виде программ; текстовая документация также является необходимой составной частью информации об объекте. Проектировщик должен иметь возможность быстро ориентироваться в этом множестве и находить нужные фрагменты информации, многократно изменять нх, проводить соответствующие вычисления и выдавать твердые копии документов.
Рассмотрим несколько типичных способов задания информации о проектируемых/исследуемых объектах. Чтобы не связывать воображение читателя, рассмотрим в качестве примера некий абстрактный объект, описываемый следующим образом.
Основные компоненты типового объекта:
- центральный обрабатывающий узел (ЦО),
- накапливающие узлы (Н),
- терминальные узлы (Т),
- соединительные коммуникации (К).
Конкретные объекты формируются нз указанных компонентов, причем число экземпляров каждого компонента (узла или коммуникации) зависит от конкретной конфигурации проектируемого объекта.
Взаимное расположение узлов задается схемой компоновки, отдельные узлы описываются чертежами и текстовой документацией.
Каждый узел характеризуется совокупностью параметров {Aij}, соотношения между которыми формально задаются уравнениями и фактически рассчитываются с помощью программ {P}, решающих эти уравнения.
Подобное описание может характеризовать объекты самой разной природы - электронное изделие, станок, обрабатывающий центр, производственное предприятие, нефтедобывающий район, транспортный узел, аэровокзал и др.
Рассмотрим способы представления указанной информации в ПЭВМ. Общий состав конкретного объекта X может быть представлен информационной структурой, которая на экране ПЭВМ выглядит следующим образом (рис.5.6).
Рис.5.6. Представление общей структуры объекта
Начиная с этого представления верхнего уровня, проектировщик может "погружаться" на следующие уровни с целью более детального исследования различных компонентов объекта X. Картина, представленная на рис.5.6, фактически составлена из:
а) поясняющих надписей к отдельным свойствам объекта,
б) значений этих свойств, представленных именами компонентов или просто условными обозначениями (например, пустыми квадратиками).
Подобную картину можно представить как трафарет с текстовыми пометками и "отверстиями", сквозь которые видны значения отдельных свойств.
Чтобы выбрать для дальнейшего исследования какой-либо элемент объекта X, пользователю достаточно установить курсор в соответствующую позицию и нажать клавишу "Исполнение". В ответ на это действие система выведет в новое дисплейное окно соответствующий фрагмент информации. Например, если для очередного этапа исследования выбран узел H1, то на экран может быть выведено окно с описанием параметров этого узла, которое наложится на общее представление структуры объекта X (рис.5.7).
Рис.5.7. Представление информации об узле H1
Точно так же можно получить информацию о других компонентах объекта X. Если же установить курсор в позицию трафарета, помеченную надписью "Схема компоновки", то после нажатия клавиши "Исполнение" произойдет раскрытие соответствующего значения и на экран будет выведено окно с графическим изображением. В зависимости от природы объекта X такое изображение может представлять условную схему, эскиз чертежа или карту местности с нанесенными условными обозначениями узлов и коммуникаций (рис.5.8 ).
Рис.5.8. Графическое представление схемы компоновки
Выбор на трафарете рис.5.6 позиции с пометкой "Общий расчет" вызывает программу, которая осуществляет необходимые вычисления, используя в качестве исходных данных параметры объекта или его отдельных компонентов.
Все вышеприведенные рассуждения применимы к описаниям отдельных узлов и их компонентов,- и так до любой степени детализации. Информация может представляться не только с помощью структурных описаний и графических изображений, но также с помощью справочных и вычисляемых электронных таблиц, которые были рассмотрены в предыдущих разделах.
Таким образом, особенностью данного метода является, с одной стороны, возможность применения различных средств представления информации о проектируемых/исследуемых объектах и их составных частях; с другой стороны, такая организация информации, которая позволяет легко переключаться между общим и частным, текстовыми представлевиями и графическими, режимом просмотра/модификации параметров и режимом вычисления. Эти особенности дают пользователям удобные средства для анализа, модификации и расчетов, при проектировании в исследовании объектов разного назначения.
Рассмотренные принципы применимы для организации рабочих мест и других специалистов - преподавателей в учащихся, врачей, агрономов, администраторов гостиниц и др. На основе рассмотренного метода легко построить автоматизированные справочные системы, доступные широкой публике через специальные терминалы; такие системы могут обеспечивать выдачу информации об имеющихся товарах, о том, "как проехать", о текущих культурных мероприятиях, о службе быта, о трудоустройстве, об основных юридических положениях, о предлагаемых обменах жилой площадью и многом другом.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Брябрин. Программное обеспечение персональных ЭВМ. 1990
5.2. ПЕРСОНАЛЬНАЯ ИНФОРМАЦИОННАЯ СИСТЕМА
Любой человек нуждается в организации личной деятельности и в простых, удобных для использования информационных системах, В повседневной жизни для этого служат записные книжки, календари, картотеки. Имея на рабочем столе персональный компьютер, естественно возложить на него реализацию указанных функций. Рассмотрим устройство и способ работы с автоматизированной картотекой, которую можно использовать либо как личную записную книжку, либо как простейшую базу данных с доступом к хранимым объектам через упорядоченный список ключевых слов.
АВТОМАТИЗИРОВАННАЯ КАРТОТЕКА. Картотека - это множество текстовых объектов - карточек, содержащих информацию о людях, учреждениях, публикациях, изделиях и др.
Выбранные карточки можно просто читать и убирать назад в картотеку, но можно при этом наносить на них пометки, вносить дополнительную информацию. Разумеется, нужно иметь возможность создавать новые карточки. Размещение карточек в картотеке должно упорядочиваться по какому-либо признаку,- например, по ключевым словам, по датам, по выделенным классификационным индексам.
Тексты карточек имеют произвольный формат, они не обязаны быть похожими друг на друга. В каждой карточке особо выделяется одно или несколько слов или чисел, являющихся КЛЮЧАМИ к данной карточке. Ключи вносятся в общий упорядоченный список, через который затем и осуществляется поиск и выбор нужных карточек.
При реализации картотеки на ПЭВМ удобно использовать такой же метод многооконного представления информации, как и при реализации справочных таблиц в рассмотренных выше задачах. При этом каждый выводимый на экран объект - список ключей, тексты карточек, перечень возможных действий ("меню") - отображается в отдельное дисплейное окно. Окна ограничены рамками, они могут но желанию пользователя перемещаться в разные позиции экрана и изменять размеры. Примерный вид экрана при выводе списка ключевых слов и одной карточки представлен на рис.5.9.
Рис. 5.9. Вид экрана при выводе списка ключей и одной карточки
В работе с картотекой можно выделить следующие характерные операции:
- вывод списка ключевых слов в отдельное окно;
- поиск ключа, интересующего пользователя;
- "раскрытие" ключа,- показ первых строчек карточек, содержащих данный ключ;
- вывод на экран карточки по данному ключу;
- просмотр текста карточки путем ее "прокрутки" в окне;
- "откладывание" просмотренной карточки в отдельное окно;
- изменение текста карточки и занесение ее назад в картотеку;
- создание новой карточки и занесение ее в картотеку;
- удаление карточки из картотеки;
- вывод отдельной карточки или всей картотеки в файл или на печатающее устройство;
- ввод в картотеку новых карточек из заранее подготовленного файла.
СОСТАВ КАРТОТЕКИ. В качестве примера рассмотрим устройство и работу с картотекой NOTES, разработанной в ВЦ АН СССР (автор - А.Б.Борковский). Содержимое этой картотеки размещается в четырех специальных файлах, содержащих:
- ключевые слова,
- первые строки карточек,
- основные тела карточек,
- параметры размещения окон.
Имена этих файлов складываются из двух компонентов - основное имя придумывает пользователь при создании картотеки, а расширение имени (тип файла) задается программой NOTES.COM, которая поддерживает работу с картотекой. Пусть, например, при образовании картотеки пользователь называет ее TEL. Тогда соответствующие файлы будут иметь такие полные имена:
tel.abo tel.ab1 tel.ab2 tel.abp.
Вызов картотеки осуществляется, как обычно, указанием имени программы, которой в качестве параметра дается имя конкретной картотеки, например:
notes tel
В зависимости от того, создается ли новая картотека или происходит вызов уже существующей, происходят разные действия.
СОЗДАНИЕ НОВОЙ КАРТОТЕКИ. При создании новой картотеки работа системы начинается с запроса у пользователя имени исходного текстового файла, из содержимого которого создается картотека. Пример такого файла представлен на рис.5.10.
Рис.5.10. Пример исходного текстового файла для создания картотеки
Каждая карточка в исходном файле должна представлять собой отдельный абзац, т.е. фрагмент текста, у которого первая строчка начинается хотя бы с одного пробела. В приведенном примере на рис.5.10 таких абзацев три; они начинаются со слов:
^Алексеев, ^Николаев, ^Тарасов
Значком ^ обозначается символ, который получается после нажатия клавиш Ctrl+К (десятичный код этого символа 11). Этот символ играет роль указателя ключевого слова. Это значит, что после ввода карточек в картотеку слова, имеющие в качестве префиксов указанные символы, превратятся в ключи и попадут в файл ключевых слов.
В приведенном примере в качестве ключевых слов отмечены не только фамилии людей, но и другие слова в карточках - МФТИ, МГУ. Это позволит выбирать данные карточки по разным ключам.
Строка в пределах абзаца не может начинаться с пробела, поэтому некоторые строчки начинаются с символов ".", после которых могут стоять пробелы. В картотеке символ "." будет исключен из текста карточки. В исходном файле должен содержаться текст хотя бы одной карточки, которая становится зародышем будущей картотеки. После того, как в ответ на вопрос системы пользователь укажет имя исходного файла для создания новой картотеки, происходит ввод информации и формирование указанных выше файлов, образующих картотеку.
ОСНОВНЫЕ РЕЖИМЫ РАБОТЫ. Когда картотека создана, программа NOTES.COM поддерживает три основных режима работы с ней:
- выбор карточек и работу с ними,
- выделение подсписка ключей по шаблону,
- обмен информацией между картотекой и файловой системой ДОС.
Для выбора одного из этих режимов используется главное управляющее меню, в котором имеется три позиции (рис.5.11):
Рис.5.11. Главное управляющее меню
ПЕРЕБОР КЛЮЧЕЙ. При выборе первой позиции главного управляющего меню, а также при вызове системы с заранее приготовленной картотекой, первое что появляется на экране, это окно ключевых слов, в каждой строчке которого виден ровно одни ключ. Курсор указывает на первую позицию выведенного списка.
Просмотр списка ключей в указанном окне можно осуществлять несколькими способами:
A. Нажимая стрелки "Вниз" и "Вверх", можно перемещать курсор по списку ключей. Когда достигается крайняя нижняя или верхняя позиция, дальнейшее нажатие стрелок вызывает "прокрутку" списка ключей в окне. Такой способ просмотра ключей наиболее подходит, когда их число не очень велико. Прокрутка в этом режиме может идти с максимальной скоростью 5-8 строк в секунду.
Б. Нажимая клавиши PgDn и PgUp ("Следующая порция" и "Предыдущая порция"), можно перемещаться по списку ключей скачкообразно - порциями по 8-12 строк - соответственно высоте окна ключевых слов. Это позволяет ускорить подвод, курсора к нужному ключу и удобно, когда длина списка ключей в несколько десятков раз превышает высоту окна.
B. Нажав клавишу F2, можно вызвать запрос шаблона, после чего ввести одну или несколько букв (цифр), с которых должен начинаться искомый ключ. После этого достаточно нажать клавишу "Исполнение", и курсор установится на первый по порядку ключ, совпавший с шаблоном. Этот способ поиска требует от пользователя некоторого навыка для работы с клавиатурой, но зато обеспечивает самый быстрый выбор нужного ключа.
Г. Нажав клавишу <5> в центре управляющей части клавиатуры и вслед за ней клавишу со стрелкой "Вниз" или "Вверх", можно сразу перейти в самый конец или в самое начало списка ключей. Клавиша <5> означает, что "следующую операцию нужно повторить максимально возможное число раз". В таком же смысле она используется и в других случаях, например, при просмотре и редактировании текста карточки в рабочем окне.
Выбрав искомый ключ и нажав клавишу "Исполнение", пользователь инициирует выбор первой по порядку и, возможно, единственной карточки, в которую входит данный ключ. При этом в рабочее окно выводится текст выбранной карточки.
Если пользователь предполагает, что данному ключу может соответствовать несколько карточек, то он может применить операцию "раскрытие ключа", которая позволит увидеть первые строки всех карточек с данным ключом. Для выполнения этой операции нужно нажать клавишу Plus(+ в правой части клавиатуры). При этом в окне ключевых слов вместо одного ключа появляется одна или несколько строчек, выделенных особым цветом. Это первые строчки всех тех карточек, куда входит данный ключ.
По первым строчкам пользователь может определить, нужен ли ему полный текст какой-либо карточки. Если ни одна карточка не подходит, можно закрыть данный ключ, для чего вторично нажимается клавиша Plus.
Если в главном управляющем меню выбрать 2-ю позицию - "Шаблон", то система запросит шаблон для отбора подмножества ключей.
Указав в качестве ответа какой-либо текст, например, М*, пользователь получит в окне ключевых слов лишь те ключи, которые соответствуют этому шаблону (например, МГУ, МФТИ и другие слова, начинающиеся с буквы М). Это позволяет сократить перебираемое множество ключей и соответствующих им карточек.
РАБОТА С ТЕКСТОМ КАРТОЧКИ. Отобрав по списку ключевых слов нужную карточку и нажав клавишу "Исполнение", пользователь выводит ее полный текст в рабочее окно с указанным номером, по умолчанию - в окно #1.
Всего в системе может использоваться до 4-х рабочих окон. Для задания номера рабочего окна достаточно перед клавишей "Исполнение" нажать клавишу с цифрой 1, 2, 3 или 4.
Выведенный в рабочее окно текст карточки можно:
- прочитать,
- изменить и записать в картотеку на прежнее место,
- занести в картотеку в качестве новой карточки,
- удалить из картотеки,
- "отложить" временно в другое рабочее окно.
ЧТЕНИЕ карточки не требует каких-либо манипуляций на клавиатуре, если текст полностью умещается в рабочем окне. Если же это не так, то можно, нажимая стрелки "Вниз", "Вверх", "Следующая порция" (PgDn) и "Предыдущая порция" (PgUp), перемещаться по тексту карточки по одной строчке или порциями, равными высоте окна. Эти манипуляции совершенно аналогичны тем действиям, которые выполняются при движении по списку ключей. Можно "прыгнуть" в самый конец или самое начало карточки, для чего последовательно нажимается сначала клавиша <5> в центре управляющей части клавиатуры и вслед за этим клавиша со стрелкой "Вниз" или "Вверх". При всех способах перемещения по вертикали происходит прокрутка текста карточки в рабочем окне. Кроме того, ниже будет описано, как можно изменить размеры рабочего окна. Ключи в тексте карточки выделяются особым цветом.
После просмотра текста карточки можно вернуться на верхний уровень - в окно ключевых слов - с целью выбора другой карточки. Для возврата достаточно нажать клавишу возврата на верхний уровень: F10.
ИЗМЕНЕНИЕ текста карточки, выведенного в рабочее окно, осуществляется с помощью мини-редактора. Краткая сводка команд мини-редактора представлена на рис.5.12.
Рис.5.12. Сводка команд мини-редактора
Отредактированная или только что созданная карточка остается в оперативной памяти, пока она не будет занесена в картотеку специальной операцией. Для этого применяется команда ЗАПИСИ измененной карточки в картотеку, вызываемая одновременным нажатием двух клавиш:
Shift+ F10
СОЗДАНИЕ НОВЫХ КАРТОЧЕК. Помимо просмотра и изменения введенных ранее карточек, пользователи должны иметь возможность создания совершенно новых карточек и связывания с ними соответствующих ключей. Такая операция может осуществляться двумя путями.
Во-первых, тексты карточек с ключами могут извлекаться из заранее приготовленного текстового файла - такого же, как и при создании новой картотеки.
Во-вторых, отдельные карточки могут создаваться во время обычной работы с картотекой. Для этого достаточно вызвать чистое рабочее окно с помощью команды F7.
Сформированная затем с помощью мини-редактора карточка заносится в картотеку в результате применения команды
Ctrl+F10
При этом на экран выводится вспомогательное управляющее меню (рис.5.13).
Рис.5.13. Управляющее меню, вызываемое по команде Ctrl+F10
Выбор первой позиции этого меню ведет к выполнению указанной операции - то есть занесению в картотеку новой карточки. При этом все отмеченные в тексте карточки ключевые слова попадут в список ключей.
Вторая позиция позволяет сохранить старую карточку, но занести в список ключей все те новые ключи, которые появились при последнем редактировании. Кроме того, если пользователь при нажатии Ctrl+F10 ошибся и на самом деле не хочет заводить новую карточку, то здесь он имеет возможность поправить себя и записать карточку на прежнее место, а не заводить новую.
Третья позиция в указанном меню служит для удаления данной карточки из картотеки. При удалении карточек пространство в картотеке не освобождается; его можно восстановить для нового использования лишь путем вывода всего содержимого картотеки в текстовый файл и повторного создания новой картотеки с тем же именем (см. ниже).
ИСПОЛЬЗОВАНИЕ ВСПОМОГАТЕЛЬНЫХ РАБОЧИХ ОКОН. Часто бывает необходимо сопоставлять содержимое нескольких карточек. С этой целью можно "отложить" карточку в дополнительное рабочее окно #2. После этого можно переключаться между двумя окнами - основным и дополнительным, нажимая всего одну клавишу. Реализуются эти действия следующими командами:
F8 - открыть дополнительное рабочее окно #2 и перенести в него содержимое основного рабочего окна (1-го, 3-го или 4-го},
F9 - переключиться из основного рабочего окна в дополнительное или обратно.
Все используемые в системе окна можно перемещать по экрану и изменять их размеры. Режим изменения положения или размеров любого окна вызывается нажатием клавиш
Alt+W
Это должно происходить в тот период, когда, соответствующее окно активизировано. Управление окнами осуществляется клавишами:
Стрелки Вправо/Влево/Вверх/Вниз - смещение окна на экране,
Shift+Стрелки Вправо/Влево - сдвиг правой границы окна,
Shift+Стрелки Вверх/Вииз - сдвиг нижней границы окна;
В результате указанных манипуляций можно добиться таких размеров и взаимного расположения окон на экране, чтобы это наилучшим образом соответствовало вкусам пользователя и позволяло удобно просматривать тексты карточек.
Окна могут располагаться на экране, частично перекрывая друг друга. Для переключения между рабочими окнами необходимо иажимать клавиши
Alt+<номер окна>
ВЫЗОВ ПОДСКАЗОК. Подсказка вызывается нажатием клавиш F1 или Shift+F1. В первом случае появляется окно с текстом подсказки, относящейся к данному режиму работы (например, различаются подсказки, вызываемые из окна ключевых слов или из рабочего окна). Во втором случае выводится справочный текст общего характера.
ВВОД/ВЫВОД. Переход в режим ввода/вывода, в котором обеспечивается обмен информацией с файловой системой ДОС, происходит через соответствующую позицию главного управляющего меню. Попасть в это меню можно из окна ключевых слов, нажав клавишу F10.
Выбор позиции в главном управляющем меню осуществляется, как обычно, перемещением курсора с помощью стрелок и нажатием клавиши "Исполнение".
После выбора режима ввод/вывод на экран выводится вспомогательное управляющее меню (рис.5.14).
Рис.5.14. Меню управления вводом/выводом
Работа с этим меню осуществляется так же, как и с главным управляющим меню. Первая позиция обеспечивает вывод в файл ДОС содержимого всей картотеки. Вторая позиция меню позволяет задать вывод лишь части картотеки - для ключей, которые удовлетворяют заданному пользователем шаблону. При этом в качестве стандартного имени файла вывода используется имя данной картотеки с расширением OUT. Например, для картотеки TEL стандартный файл вывода будет именоваться TEL.OUT. Заметим, что такой файл создается в текущем каталоге.
Если стандартный файл вывода почему-либо не устраивает пользователя, он может перевести курсор в третью позицию меню, нажать клавишу "Исполнение" и на запрос системы ответить новым именем выводного файла. Можно изменить все имя, или только тип файла, или указать в качестве префикса имя другого каталога. Эта возможность позволяет, в частности, задать в качестве файла вывода одно из стандартных внешних устройств с последовательным доступом, например, принтер или коммуникационный канал. Для вывода на одно нз этих устройств достаточно в качестве имени вывода указать соответствующее стандартное имя внешнего устройства:
PRN LPT1 LPT2 - для принтеров,
COM1 COM2 - для коммуникационных каналов.
Можно вывести в файл ДОС или на принтер не только всю картотеку, но и отдельную карточку. Для этого, установив курсор на соответствующий ключ в окне ключевых слов, нужно нажать одновременно две клавиши:
Shift+F8
Строчка с выбранным ключом засветится особым цветом; это значит, что в этот момент происходит ее вывод в указанный заранее выводной файл. Имя выводного файла в этом случае также может быть установлено пользователем через 3-ю позицию меню.
Важно помнить, что информация в выводной файл все время ДОБАВЛЯЕТСЯ. Поэтому, если дважды вывести одну и ту же карточку в один и тот же файл, то там образуется два ее экземпляра.
Выведенный текстовый файл приобретает такой вид, который пригоден для его использования в качестве источника для загрузки в картотеку. Это значит, что каждая карточка превращается в отдельный абзац, оформленный по тем правилам, которые были описаны выше в разделе "Создание картотеки".
Выведенные в файл тексты карточек можно редактировать любыми имеющимися средствами, а затем использовать вновь для загрузки в картотеку, в том числе для образования совершенно новой картотеки.
ЗАГРУЗКА исходного файла в картотеку осуществляется, когда после выбора четвертой позиции управляющего меню система запрашивает имя загружаемого файла и пользователь сообщает его в ответ.
Таким образом, работа с картотекой достаточно проста. На рис.5.15 приведена общая сводка команд картотеки NOTES. Данную картотеку можно с успехом использовать вместо личной записной книжки, делового календаря, справочника по той или иной проблеме, словаря и др. Программа, поддерживающая работу с картотекой, невелика по объему и может использоваться на машинах с ограниченным объемом оперативной памяти (до 128 Кбайт). Вместе с другими прикладными системами общего назначения - текстовым редактором, базой данных, графическим процессором - автоматизированная картотека является эффективным средством оргтехники, доступным на любом персональном компьютере.
Рис.5.15. Сводка команд автоматизированной картотеки NOTES
Любой человек нуждается в организации личной деятельности и в простых, удобных для использования информационных системах, В повседневной жизни для этого служат записные книжки, календари, картотеки. Имея на рабочем столе персональный компьютер, естественно возложить на него реализацию указанных функций. Рассмотрим устройство и способ работы с автоматизированной картотекой, которую можно использовать либо как личную записную книжку, либо как простейшую базу данных с доступом к хранимым объектам через упорядоченный список ключевых слов.
АВТОМАТИЗИРОВАННАЯ КАРТОТЕКА. Картотека - это множество текстовых объектов - карточек, содержащих информацию о людях, учреждениях, публикациях, изделиях и др.
Выбранные карточки можно просто читать и убирать назад в картотеку, но можно при этом наносить на них пометки, вносить дополнительную информацию. Разумеется, нужно иметь возможность создавать новые карточки. Размещение карточек в картотеке должно упорядочиваться по какому-либо признаку,- например, по ключевым словам, по датам, по выделенным классификационным индексам.
Тексты карточек имеют произвольный формат, они не обязаны быть похожими друг на друга. В каждой карточке особо выделяется одно или несколько слов или чисел, являющихся КЛЮЧАМИ к данной карточке. Ключи вносятся в общий упорядоченный список, через который затем и осуществляется поиск и выбор нужных карточек.
При реализации картотеки на ПЭВМ удобно использовать такой же метод многооконного представления информации, как и при реализации справочных таблиц в рассмотренных выше задачах. При этом каждый выводимый на экран объект - список ключей, тексты карточек, перечень возможных действий ("меню") - отображается в отдельное дисплейное окно. Окна ограничены рамками, они могут но желанию пользователя перемещаться в разные позиции экрана и изменять размеры. Примерный вид экрана при выводе списка ключевых слов и одной карточки представлен на рис.5.9.
Рис. 5.9. Вид экрана при выводе списка ключей и одной карточки
В работе с картотекой можно выделить следующие характерные операции:
- вывод списка ключевых слов в отдельное окно;
- поиск ключа, интересующего пользователя;
- "раскрытие" ключа,- показ первых строчек карточек, содержащих данный ключ;
- вывод на экран карточки по данному ключу;
- просмотр текста карточки путем ее "прокрутки" в окне;
- "откладывание" просмотренной карточки в отдельное окно;
- изменение текста карточки и занесение ее назад в картотеку;
- создание новой карточки и занесение ее в картотеку;
- удаление карточки из картотеки;
- вывод отдельной карточки или всей картотеки в файл или на печатающее устройство;
- ввод в картотеку новых карточек из заранее подготовленного файла.
СОСТАВ КАРТОТЕКИ. В качестве примера рассмотрим устройство и работу с картотекой NOTES, разработанной в ВЦ АН СССР (автор - А.Б.Борковский). Содержимое этой картотеки размещается в четырех специальных файлах, содержащих:
- ключевые слова,
- первые строки карточек,
- основные тела карточек,
- параметры размещения окон.
Имена этих файлов складываются из двух компонентов - основное имя придумывает пользователь при создании картотеки, а расширение имени (тип файла) задается программой NOTES.COM, которая поддерживает работу с картотекой. Пусть, например, при образовании картотеки пользователь называет ее TEL. Тогда соответствующие файлы будут иметь такие полные имена:
tel.abo tel.ab1 tel.ab2 tel.abp.
Вызов картотеки осуществляется, как обычно, указанием имени программы, которой в качестве параметра дается имя конкретной картотеки, например:
notes tel
В зависимости от того, создается ли новая картотека или происходит вызов уже существующей, происходят разные действия.
СОЗДАНИЕ НОВОЙ КАРТОТЕКИ. При создании новой картотеки работа системы начинается с запроса у пользователя имени исходного текстового файла, из содержимого которого создается картотека. Пример такого файла представлен на рис.5.10.
Рис.5.10. Пример исходного текстового файла для создания картотеки
Каждая карточка в исходном файле должна представлять собой отдельный абзац, т.е. фрагмент текста, у которого первая строчка начинается хотя бы с одного пробела. В приведенном примере на рис.5.10 таких абзацев три; они начинаются со слов:
^Алексеев, ^Николаев, ^Тарасов
Значком ^ обозначается символ, который получается после нажатия клавиш Ctrl+К (десятичный код этого символа 11). Этот символ играет роль указателя ключевого слова. Это значит, что после ввода карточек в картотеку слова, имеющие в качестве префиксов указанные символы, превратятся в ключи и попадут в файл ключевых слов.
В приведенном примере в качестве ключевых слов отмечены не только фамилии людей, но и другие слова в карточках - МФТИ, МГУ. Это позволит выбирать данные карточки по разным ключам.
Строка в пределах абзаца не может начинаться с пробела, поэтому некоторые строчки начинаются с символов ".", после которых могут стоять пробелы. В картотеке символ "." будет исключен из текста карточки. В исходном файле должен содержаться текст хотя бы одной карточки, которая становится зародышем будущей картотеки. После того, как в ответ на вопрос системы пользователь укажет имя исходного файла для создания новой картотеки, происходит ввод информации и формирование указанных выше файлов, образующих картотеку.
ОСНОВНЫЕ РЕЖИМЫ РАБОТЫ. Когда картотека создана, программа NOTES.COM поддерживает три основных режима работы с ней:
- выбор карточек и работу с ними,
- выделение подсписка ключей по шаблону,
- обмен информацией между картотекой и файловой системой ДОС.
Для выбора одного из этих режимов используется главное управляющее меню, в котором имеется три позиции (рис.5.11):
Рис.5.11. Главное управляющее меню
ПЕРЕБОР КЛЮЧЕЙ. При выборе первой позиции главного управляющего меню, а также при вызове системы с заранее приготовленной картотекой, первое что появляется на экране, это окно ключевых слов, в каждой строчке которого виден ровно одни ключ. Курсор указывает на первую позицию выведенного списка.
Просмотр списка ключей в указанном окне можно осуществлять несколькими способами:
A. Нажимая стрелки "Вниз" и "Вверх", можно перемещать курсор по списку ключей. Когда достигается крайняя нижняя или верхняя позиция, дальнейшее нажатие стрелок вызывает "прокрутку" списка ключей в окне. Такой способ просмотра ключей наиболее подходит, когда их число не очень велико. Прокрутка в этом режиме может идти с максимальной скоростью 5-8 строк в секунду.
Б. Нажимая клавиши PgDn и PgUp ("Следующая порция" и "Предыдущая порция"), можно перемещаться по списку ключей скачкообразно - порциями по 8-12 строк - соответственно высоте окна ключевых слов. Это позволяет ускорить подвод, курсора к нужному ключу и удобно, когда длина списка ключей в несколько десятков раз превышает высоту окна.
B. Нажав клавишу F2, можно вызвать запрос шаблона, после чего ввести одну или несколько букв (цифр), с которых должен начинаться искомый ключ. После этого достаточно нажать клавишу "Исполнение", и курсор установится на первый по порядку ключ, совпавший с шаблоном. Этот способ поиска требует от пользователя некоторого навыка для работы с клавиатурой, но зато обеспечивает самый быстрый выбор нужного ключа.
Г. Нажав клавишу <5> в центре управляющей части клавиатуры и вслед за ней клавишу со стрелкой "Вниз" или "Вверх", можно сразу перейти в самый конец или в самое начало списка ключей. Клавиша <5> означает, что "следующую операцию нужно повторить максимально возможное число раз". В таком же смысле она используется и в других случаях, например, при просмотре и редактировании текста карточки в рабочем окне.
Выбрав искомый ключ и нажав клавишу "Исполнение", пользователь инициирует выбор первой по порядку и, возможно, единственной карточки, в которую входит данный ключ. При этом в рабочее окно выводится текст выбранной карточки.
Если пользователь предполагает, что данному ключу может соответствовать несколько карточек, то он может применить операцию "раскрытие ключа", которая позволит увидеть первые строки всех карточек с данным ключом. Для выполнения этой операции нужно нажать клавишу Plus(+ в правой части клавиатуры). При этом в окне ключевых слов вместо одного ключа появляется одна или несколько строчек, выделенных особым цветом. Это первые строчки всех тех карточек, куда входит данный ключ.
По первым строчкам пользователь может определить, нужен ли ему полный текст какой-либо карточки. Если ни одна карточка не подходит, можно закрыть данный ключ, для чего вторично нажимается клавиша Plus.
Если в главном управляющем меню выбрать 2-ю позицию - "Шаблон", то система запросит шаблон для отбора подмножества ключей.
Указав в качестве ответа какой-либо текст, например, М*, пользователь получит в окне ключевых слов лишь те ключи, которые соответствуют этому шаблону (например, МГУ, МФТИ и другие слова, начинающиеся с буквы М). Это позволяет сократить перебираемое множество ключей и соответствующих им карточек.
РАБОТА С ТЕКСТОМ КАРТОЧКИ. Отобрав по списку ключевых слов нужную карточку и нажав клавишу "Исполнение", пользователь выводит ее полный текст в рабочее окно с указанным номером, по умолчанию - в окно #1.
Всего в системе может использоваться до 4-х рабочих окон. Для задания номера рабочего окна достаточно перед клавишей "Исполнение" нажать клавишу с цифрой 1, 2, 3 или 4.
Выведенный в рабочее окно текст карточки можно:
- прочитать,
- изменить и записать в картотеку на прежнее место,
- занести в картотеку в качестве новой карточки,
- удалить из картотеки,
- "отложить" временно в другое рабочее окно.
ЧТЕНИЕ карточки не требует каких-либо манипуляций на клавиатуре, если текст полностью умещается в рабочем окне. Если же это не так, то можно, нажимая стрелки "Вниз", "Вверх", "Следующая порция" (PgDn) и "Предыдущая порция" (PgUp), перемещаться по тексту карточки по одной строчке или порциями, равными высоте окна. Эти манипуляции совершенно аналогичны тем действиям, которые выполняются при движении по списку ключей. Можно "прыгнуть" в самый конец или самое начало карточки, для чего последовательно нажимается сначала клавиша <5> в центре управляющей части клавиатуры и вслед за этим клавиша со стрелкой "Вниз" или "Вверх". При всех способах перемещения по вертикали происходит прокрутка текста карточки в рабочем окне. Кроме того, ниже будет описано, как можно изменить размеры рабочего окна. Ключи в тексте карточки выделяются особым цветом.
После просмотра текста карточки можно вернуться на верхний уровень - в окно ключевых слов - с целью выбора другой карточки. Для возврата достаточно нажать клавишу возврата на верхний уровень: F10.
ИЗМЕНЕНИЕ текста карточки, выведенного в рабочее окно, осуществляется с помощью мини-редактора. Краткая сводка команд мини-редактора представлена на рис.5.12.
Рис.5.12. Сводка команд мини-редактора
Отредактированная или только что созданная карточка остается в оперативной памяти, пока она не будет занесена в картотеку специальной операцией. Для этого применяется команда ЗАПИСИ измененной карточки в картотеку, вызываемая одновременным нажатием двух клавиш:
Shift+ F10
СОЗДАНИЕ НОВЫХ КАРТОЧЕК. Помимо просмотра и изменения введенных ранее карточек, пользователи должны иметь возможность создания совершенно новых карточек и связывания с ними соответствующих ключей. Такая операция может осуществляться двумя путями.
Во-первых, тексты карточек с ключами могут извлекаться из заранее приготовленного текстового файла - такого же, как и при создании новой картотеки.
Во-вторых, отдельные карточки могут создаваться во время обычной работы с картотекой. Для этого достаточно вызвать чистое рабочее окно с помощью команды F7.
Сформированная затем с помощью мини-редактора карточка заносится в картотеку в результате применения команды
Ctrl+F10
При этом на экран выводится вспомогательное управляющее меню (рис.5.13).
Рис.5.13. Управляющее меню, вызываемое по команде Ctrl+F10
Выбор первой позиции этого меню ведет к выполнению указанной операции - то есть занесению в картотеку новой карточки. При этом все отмеченные в тексте карточки ключевые слова попадут в список ключей.
Вторая позиция позволяет сохранить старую карточку, но занести в список ключей все те новые ключи, которые появились при последнем редактировании. Кроме того, если пользователь при нажатии Ctrl+F10 ошибся и на самом деле не хочет заводить новую карточку, то здесь он имеет возможность поправить себя и записать карточку на прежнее место, а не заводить новую.
Третья позиция в указанном меню служит для удаления данной карточки из картотеки. При удалении карточек пространство в картотеке не освобождается; его можно восстановить для нового использования лишь путем вывода всего содержимого картотеки в текстовый файл и повторного создания новой картотеки с тем же именем (см. ниже).
ИСПОЛЬЗОВАНИЕ ВСПОМОГАТЕЛЬНЫХ РАБОЧИХ ОКОН. Часто бывает необходимо сопоставлять содержимое нескольких карточек. С этой целью можно "отложить" карточку в дополнительное рабочее окно #2. После этого можно переключаться между двумя окнами - основным и дополнительным, нажимая всего одну клавишу. Реализуются эти действия следующими командами:
F8 - открыть дополнительное рабочее окно #2 и перенести в него содержимое основного рабочего окна (1-го, 3-го или 4-го},
F9 - переключиться из основного рабочего окна в дополнительное или обратно.
Все используемые в системе окна можно перемещать по экрану и изменять их размеры. Режим изменения положения или размеров любого окна вызывается нажатием клавиш
Alt+W
Это должно происходить в тот период, когда, соответствующее окно активизировано. Управление окнами осуществляется клавишами:
Стрелки Вправо/Влево/Вверх/Вниз - смещение окна на экране,
Shift+Стрелки Вправо/Влево - сдвиг правой границы окна,
Shift+Стрелки Вверх/Вииз - сдвиг нижней границы окна;
В результате указанных манипуляций можно добиться таких размеров и взаимного расположения окон на экране, чтобы это наилучшим образом соответствовало вкусам пользователя и позволяло удобно просматривать тексты карточек.
Окна могут располагаться на экране, частично перекрывая друг друга. Для переключения между рабочими окнами необходимо иажимать клавиши
Alt+<номер окна>
ВЫЗОВ ПОДСКАЗОК. Подсказка вызывается нажатием клавиш F1 или Shift+F1. В первом случае появляется окно с текстом подсказки, относящейся к данному режиму работы (например, различаются подсказки, вызываемые из окна ключевых слов или из рабочего окна). Во втором случае выводится справочный текст общего характера.
ВВОД/ВЫВОД. Переход в режим ввода/вывода, в котором обеспечивается обмен информацией с файловой системой ДОС, происходит через соответствующую позицию главного управляющего меню. Попасть в это меню можно из окна ключевых слов, нажав клавишу F10.
Выбор позиции в главном управляющем меню осуществляется, как обычно, перемещением курсора с помощью стрелок и нажатием клавиши "Исполнение".
После выбора режима ввод/вывод на экран выводится вспомогательное управляющее меню (рис.5.14).
Рис.5.14. Меню управления вводом/выводом
Работа с этим меню осуществляется так же, как и с главным управляющим меню. Первая позиция обеспечивает вывод в файл ДОС содержимого всей картотеки. Вторая позиция меню позволяет задать вывод лишь части картотеки - для ключей, которые удовлетворяют заданному пользователем шаблону. При этом в качестве стандартного имени файла вывода используется имя данной картотеки с расширением OUT. Например, для картотеки TEL стандартный файл вывода будет именоваться TEL.OUT. Заметим, что такой файл создается в текущем каталоге.
Если стандартный файл вывода почему-либо не устраивает пользователя, он может перевести курсор в третью позицию меню, нажать клавишу "Исполнение" и на запрос системы ответить новым именем выводного файла. Можно изменить все имя, или только тип файла, или указать в качестве префикса имя другого каталога. Эта возможность позволяет, в частности, задать в качестве файла вывода одно из стандартных внешних устройств с последовательным доступом, например, принтер или коммуникационный канал. Для вывода на одно нз этих устройств достаточно в качестве имени вывода указать соответствующее стандартное имя внешнего устройства:
PRN LPT1 LPT2 - для принтеров,
COM1 COM2 - для коммуникационных каналов.
Можно вывести в файл ДОС или на принтер не только всю картотеку, но и отдельную карточку. Для этого, установив курсор на соответствующий ключ в окне ключевых слов, нужно нажать одновременно две клавиши:
Shift+F8
Строчка с выбранным ключом засветится особым цветом; это значит, что в этот момент происходит ее вывод в указанный заранее выводной файл. Имя выводного файла в этом случае также может быть установлено пользователем через 3-ю позицию меню.
Важно помнить, что информация в выводной файл все время ДОБАВЛЯЕТСЯ. Поэтому, если дважды вывести одну и ту же карточку в один и тот же файл, то там образуется два ее экземпляра.
Выведенный текстовый файл приобретает такой вид, который пригоден для его использования в качестве источника для загрузки в картотеку. Это значит, что каждая карточка превращается в отдельный абзац, оформленный по тем правилам, которые были описаны выше в разделе "Создание картотеки".
Выведенные в файл тексты карточек можно редактировать любыми имеющимися средствами, а затем использовать вновь для загрузки в картотеку, в том числе для образования совершенно новой картотеки.
ЗАГРУЗКА исходного файла в картотеку осуществляется, когда после выбора четвертой позиции управляющего меню система запрашивает имя загружаемого файла и пользователь сообщает его в ответ.
Таким образом, работа с картотекой достаточно проста. На рис.5.15 приведена общая сводка команд картотеки NOTES. Данную картотеку можно с успехом использовать вместо личной записной книжки, делового календаря, справочника по той или иной проблеме, словаря и др. Программа, поддерживающая работу с картотекой, невелика по объему и может использоваться на машинах с ограниченным объемом оперативной памяти (до 128 Кбайт). Вместе с другими прикладными системами общего назначения - текстовым редактором, базой данных, графическим процессором - автоматизированная картотека является эффективным средством оргтехники, доступным на любом персональном компьютере.
Рис.5.15. Сводка команд автоматизированной картотеки NOTES
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Брябрин. Программное обеспечение персональных ЭВМ. 1990
5.3. ИНТЕГРИРОВАННЫЕ ПРИКЛАДНЫЕ СИСТЕМЫ
Решение многих профессиональных задач на персональном компьютере требует, с одной стороны, использования некоторых универсальных средств, таких как пакет текстовой обработки или база данных; с другой стороны, определенные задачи требуют использования специализированных программ, например, для обработки электрокардиограмм, для выполнения статистических расчетов и др.
Для большинства применений оказываются вполне достаточными только универсальные средства общего назначения. Однако здесь у человека часто возникают технические проблемы: сначала он пользуется средствами текстовой обработки для составления документа, затем хочет быстро перейти к использованию базы данных для поиска определенных объектов, а еще через некоторое время у него возникает потребность перенести в текстовый документ значения некоторых величин из базы данных и т.д. Если пользоваться отдельными прикладными пакетами для каждого вида работы, то описанные выше действия приводят к неудобствам пользователя, замедляют общий процесс работы, усложняют обучение.
Именно это и послужило одной из причин появления на персональных компьютерах ИНТЕГРИРОВАННЫХ прикладных систем.
Целью создания интегрированной системы является объединение "под одной крышей" наиболее часто используемых прикладных программ. Считается, что хорошая интегрированная система должна включать следующую "большую пятерку" прикладных систем общего назначения: пакет текстовой обработки, процессор электронных таблиц, базу данных, пакет графического отображения данных (деловую графику) и коммуникационный пакет.
Преимущества интегрированных систем проявляются в первую очередь в том, что они удобны для пользователя. Система предоставляет одинаковые средства доступа к различным пакетам. Упрощается стыковка различных пакетов по данным. Увеличивается скорость работы, так как не требуется перекачки данных нз одного хранилища в другое, а переключение с одного пакета на другой осуществляется простым выбором соответствующих позиций в управляющем меню.
Правда, интегрированные системы имеют и недостатки по сравнению с изолированными прикладными пакетами. Главный из этих недостатков - повышенные требования к оперативной памяти. Как правило, для работы с типичной интегрированной системой требуется от 200 до 400 Кбайт оперативной памяти, не говоря о довольно значительных объемах внешней памяти (600-1000 Кбайт) для хранения всех необходимых компонентов. Каждый пакет в рамках интегрированной системы неизбежно реализуется с некоторыми ограничениями на функциональные возможности по сравнению с лучшими образцами в своем классе. Эта плата за интеграцию неизбежна, и она с лихвой компенсируется преимуществами таких систем для пользователя.
ПЛЮСЫ И МИНУСЫ ИНТЕГРИРОВАННЫХ СИСТЕМ. Наибольшую популярность среди интегрированных систем завоевали Lotus 1-2-3, Symphony и Framework, созданные в 1983-1984гг. Первая из этих систем, ставшая в свое время бестселлером, фактически открыла дорогу другим подобным системам, продемонстрировав все достоинства интеграции, хотя в ее состав входили лишь три компонента: очень хороший пакет для работы с электронными таблицами, база данных со средними возможностями и пакет деловой графики. Одним из важных достоинств системы Lotus 1-2-3 был относительно небольшой объем требуемой оперативной памяти - всего 192 Кбайт, а работать с ней можно было при наличии только одного гибкого диска. Это достоинство было утрачено всеми более поздними системами.
Две другие системы - Symphony и Framework - долгое время конкурировали друг с другом. Обе они предоставляют пользователям примерно одинаковые возможности и обе требуют для работы примерно одинакового объема оперативной памяти - около 320 Кбайт для Framework и 390 Кбайт для Symphony. Это довольно большие объемы, приводящие к определенным неудобствам. Так, например, на машине с общим объемом оперативной памяти 512 Кбайт при использовании любой из этих систем уже становится невозможным заказ виртуального диска объемом более 100-120 Кбайт, поскольку не остается места для их совместного размещения в ОЗУ. Эти системы, как говорят программисты, чересчур тяжелы для простых применений.
Тем не менее гибкие возможности и удобство использования привлекает к этим системам многих пользователей ПЭВМ. По их образу и подобию создаются и другие прикладные системы.
Руководитель работ по созданию систем Lotus 1-2-3 и Symphony - Митч Кэйпор - дал однажды такое определение: "Интегрированной называется система, которую пользователь включает утром и работает на ней весь день, не испытывая никакой потребности в других программах". Это определение частично объясняет привлекательность интегрированных систем для пользователей, которые каждодневно решают примерно одни и те же задачи.
Далее приводится более подробное описание системы Framework, в которую встроено несколько замечательных свойств, позволяющих создавать на ее основе как простые проблемно-ориентированные системы, предназначенные для применения в деловой сфере, так и сложные автоматизированные рабочие места.
ОСНОВНЫЕ СВОЙСТВА СИСТЕМЫ FRAMEWORK. Система Framework (произносится "фреймворк") обеспечивает следующие основные возможности: создание и обработку текстовых материалов, структурное представление документов, использование электронных таблиц и баз данных реляционного типа, графическое представление данных. Пользователю, обладающему программистской квалификацией, система предоставляет специальный язык программирования - Fred, с помощью которого можно описать сложные алгоритмы управления процессом обработки данных.
Отличительной чертой системы Framework является принцип, согласно которому все создаваемые пользователем информационные объекты рассматриваются с единой точки зрения: все они объявляются ФРЕЙМАМИ. Фрейм - это некоторый универсальный носитель информации, который, в свою очередь, может состоять из фреймов или же содержит конкретные данные, представленные в виде текста, таблиц, записей базы данных или графиков разного вида.
При появлении любого фрейма на экране дисплея он представляется либо в закрытом виде - как прямоугольничек, в котором содержится только название фрейма, либо в открытом виде - как дисплейное окно, в котором может быть представлена часть текстового документа, таблицы, базы данных или график. Окно с выбранным фреймом может занимать лишь часть экрана, а может быть увеличено до размеров полного экрана.
ВЫЗОВ СИСТЕМЫ И НАЧАЛО РАБОТЫ С НЕЙ. При вызове системы на экране выделяется несколько рабочих зон. Главное меню располагается в верхней части экраиа и содержит девять слов, являющихся командами верхнего уровня:
Disk Create Edit Locate Frames Words Numbers Graphs Print
Эти команды соответствуют основным режимам работы. Выбор команды в этом меню осуществляется одновременным нажатием клавиши Ctrl и клавиши с первой буквой имени команды. При этом выделяется соответствующая позиция меню, и вслед за этим появляется вспомогательное меню, которое как бы "выпадает" из главного. Вспомогательное меню имеет вид столбца, в строчках которого расположены слова, поясняющие отдельные операции. Выбор позиции вспомогательного меню осуществляется с помощью стрелок "Вверх", "Вниз" с последующим нажатием клавиши "Исполнение" (рис.5.16).
Рис.5.16. Вид экрана в начале работы с системой Framework
РАБОЧАЯ ОБЛАСТЬ располагается в центральной части экрана. В начале она пуста, но затем на ней начинают размещаться окна с фреймами, в которых содержится определенная информация.
ПАНЕЛЬ СОСТОЯНИЯ расположена под рабочей областью и служит для отображения промежуточной рабочей информации - текста обрабатываемой формулы, имени текущего (активизированного) фрейма, индикаторов нажатых клавиш и др.
ПОЛЕ СООБЩЕНИЙ располагается под панелью состояний в самом низу экрана и состоит из двух строк. В верхней строке отображается текст редактируемого имени фрейма, формулы или числового значения. В нижнюю строку выдаются сообщения об ошибках, когда пользователь применяет неправильные действия, а также другие вопросы й сообщения системы.
СПИСОК ИМЕН ВНЕШНИХ НАКОПИТЕЛЕЙ - A:, C:, D:, E: - размещается в правой части экрана в виде узкого столбца. В правом нижнем углу экрана во время работы возникает столбец с именами активизированных фреймов - это СПИСОК РАБОЧИХ ФРЕЙМОВ. На рис.5.16, являющемся графической копией экрана, в этом списке видны рабочие фреймы с именами "Оглавление", "Таблица1, "Текст", "График".
МЕТАФОРА РАБОЧЕГО КАБИНЕТА. При работе с системой человек может представить себя находящимся в рабочем кабинете. Обстановка этого "кабинета", имитируемого системой, включает "шкафы", в которых лежат "папки" с документами. Кроме того, имеется "рабочий стол", который можно использовать, во-первых, для того, чтобы сложить на углу нужные папки, во-вторых, для того, чтобы на его рабочей поверхности можно было раскладывать папки и вынимаемые из них документы и работать с ними.
Сначала пользователь видит лишь "шкафы", роль которых играют накопители с именами A:, C:, D:, E: (рис.5.17). Первое действие, которое совершает пользователь,- "открыть шкаф". Для этого он выбирает с помощью курсора имя соответствующего накопителя, например, C:, и нажимает клавишу "Исполнение". В рабочей области возникает вертикальное окно-столбец с именами фреймов (файлов), находящихся на данном внешнем накопителе. Это "папки", лежащие в "шкафу".
Рис.5.17. Вид экрана при выборе рабочих фреймов
Далее из выведенного списка можно выбрать один или несколько фреймов, нажимая клавишу "Исполнение" в соответствующих позициях. Выбранные фреймы, точнее, их имена перемещаются в список рабочих фреймов в правом нижнем углу экрана. Эту операцию можно представить как вынимание нужных "папок" из "шкафа" и складывание их в стопку на углу стола. На рис.5.17 видна стопка фреймов с именами Tab1, tx1, DB1.
Операции открытия любого "шкафа" и выбора из него нужных "папок" можно повторять многократно как в начале, так и в середине рабочего сеанса. После того как собрана необходимая пачка "папок" - рабочих фреймов, можно приступать к основной работе.
Папка "открывается", если на нее указать курсором и нажать "Исполнение". При этом в рабочем поле появляется раскрытый фрейм с соответствующим содержимым. На рис.5.17 виден раскрытый фрейм типа "база данных". Его имя - DB1.
Далее можно "погрузиться" в данный фрейм и начать работу с его содержимым. Способ работы определяется типом фрейма. Текстовый фрейм можно редактировать. Электронную таблицу можно просматривать и заполнять информацией. Базу данных можно просматривать, заполнять, сортировать и производить в ней поиск по значениям выделенных полей. Графики, диаграммы и гистограммы можно строить по данным, выбираемым из электронной таблицы или базы данных. Можно создавать, просматривать и модифицировать структурированные документы. Это и есть основные типы фреймов.
Дисплейное окно, в которое выводится фрейм, можно перемещать по экрану и изменять его размеры. Один особый случай изменения размеров фрейма реализуется нажатием клавиши F9, после чего активизированный в данный момент фрейм показывается во весь экран. Эта операция называется Zoom (укрупнение). Повторное нажатие клавиши F9 возвращает окно с фреймом к прежнему размеру и ставит его на прежнее место в рабочей области экрана. Раскрытые в рабочей области фреймы могут частично или полностью перекрывать друг друга - точно так же, как лежащие на столе раскрытые папки с документами (рис.5.18 ).
Рис.5.18. Вид экрана с перекрывающими друг друга фреймами
Всем описанным выше действиям соответствуют обратные действия, которые обычно вызываются повторными нажатиями клавиши "Исполнение". Так, раскрытый фрейм - папку можно сложить и убрать назад в стопку на столе. Закрытые фреймы - папки можно убрать в "шкаф" или удалить совсем, если оии больше никогда ие понадобятся. Можно закрыть "шкаф", т.е. убрать с экрана окно с каталогом соответствующего накопителя.
Для выполнения таких операций, как удаление или сохранение фрейма на диске, нужно использовать главное управляющее меню, т.е. нажать клавиши Ctrl+<первая буква команды> и затем в соответствии с выведенным списком вспомогательного меню выполнить требуемую операцию. По ходу выполнения возможен небольшой диалог между пользователем и системой - по поводу имен файлов и пр.
Подобный способ действий сравнительно легко и быстро осваивается любым пользователем. Когда у пользователя появляются проблемы, он всегда может обратиться к системной "подсказке": нажатие специальной клавиши выводит на экран подробный текст с разъяснениями. Текст подсказки структурирован по разделам и содержит пояснения по всем возможным операциям.
"ОБРАБОТКА ИДЕЙ". Одна из замечательных возможностей в системе Framework связана с так называемой ОБРАБОТКОЙ ИДЕЙ. Пользователь может начать работать с фреймом типа СТРУКТУРИРОВАННЫЙ ДОКУМЕНТ. При этом первое, что появляется в соответствующем дисплейном окне, это пронумерованный и пока безымянный перечень разделов. Пользователь может начать с того, что для каждой позиции этого перечня указать сначала только имя и тип соответствующего подраздела.
При этом закладывается основа для новых, пока пустых фреймов. Получившуюся структуру можно трактовать как общий перечень идей, которые нужно развивать. При другом взгляде на такую структуру ее можно считать черновиком, оглавления будущего документа или общим планом работы (рис.5.19).
Рис.5.19. Вид экрана при создании структурного документа
Сделав начальный набросок, можно углубиться в разработку любого раздела, который в свою очередь может представлять собой подобную же структуру или содержать фактические данные, т.е. быть фреймом определенного типа.
Структурный документ можно дополнять новыми разделами. Можно копировать информацию из одного раздела в другой. Можно заставить систему сделать полное (текстовое) оглавление по созданным перечням разделов. Можно, наконец, вывести на печать любой раздел или весь структурный документ. При этом отдельные содержательные компоненты - текстовые, табличные и графические фреймы - будут выводиться на печать по соответствующим правилам.
Описанное свойство выгодно отличает систему Framework от других интегрированных систем, поскольку стимулирует работу "сверху вниз" и позволяет легко создавать иерархические модели и документы.
Каждый фрейм в системе отображается в отдельный файл ДОС. Это очень важное свойство, позволяющее создавать информационные модели и документы произвольной сложности (ограничением является лишь доступный объем внешних устройств).
При работе в системе Framework пользователь может временно прервать основной процесс и обратиться к ДОС, а затем вновь вернуться к прерванной работе. Следуя общему принципу, обращение к ДОС оформляется просто как вызов специального фрейма с именем DOS. Выйдя в ДОС, можно, например, запустить какую-либо программу и результаты ее работы передать назад в систему - в другой фрейм. Чтобы вернуться из ДОС в Framework, достаточно дать команду EXIT. Эта возможность делает систему очень близкой по свойствам к операционным оболочкам, основной целью которых является интегрирование автономных программ.
Язык Fred позволяет задавать различные связи между компонентами одного м того же или разных фреймов. С его помощью можно также описывать управляющие структуры, благодаря которым конечный пользователь может быть вообще избавлен от необходимости вводить какие-либо сложные команды. Его действия могут быть сведены к нажатию лишь одной или нескольких клавиш по указаниям системы. Таким способом можно реализовать информационные системы и автоматизированные рабочие места, ориентированные на пользователей с элементарной подготовкой.
ИНТЕГРАТОРЫ - СРЕДСТВА ОБЪЕДИНЕНИЯ ПРИКЛАДНЫХ ПАКЕТОВ. В отличие от готовых интегрированных систем, которые имеют, подобно Symphony и Framework, закрытый характер, т.е. не дают возможности подключения новых прикладных пакетов, в последнее время стал практиковаться другой подход - создание инструментальных средств, с помощью которых можно было бы собирать из разных прикладных пакетов, как из детского конструктора, свою интегрированную систему.
Такие средства называют интеграторами или операционными оболочками. К системам такого рода относятся TopView (фирма IBM), Concurrent DOS и OEM (фирма Digital Research), Windows (фирма Microsoft). Эти системы различаются по ряду характеристик, но имеют и ряд общих свойств:
1. Работа с несколькими дисплейными окнами, иногда с возможностью псевдопараллельной выдачи информации во все окна.
2. Предоставление возможности управления работой программ через меню, с выбором позиций меню с помощью клавиш управления курсором или манипулятора "мышь".
3. Автоматическое распределение памяти между программами, иногда - обеспечение обмена данными между ними через окна.
Некоторые системы делают упор на использование графического режима дисплея, обеспечивая большую наглядность представления информации. Одна из наиболее привлекательных систем этого типа - Windows (фирмы Microsoft). Рассмотрим ее основные свойства.
ГРАФИЧЕСКИЙ ИНТЕРФЕЙС. При вызове системы Windows в центральной части экрана появляется большое рабочее окно, в верхней части которого изображены условные графические символы (пиктограммы) с изображениями подключенных в этот момент накопителей A:, C:, D:. Над рабочим полем выведена линейка с именами трех главных команд, доступных в этот момент:
FILE VIEW SPECIAL
На экране появляется стрелка-курсор, которая перемещается синхронно с перемещением по столу манипулятора "мышь". Что в этот момент может делать пользователь?
Можно подвести курсор к пиктограмме с изображением одного из накопителей, например C:, и нажать кнопку на манипуляторе "мышь". При этом в рабочем поле возникает столбец с каталогом файлов данного накопителя. Дальше можно подвести курсор к имени одного из файлов и снова нажать кнопку; при этом данное имя будет выделено негативным изображением. Допустим, это имя файла с программой калькулятора CALC.EXE.
Затем можно подвести курсор к имени системной команды FILE. После нажатия кнопки на манипуляторе появится новый столбец-меню с именами команд, расшифровывающих команду FILE: Run, Load, Close и др. Если, не отпуская кнопку, выбрать с помощью курсора одну из этих команд, например, Load, и затем отпустить кнопку манипулятора, то инициируется загрузка выбранного файла CALC.EXE в оперативную память, контролируемую системой Windows.
После завершения загрузки программа CALC.EXE оказывается готовой к исполнению, но пока не исполняется. Ее присутствие в оперативной памяти отображается тем, что в специальном окне в нижней части экрана появляется пиктограмма калькулятора (рис.5.20). Подобным же образом можно загрузить с разных накопителей и другие программы. Их пиктограммы при этом появятся в нижнем окне.
Рис.5.20. Вид экрана при работе системы Windows
Запуск любой из этих программ производится очень просто. Нужно подвести курсор к одной из пиктограмм и, нажав кнопку манипулятора, "вытащить" затем эту пиктограмму вместе с курсором в рабочее поле. Как только после этого пользователь отпустит кнопку манипулятора, программа, соответствующая данной пиктограмме, запускается. В частности, работа упомянутого выше калькулятора состоит в том, что в рабочем окне возникает графическое изображение обычного ручного калькулятора, на котором можно нажимать соответствующие кнопки и производить вычисления.
Чтобы остановить работу любой запущенной программы, нужно в тот момент, когда она ждет от пользователя ввода информации, подвести курсор к другой пиктограмме и запустить в работу соответствующую ей программу. Ранее запущенная программа освобождает рабочее поле и возвращается на свое место в окне пиктограмм, а новая программа вступает в работу.
Одна постоянно доступная программа обеспечивает работу с ДОС. Ей соответствует пиктограмма с изображением дискеты. Как только начинает работать любая прикладная программа, пиктограмма ДОС появляется в нижнем окне рядом с другими пиктограммами. Если пользователь затем выберет ее в качестве очередного кандидата для работы, т.е. "вытащит" в рабочее поле, то система приходит в описанное выше состояние - ранее работавшая программа "сворачивается" в соответствующую пиктограмму, а в рабочем поле появляются условные изображения накопителей и выводится каталог одного из накопителей.
Описанная выше техника работы очень проста и не требует никакого обучения. Любой человек, хотя бы немного разбирающийся в персональных компьютерах, за несколько минут овладевает основными приемами работы. Сложнее обстоит дело при подготовке прикладных программ для работы совместно с системой Windows. Далеко не каждая прикладная программа может быть легко приспособлена для этого.
По оценке самой фирмы-разработчика только 80 процентов программ, написанных для ДОС, пригодны к совместной работе с Windows. Причина заключается в том, что многие программы для увеличения эффективности пользуются особенностями аппаратуры, минуя средства операционной системы.
Система основана на стандартизованном графическом интерфейсе GDI - Graphic Device Interface, который, по сути дела, является пакетом графических подпрограмм, играющих роль посредника между прикладной программой и аппаратурой. GDI - это язык абстрактного графического устройства. Прикладная программа выдает приказы на этом языке, а драйвер конкретного графического устройства переводит их в систему команд, понятных аппаратуре.
Стандартизованный графический интерфейс позволяет системе Windows быть независимой от конкретной аппаратуры. Ее можно рассматривать как загружаемый специализированный драйвер консоли.
ВОЗМОЖНОСТИ И ОГРАНИЧЕНИЯ ОПЕРАЦИОННЫХ ОБОЛОЧЕК. В системе Windows, как и в большинстве других подобных систем, может использоваться несколько рабочих окон. В Windows отдельные окна не могут перекрывать друг друга, а располагаются рядом; в других системах окна могут накладываться друг на друга.
Размеры окон и их положение на экране могут изменяться во время работы. Для этого курсор подводится к углу окна, в котором изображен значок увеличения его размеров. Если теперь нажать на кнопку манипулятора, то окно начнет расти.
Большинство систем обеспечивает обмен информацией между окнами. В системе Windows, например, можно, работая в одном окне, сформулировать заказ на информацию из другого окна. Это похоже на задание значения в ячейке электронной таблицы в виде зависимости от значений других ячеек.
Во многих системах описываемого типа можно одновременно управлять многими прикладными программами через несколько окон. Это особенно выделяется в системах, которые сами начинают играть роль ОС. Так, например, система Concurrent DOS является, в отличие от Windows, не надстройкой над ДОС, а самостоятельной операционной системой. Эта ОС задумана как дальнейшее развитие операционных систем семейства CP/M-86 с обеспечением совместимости с ДОС. Система позволяет запускать программы, разработанные и для CP/M-86, и для ДОС. В меню, которое появляется на экране при загрузке системы, входят следующие подсистемы: программа работы с файлами, текстовый процессор, система поддержки телекоммуникаций, автоматизированный каталог и программа управления принтером. Можно войти в любую из этих систем, и она окажется связанной с окном, которое отображается на экране терминала и позволяет управлять выбранной системой. Программы в разных окнах будут выполняться одновременно. Приказ смены окна работает асинхронно, что позволяет в любой момент переключиться на любое окно и наблюдать развитие событий в программе, связанной с этим окном.
В системах-надстройках над ДОС, таких как Top View и Windows, также есть средства для поддержки многозадачной работы. Но для их использования приходится модифицировать сами прикладные программы, предназначенные для псевдопараллельного исполнения.
В использовании операционных оболочек есть определенные проблемы. Эти системы, хотя и предлагаются всего лишь как средства интеграции, требуют для своей работы значительных объемов памяти. Так, система Windows требует 192 Кбайт оперативной памяти, не считая различных вспомогательных файлов, хранимых на внешних устройствах.
Кроме того, как указывалось, на объединяемые прикладные программы также накладывается много ограничений: они не должны работать с устройствами напрямую, например, читать данные из порта клавиатуры или писать их в память дисплея; используемая ими память ограничивается естественным образом в связи с необходимостью предоставления места для самой системы и для других программ. Работа с графикой в прикладных программах должна осуществляться через стандартизованный графический интерфейс.
РЕЗИДЕНТНЫЕ СЕРВИСНЫЕ СИСТЕМЫ. Резидентные сервисные системы представляют особую разновидность интегрированных пакетов. Они дают возможность оперативного выполнения некоторых вспомогательных действий с приостановкой ранее начатой работы.
Резидентная система инициируется перед запуском основных прикладных программ. При инициации она размещается в оперативной памяти, откуда впоследствии ее можно быстро вызвать простым прерыванием основной работы. Прерывание обычно осуществляется нажатием некоторой комбинации клавиш, например, Shift+Alt.
В состав резидентной системы вводятся программы и данные, которые хочется всегда иметь под рукой: это, например, калькулятор, автоматизированный календарь, записная книжка, часы с будильником, таблица ASCII-кодов, подпрограмма просмотра текстовых файлов, подпрограмма шифровки/дешифровки и др.
С целью экономии места в оперативной памяти резидентные системы обычно можно конфигурировать, устанавливая лишь некоторые, необходимые пользователю компоненты. При этом объем требуемой оперативной памяти колеблется от 15 до 150 Кбайт.
При вызове системы на экран почти мгновенно выводятся соответствующие рабочие окна, через которые пользователь общается с той, или иной подпрограммой резидентной системы. Закончив эту работу, пользователь повторным нажатием клавиш вызова закрывает резидентную систему. Ее окна исчезают с экрана, а прежнее изображение полностью восстанавливается, и продолжается нормальная работа прикладной программы.
Наиболее известны системы Sidekick, Pop-Up, Spotlight. В Вычислительном центре АН СССР реализована система Ассистент (автор - Г.Г.Гнездилова), в состав которой входят следующие подпрограммы:
- просмотр файлов,
- просмотр таблицы ASCII-кодов,
- установка будильника и выдача по нему звукового сигнала.
К категории резидентных сервисных систем можно отнести также макрогенераторы, которые позволяют приписывать отдельным клавишам и их комбинациям целые последовательности команд, часто вводимых с клавиатуры.
При нажатии запрограммированной таким образом клавиши происходит вызов соответствующего макроса и выполнение всех приписанных этой клавише команд.
Эти системы часто предоставляют дополнительные возможности, такие как переопределение кодов клавиш клавиатуры, автоматическая блокировка клавиатуры и очистка экрана дисплея при длительном отсутствии пользователя, шифровка/дешифровка файлов с целью их защиты от несанкционированного доступа и др.
Известные системы этого типа - Superkey, Smartkey, Prokey.
Таким образом, интегрированные системы разных типов дают возможность создания на персональном компьютере удобной операционной обстановки, объединяющей наиболее важные и часто используемые прикладные и сервисные программы. Во многих случаях на основе интегрированной системы можно создать законченное автоматизированное рабочее место, не привлекая больше никаких других программ. Это удобно для пользователей, так как обеспечивает единый способ взаимодействия со всеми компонентами, легкий и быстрый переход от одного вида работы к другому и обмен данными между разными подсистемами.
Решение многих профессиональных задач на персональном компьютере требует, с одной стороны, использования некоторых универсальных средств, таких как пакет текстовой обработки или база данных; с другой стороны, определенные задачи требуют использования специализированных программ, например, для обработки электрокардиограмм, для выполнения статистических расчетов и др.
Для большинства применений оказываются вполне достаточными только универсальные средства общего назначения. Однако здесь у человека часто возникают технические проблемы: сначала он пользуется средствами текстовой обработки для составления документа, затем хочет быстро перейти к использованию базы данных для поиска определенных объектов, а еще через некоторое время у него возникает потребность перенести в текстовый документ значения некоторых величин из базы данных и т.д. Если пользоваться отдельными прикладными пакетами для каждого вида работы, то описанные выше действия приводят к неудобствам пользователя, замедляют общий процесс работы, усложняют обучение.
Именно это и послужило одной из причин появления на персональных компьютерах ИНТЕГРИРОВАННЫХ прикладных систем.
Целью создания интегрированной системы является объединение "под одной крышей" наиболее часто используемых прикладных программ. Считается, что хорошая интегрированная система должна включать следующую "большую пятерку" прикладных систем общего назначения: пакет текстовой обработки, процессор электронных таблиц, базу данных, пакет графического отображения данных (деловую графику) и коммуникационный пакет.
Преимущества интегрированных систем проявляются в первую очередь в том, что они удобны для пользователя. Система предоставляет одинаковые средства доступа к различным пакетам. Упрощается стыковка различных пакетов по данным. Увеличивается скорость работы, так как не требуется перекачки данных нз одного хранилища в другое, а переключение с одного пакета на другой осуществляется простым выбором соответствующих позиций в управляющем меню.
Правда, интегрированные системы имеют и недостатки по сравнению с изолированными прикладными пакетами. Главный из этих недостатков - повышенные требования к оперативной памяти. Как правило, для работы с типичной интегрированной системой требуется от 200 до 400 Кбайт оперативной памяти, не говоря о довольно значительных объемах внешней памяти (600-1000 Кбайт) для хранения всех необходимых компонентов. Каждый пакет в рамках интегрированной системы неизбежно реализуется с некоторыми ограничениями на функциональные возможности по сравнению с лучшими образцами в своем классе. Эта плата за интеграцию неизбежна, и она с лихвой компенсируется преимуществами таких систем для пользователя.
ПЛЮСЫ И МИНУСЫ ИНТЕГРИРОВАННЫХ СИСТЕМ. Наибольшую популярность среди интегрированных систем завоевали Lotus 1-2-3, Symphony и Framework, созданные в 1983-1984гг. Первая из этих систем, ставшая в свое время бестселлером, фактически открыла дорогу другим подобным системам, продемонстрировав все достоинства интеграции, хотя в ее состав входили лишь три компонента: очень хороший пакет для работы с электронными таблицами, база данных со средними возможностями и пакет деловой графики. Одним из важных достоинств системы Lotus 1-2-3 был относительно небольшой объем требуемой оперативной памяти - всего 192 Кбайт, а работать с ней можно было при наличии только одного гибкого диска. Это достоинство было утрачено всеми более поздними системами.
Две другие системы - Symphony и Framework - долгое время конкурировали друг с другом. Обе они предоставляют пользователям примерно одинаковые возможности и обе требуют для работы примерно одинакового объема оперативной памяти - около 320 Кбайт для Framework и 390 Кбайт для Symphony. Это довольно большие объемы, приводящие к определенным неудобствам. Так, например, на машине с общим объемом оперативной памяти 512 Кбайт при использовании любой из этих систем уже становится невозможным заказ виртуального диска объемом более 100-120 Кбайт, поскольку не остается места для их совместного размещения в ОЗУ. Эти системы, как говорят программисты, чересчур тяжелы для простых применений.
Тем не менее гибкие возможности и удобство использования привлекает к этим системам многих пользователей ПЭВМ. По их образу и подобию создаются и другие прикладные системы.
Руководитель работ по созданию систем Lotus 1-2-3 и Symphony - Митч Кэйпор - дал однажды такое определение: "Интегрированной называется система, которую пользователь включает утром и работает на ней весь день, не испытывая никакой потребности в других программах". Это определение частично объясняет привлекательность интегрированных систем для пользователей, которые каждодневно решают примерно одни и те же задачи.
Далее приводится более подробное описание системы Framework, в которую встроено несколько замечательных свойств, позволяющих создавать на ее основе как простые проблемно-ориентированные системы, предназначенные для применения в деловой сфере, так и сложные автоматизированные рабочие места.
ОСНОВНЫЕ СВОЙСТВА СИСТЕМЫ FRAMEWORK. Система Framework (произносится "фреймворк") обеспечивает следующие основные возможности: создание и обработку текстовых материалов, структурное представление документов, использование электронных таблиц и баз данных реляционного типа, графическое представление данных. Пользователю, обладающему программистской квалификацией, система предоставляет специальный язык программирования - Fred, с помощью которого можно описать сложные алгоритмы управления процессом обработки данных.
Отличительной чертой системы Framework является принцип, согласно которому все создаваемые пользователем информационные объекты рассматриваются с единой точки зрения: все они объявляются ФРЕЙМАМИ. Фрейм - это некоторый универсальный носитель информации, который, в свою очередь, может состоять из фреймов или же содержит конкретные данные, представленные в виде текста, таблиц, записей базы данных или графиков разного вида.
При появлении любого фрейма на экране дисплея он представляется либо в закрытом виде - как прямоугольничек, в котором содержится только название фрейма, либо в открытом виде - как дисплейное окно, в котором может быть представлена часть текстового документа, таблицы, базы данных или график. Окно с выбранным фреймом может занимать лишь часть экрана, а может быть увеличено до размеров полного экрана.
ВЫЗОВ СИСТЕМЫ И НАЧАЛО РАБОТЫ С НЕЙ. При вызове системы на экране выделяется несколько рабочих зон. Главное меню располагается в верхней части экраиа и содержит девять слов, являющихся командами верхнего уровня:
Disk Create Edit Locate Frames Words Numbers Graphs Print
Эти команды соответствуют основным режимам работы. Выбор команды в этом меню осуществляется одновременным нажатием клавиши Ctrl и клавиши с первой буквой имени команды. При этом выделяется соответствующая позиция меню, и вслед за этим появляется вспомогательное меню, которое как бы "выпадает" из главного. Вспомогательное меню имеет вид столбца, в строчках которого расположены слова, поясняющие отдельные операции. Выбор позиции вспомогательного меню осуществляется с помощью стрелок "Вверх", "Вниз" с последующим нажатием клавиши "Исполнение" (рис.5.16).
Рис.5.16. Вид экрана в начале работы с системой Framework
РАБОЧАЯ ОБЛАСТЬ располагается в центральной части экрана. В начале она пуста, но затем на ней начинают размещаться окна с фреймами, в которых содержится определенная информация.
ПАНЕЛЬ СОСТОЯНИЯ расположена под рабочей областью и служит для отображения промежуточной рабочей информации - текста обрабатываемой формулы, имени текущего (активизированного) фрейма, индикаторов нажатых клавиш и др.
ПОЛЕ СООБЩЕНИЙ располагается под панелью состояний в самом низу экрана и состоит из двух строк. В верхней строке отображается текст редактируемого имени фрейма, формулы или числового значения. В нижнюю строку выдаются сообщения об ошибках, когда пользователь применяет неправильные действия, а также другие вопросы й сообщения системы.
СПИСОК ИМЕН ВНЕШНИХ НАКОПИТЕЛЕЙ - A:, C:, D:, E: - размещается в правой части экрана в виде узкого столбца. В правом нижнем углу экрана во время работы возникает столбец с именами активизированных фреймов - это СПИСОК РАБОЧИХ ФРЕЙМОВ. На рис.5.16, являющемся графической копией экрана, в этом списке видны рабочие фреймы с именами "Оглавление", "Таблица1, "Текст", "График".
МЕТАФОРА РАБОЧЕГО КАБИНЕТА. При работе с системой человек может представить себя находящимся в рабочем кабинете. Обстановка этого "кабинета", имитируемого системой, включает "шкафы", в которых лежат "папки" с документами. Кроме того, имеется "рабочий стол", который можно использовать, во-первых, для того, чтобы сложить на углу нужные папки, во-вторых, для того, чтобы на его рабочей поверхности можно было раскладывать папки и вынимаемые из них документы и работать с ними.
Сначала пользователь видит лишь "шкафы", роль которых играют накопители с именами A:, C:, D:, E: (рис.5.17). Первое действие, которое совершает пользователь,- "открыть шкаф". Для этого он выбирает с помощью курсора имя соответствующего накопителя, например, C:, и нажимает клавишу "Исполнение". В рабочей области возникает вертикальное окно-столбец с именами фреймов (файлов), находящихся на данном внешнем накопителе. Это "папки", лежащие в "шкафу".
Рис.5.17. Вид экрана при выборе рабочих фреймов
Далее из выведенного списка можно выбрать один или несколько фреймов, нажимая клавишу "Исполнение" в соответствующих позициях. Выбранные фреймы, точнее, их имена перемещаются в список рабочих фреймов в правом нижнем углу экрана. Эту операцию можно представить как вынимание нужных "папок" из "шкафа" и складывание их в стопку на углу стола. На рис.5.17 видна стопка фреймов с именами Tab1, tx1, DB1.
Операции открытия любого "шкафа" и выбора из него нужных "папок" можно повторять многократно как в начале, так и в середине рабочего сеанса. После того как собрана необходимая пачка "папок" - рабочих фреймов, можно приступать к основной работе.
Папка "открывается", если на нее указать курсором и нажать "Исполнение". При этом в рабочем поле появляется раскрытый фрейм с соответствующим содержимым. На рис.5.17 виден раскрытый фрейм типа "база данных". Его имя - DB1.
Далее можно "погрузиться" в данный фрейм и начать работу с его содержимым. Способ работы определяется типом фрейма. Текстовый фрейм можно редактировать. Электронную таблицу можно просматривать и заполнять информацией. Базу данных можно просматривать, заполнять, сортировать и производить в ней поиск по значениям выделенных полей. Графики, диаграммы и гистограммы можно строить по данным, выбираемым из электронной таблицы или базы данных. Можно создавать, просматривать и модифицировать структурированные документы. Это и есть основные типы фреймов.
Дисплейное окно, в которое выводится фрейм, можно перемещать по экрану и изменять его размеры. Один особый случай изменения размеров фрейма реализуется нажатием клавиши F9, после чего активизированный в данный момент фрейм показывается во весь экран. Эта операция называется Zoom (укрупнение). Повторное нажатие клавиши F9 возвращает окно с фреймом к прежнему размеру и ставит его на прежнее место в рабочей области экрана. Раскрытые в рабочей области фреймы могут частично или полностью перекрывать друг друга - точно так же, как лежащие на столе раскрытые папки с документами (рис.5.18 ).
Рис.5.18. Вид экрана с перекрывающими друг друга фреймами
Всем описанным выше действиям соответствуют обратные действия, которые обычно вызываются повторными нажатиями клавиши "Исполнение". Так, раскрытый фрейм - папку можно сложить и убрать назад в стопку на столе. Закрытые фреймы - папки можно убрать в "шкаф" или удалить совсем, если оии больше никогда ие понадобятся. Можно закрыть "шкаф", т.е. убрать с экрана окно с каталогом соответствующего накопителя.
Для выполнения таких операций, как удаление или сохранение фрейма на диске, нужно использовать главное управляющее меню, т.е. нажать клавиши Ctrl+<первая буква команды> и затем в соответствии с выведенным списком вспомогательного меню выполнить требуемую операцию. По ходу выполнения возможен небольшой диалог между пользователем и системой - по поводу имен файлов и пр.
Подобный способ действий сравнительно легко и быстро осваивается любым пользователем. Когда у пользователя появляются проблемы, он всегда может обратиться к системной "подсказке": нажатие специальной клавиши выводит на экран подробный текст с разъяснениями. Текст подсказки структурирован по разделам и содержит пояснения по всем возможным операциям.
"ОБРАБОТКА ИДЕЙ". Одна из замечательных возможностей в системе Framework связана с так называемой ОБРАБОТКОЙ ИДЕЙ. Пользователь может начать работать с фреймом типа СТРУКТУРИРОВАННЫЙ ДОКУМЕНТ. При этом первое, что появляется в соответствующем дисплейном окне, это пронумерованный и пока безымянный перечень разделов. Пользователь может начать с того, что для каждой позиции этого перечня указать сначала только имя и тип соответствующего подраздела.
При этом закладывается основа для новых, пока пустых фреймов. Получившуюся структуру можно трактовать как общий перечень идей, которые нужно развивать. При другом взгляде на такую структуру ее можно считать черновиком, оглавления будущего документа или общим планом работы (рис.5.19).
Рис.5.19. Вид экрана при создании структурного документа
Сделав начальный набросок, можно углубиться в разработку любого раздела, который в свою очередь может представлять собой подобную же структуру или содержать фактические данные, т.е. быть фреймом определенного типа.
Структурный документ можно дополнять новыми разделами. Можно копировать информацию из одного раздела в другой. Можно заставить систему сделать полное (текстовое) оглавление по созданным перечням разделов. Можно, наконец, вывести на печать любой раздел или весь структурный документ. При этом отдельные содержательные компоненты - текстовые, табличные и графические фреймы - будут выводиться на печать по соответствующим правилам.
Описанное свойство выгодно отличает систему Framework от других интегрированных систем, поскольку стимулирует работу "сверху вниз" и позволяет легко создавать иерархические модели и документы.
Каждый фрейм в системе отображается в отдельный файл ДОС. Это очень важное свойство, позволяющее создавать информационные модели и документы произвольной сложности (ограничением является лишь доступный объем внешних устройств).
При работе в системе Framework пользователь может временно прервать основной процесс и обратиться к ДОС, а затем вновь вернуться к прерванной работе. Следуя общему принципу, обращение к ДОС оформляется просто как вызов специального фрейма с именем DOS. Выйдя в ДОС, можно, например, запустить какую-либо программу и результаты ее работы передать назад в систему - в другой фрейм. Чтобы вернуться из ДОС в Framework, достаточно дать команду EXIT. Эта возможность делает систему очень близкой по свойствам к операционным оболочкам, основной целью которых является интегрирование автономных программ.
Язык Fred позволяет задавать различные связи между компонентами одного м того же или разных фреймов. С его помощью можно также описывать управляющие структуры, благодаря которым конечный пользователь может быть вообще избавлен от необходимости вводить какие-либо сложные команды. Его действия могут быть сведены к нажатию лишь одной или нескольких клавиш по указаниям системы. Таким способом можно реализовать информационные системы и автоматизированные рабочие места, ориентированные на пользователей с элементарной подготовкой.
ИНТЕГРАТОРЫ - СРЕДСТВА ОБЪЕДИНЕНИЯ ПРИКЛАДНЫХ ПАКЕТОВ. В отличие от готовых интегрированных систем, которые имеют, подобно Symphony и Framework, закрытый характер, т.е. не дают возможности подключения новых прикладных пакетов, в последнее время стал практиковаться другой подход - создание инструментальных средств, с помощью которых можно было бы собирать из разных прикладных пакетов, как из детского конструктора, свою интегрированную систему.
Такие средства называют интеграторами или операционными оболочками. К системам такого рода относятся TopView (фирма IBM), Concurrent DOS и OEM (фирма Digital Research), Windows (фирма Microsoft). Эти системы различаются по ряду характеристик, но имеют и ряд общих свойств:
1. Работа с несколькими дисплейными окнами, иногда с возможностью псевдопараллельной выдачи информации во все окна.
2. Предоставление возможности управления работой программ через меню, с выбором позиций меню с помощью клавиш управления курсором или манипулятора "мышь".
3. Автоматическое распределение памяти между программами, иногда - обеспечение обмена данными между ними через окна.
Некоторые системы делают упор на использование графического режима дисплея, обеспечивая большую наглядность представления информации. Одна из наиболее привлекательных систем этого типа - Windows (фирмы Microsoft). Рассмотрим ее основные свойства.
ГРАФИЧЕСКИЙ ИНТЕРФЕЙС. При вызове системы Windows в центральной части экрана появляется большое рабочее окно, в верхней части которого изображены условные графические символы (пиктограммы) с изображениями подключенных в этот момент накопителей A:, C:, D:. Над рабочим полем выведена линейка с именами трех главных команд, доступных в этот момент:
FILE VIEW SPECIAL
На экране появляется стрелка-курсор, которая перемещается синхронно с перемещением по столу манипулятора "мышь". Что в этот момент может делать пользователь?
Можно подвести курсор к пиктограмме с изображением одного из накопителей, например C:, и нажать кнопку на манипуляторе "мышь". При этом в рабочем поле возникает столбец с каталогом файлов данного накопителя. Дальше можно подвести курсор к имени одного из файлов и снова нажать кнопку; при этом данное имя будет выделено негативным изображением. Допустим, это имя файла с программой калькулятора CALC.EXE.
Затем можно подвести курсор к имени системной команды FILE. После нажатия кнопки на манипуляторе появится новый столбец-меню с именами команд, расшифровывающих команду FILE: Run, Load, Close и др. Если, не отпуская кнопку, выбрать с помощью курсора одну из этих команд, например, Load, и затем отпустить кнопку манипулятора, то инициируется загрузка выбранного файла CALC.EXE в оперативную память, контролируемую системой Windows.
После завершения загрузки программа CALC.EXE оказывается готовой к исполнению, но пока не исполняется. Ее присутствие в оперативной памяти отображается тем, что в специальном окне в нижней части экрана появляется пиктограмма калькулятора (рис.5.20). Подобным же образом можно загрузить с разных накопителей и другие программы. Их пиктограммы при этом появятся в нижнем окне.
Рис.5.20. Вид экрана при работе системы Windows
Запуск любой из этих программ производится очень просто. Нужно подвести курсор к одной из пиктограмм и, нажав кнопку манипулятора, "вытащить" затем эту пиктограмму вместе с курсором в рабочее поле. Как только после этого пользователь отпустит кнопку манипулятора, программа, соответствующая данной пиктограмме, запускается. В частности, работа упомянутого выше калькулятора состоит в том, что в рабочем окне возникает графическое изображение обычного ручного калькулятора, на котором можно нажимать соответствующие кнопки и производить вычисления.
Чтобы остановить работу любой запущенной программы, нужно в тот момент, когда она ждет от пользователя ввода информации, подвести курсор к другой пиктограмме и запустить в работу соответствующую ей программу. Ранее запущенная программа освобождает рабочее поле и возвращается на свое место в окне пиктограмм, а новая программа вступает в работу.
Одна постоянно доступная программа обеспечивает работу с ДОС. Ей соответствует пиктограмма с изображением дискеты. Как только начинает работать любая прикладная программа, пиктограмма ДОС появляется в нижнем окне рядом с другими пиктограммами. Если пользователь затем выберет ее в качестве очередного кандидата для работы, т.е. "вытащит" в рабочее поле, то система приходит в описанное выше состояние - ранее работавшая программа "сворачивается" в соответствующую пиктограмму, а в рабочем поле появляются условные изображения накопителей и выводится каталог одного из накопителей.
Описанная выше техника работы очень проста и не требует никакого обучения. Любой человек, хотя бы немного разбирающийся в персональных компьютерах, за несколько минут овладевает основными приемами работы. Сложнее обстоит дело при подготовке прикладных программ для работы совместно с системой Windows. Далеко не каждая прикладная программа может быть легко приспособлена для этого.
По оценке самой фирмы-разработчика только 80 процентов программ, написанных для ДОС, пригодны к совместной работе с Windows. Причина заключается в том, что многие программы для увеличения эффективности пользуются особенностями аппаратуры, минуя средства операционной системы.
Система основана на стандартизованном графическом интерфейсе GDI - Graphic Device Interface, который, по сути дела, является пакетом графических подпрограмм, играющих роль посредника между прикладной программой и аппаратурой. GDI - это язык абстрактного графического устройства. Прикладная программа выдает приказы на этом языке, а драйвер конкретного графического устройства переводит их в систему команд, понятных аппаратуре.
Стандартизованный графический интерфейс позволяет системе Windows быть независимой от конкретной аппаратуры. Ее можно рассматривать как загружаемый специализированный драйвер консоли.
ВОЗМОЖНОСТИ И ОГРАНИЧЕНИЯ ОПЕРАЦИОННЫХ ОБОЛОЧЕК. В системе Windows, как и в большинстве других подобных систем, может использоваться несколько рабочих окон. В Windows отдельные окна не могут перекрывать друг друга, а располагаются рядом; в других системах окна могут накладываться друг на друга.
Размеры окон и их положение на экране могут изменяться во время работы. Для этого курсор подводится к углу окна, в котором изображен значок увеличения его размеров. Если теперь нажать на кнопку манипулятора, то окно начнет расти.
Большинство систем обеспечивает обмен информацией между окнами. В системе Windows, например, можно, работая в одном окне, сформулировать заказ на информацию из другого окна. Это похоже на задание значения в ячейке электронной таблицы в виде зависимости от значений других ячеек.
Во многих системах описываемого типа можно одновременно управлять многими прикладными программами через несколько окон. Это особенно выделяется в системах, которые сами начинают играть роль ОС. Так, например, система Concurrent DOS является, в отличие от Windows, не надстройкой над ДОС, а самостоятельной операционной системой. Эта ОС задумана как дальнейшее развитие операционных систем семейства CP/M-86 с обеспечением совместимости с ДОС. Система позволяет запускать программы, разработанные и для CP/M-86, и для ДОС. В меню, которое появляется на экране при загрузке системы, входят следующие подсистемы: программа работы с файлами, текстовый процессор, система поддержки телекоммуникаций, автоматизированный каталог и программа управления принтером. Можно войти в любую из этих систем, и она окажется связанной с окном, которое отображается на экране терминала и позволяет управлять выбранной системой. Программы в разных окнах будут выполняться одновременно. Приказ смены окна работает асинхронно, что позволяет в любой момент переключиться на любое окно и наблюдать развитие событий в программе, связанной с этим окном.
В системах-надстройках над ДОС, таких как Top View и Windows, также есть средства для поддержки многозадачной работы. Но для их использования приходится модифицировать сами прикладные программы, предназначенные для псевдопараллельного исполнения.
В использовании операционных оболочек есть определенные проблемы. Эти системы, хотя и предлагаются всего лишь как средства интеграции, требуют для своей работы значительных объемов памяти. Так, система Windows требует 192 Кбайт оперативной памяти, не считая различных вспомогательных файлов, хранимых на внешних устройствах.
Кроме того, как указывалось, на объединяемые прикладные программы также накладывается много ограничений: они не должны работать с устройствами напрямую, например, читать данные из порта клавиатуры или писать их в память дисплея; используемая ими память ограничивается естественным образом в связи с необходимостью предоставления места для самой системы и для других программ. Работа с графикой в прикладных программах должна осуществляться через стандартизованный графический интерфейс.
РЕЗИДЕНТНЫЕ СЕРВИСНЫЕ СИСТЕМЫ. Резидентные сервисные системы представляют особую разновидность интегрированных пакетов. Они дают возможность оперативного выполнения некоторых вспомогательных действий с приостановкой ранее начатой работы.
Резидентная система инициируется перед запуском основных прикладных программ. При инициации она размещается в оперативной памяти, откуда впоследствии ее можно быстро вызвать простым прерыванием основной работы. Прерывание обычно осуществляется нажатием некоторой комбинации клавиш, например, Shift+Alt.
В состав резидентной системы вводятся программы и данные, которые хочется всегда иметь под рукой: это, например, калькулятор, автоматизированный календарь, записная книжка, часы с будильником, таблица ASCII-кодов, подпрограмма просмотра текстовых файлов, подпрограмма шифровки/дешифровки и др.
С целью экономии места в оперативной памяти резидентные системы обычно можно конфигурировать, устанавливая лишь некоторые, необходимые пользователю компоненты. При этом объем требуемой оперативной памяти колеблется от 15 до 150 Кбайт.
При вызове системы на экран почти мгновенно выводятся соответствующие рабочие окна, через которые пользователь общается с той, или иной подпрограммой резидентной системы. Закончив эту работу, пользователь повторным нажатием клавиш вызова закрывает резидентную систему. Ее окна исчезают с экрана, а прежнее изображение полностью восстанавливается, и продолжается нормальная работа прикладной программы.
Наиболее известны системы Sidekick, Pop-Up, Spotlight. В Вычислительном центре АН СССР реализована система Ассистент (автор - Г.Г.Гнездилова), в состав которой входят следующие подпрограммы:
- просмотр файлов,
- просмотр таблицы ASCII-кодов,
- установка будильника и выдача по нему звукового сигнала.
К категории резидентных сервисных систем можно отнести также макрогенераторы, которые позволяют приписывать отдельным клавишам и их комбинациям целые последовательности команд, часто вводимых с клавиатуры.
При нажатии запрограммированной таким образом клавиши происходит вызов соответствующего макроса и выполнение всех приписанных этой клавише команд.
Эти системы часто предоставляют дополнительные возможности, такие как переопределение кодов клавиш клавиатуры, автоматическая блокировка клавиатуры и очистка экрана дисплея при длительном отсутствии пользователя, шифровка/дешифровка файлов с целью их защиты от несанкционированного доступа и др.
Известные системы этого типа - Superkey, Smartkey, Prokey.
Таким образом, интегрированные системы разных типов дают возможность создания на персональном компьютере удобной операционной обстановки, объединяющей наиболее важные и часто используемые прикладные и сервисные программы. Во многих случаях на основе интегрированной системы можно создать законченное автоматизированное рабочее место, не привлекая больше никаких других программ. Это удобно для пользователей, так как обеспечивает единый способ взаимодействия со всеми компонентами, легкий и быстрый переход от одного вида работы к другому и обмен данными между разными подсистемами.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Брябрин. Программное обеспечение персональных ЭВМ. 1990
5.4. СИСТЕМЫ ПОДГОТОВКИ ТЕКСТОВ
Системы подготовки текстов или ТЕКСТОВЫЕ ПРОЦЕССОРЫ (Word Processors) представляют одну из самых популярных категорий прикладных систем на персональных компьютерах. Объясняется это вполне понятными причинами.
Во-первых, появление дешевых персональных компьютеров и принтеров стимулировало их применение в таких сферах, как делопроизводство, журналистика и др., где подготовка текстовой документации является главным видом деятельности.
Во-вторых, любая работа так или иначе бывает связана с составлением текстовых документов. Текстовые процессоры служат для подготовки самых разнообразных видов текстовой документации - статей, писем, технических описаний, приказов, отчетов и др. Практически любой документ, который обычно готовится на пишущей машинке, может быть создан с помощью текстового процессора; при этом появляется возможность многократно исправлять его отдельные фрагменты, не вводя заново весь текст, вносить в текст другие материалы, также приготовленные на компьютере, и, наконец, печатать на принтере в нужном количество экземпляров. Можно автоматически составлять оглавления документов, проверять правильность написания слов, составлять по заданным текстам словари и выполнять другие операции. Таким образом, обработка текстовых материалов на компьютере может выполняться не только быстрее и эффективнее, чем на пишущей машинке, но и предоставляет новые, недоступные ранее возможности.
Все это послужило стимулом к созданию множества текстовых процессоров, предоставляющих пользователям персональных компьютеров целый спектр возможностей - от составления текстов программ или обычных документов до систем коррекции грамматических ошибок, автоматического составления индексов, оглавлений, заполнения писем по формам и др.
Ниже приводится краткое описание двух систем подготовки текстов, разработанных в Вычислительном центре АН СССР,- АБВ и ЛЕКСИКОН. Эти системы предоставляют основные средства, необходимые для составления программ и подготовки текстовых материалов разного назначения.
ОСНОВНЫЕ ЧЕРТЫ СИСТЕМЫ ПОДГОТОВКИ ТЕКСТОВ АБВ. Система АБВ, разработанная в ВЦ АН СССР А.Б.Борковским, предназначена для работы с текстами программ и различными текстовыми документами. Система основана на использовании многооконного интерфейса. Текстовые файлы, обрабатываемые системой АБВ, могут содержать произвольную смесь русских и латинских букв. Редактор опирается на использование двух вспомогательных резидентных программ - драйвера кодовых таблиц ALFA.EXE и администратора дисплейных окон WM.EXE, которые поддерживают работу других систем, обращающихся к клавиатуре и дисплею.
В состав системы АБВ входит несколько программ (сокращенные имена этих программ, заданные латинскими буквами, могут быть изменены):
FF - ФАЙЛЕР - программа, поддерживающая работу с каталогами файловой системы, а также обеспечивающая простые операции редактирования текстовых файлов;
FE - ФОРМАТИРУЮЩИЙ РЕДАКТОР - программа, осуществляющая подготовку и печать текстовых документов в соответствии с задаваемой пользователем разметкой; по функциям эта программа является расширением файлера;
FM - ФОРМИРОВАТЕЛЬ ШРИФТОВ - программа, обеспечивающая создание новых шрифтов; во время работы этой программы происходит формирование рисунка каждой буквы, представляющего собой точечную матрицу.
При вызове любой из указанных программ и по ходу их работы на экране появляются дисплейные окна, в которые выводятся различные объекты - рабочие каталоги, тексты файлов, форматы, управляющие меню, информационные сообщения (подсказки). Окна могут иметь произвольное расположение на экране, они могут частично или полностью перекрывать друг друга. Пользователь может по своему усмотрению легко изменять положение, размеры и цвета всех окон.
Наличие нескольких рабочих окон очень удобно для работы. Например, в разных окнах можно независимо редактировать различные фрагменты программ. Можно в одном окне работать с текущим каталогом, а в других окнах - с текстовыми файлами из этого каталога. В отдельные окна можно выводить форматы - специальные разметочные структуры, задающие параметры абзацев и строк.
Для работы программ FF и FE необходимы вспомогательные файлы:
PARM.ABC - текущие параметры окон,
HELP-F.ABC - тексты подсказок.
Для печати на разных типах принтеров необходимы вспомогательные файлы с загружаемыми шрифтами:
EPSO812.ABC - шрифт для печати на принтере типа Epson FX (высота заглавных букв - 2.5мм);
EPS1612.ABC - шрифт для печати на принтере типа Epson FX (высота заглавных букв - 3.5мм);
TOSH2418.ABC - шрифт для печати на принтере типа Toshiba P1350 (высота заглавных букв-3.5мм).
Программные файлы имеют тип EXE и, следовательно, могут размещаться в текущем или в любом общедоступном каталоге. Вспомогательные файлы типа ABC берутся из текущего каталога или из каталога "операционной среды ABC", который должен быть заранее установлен командой SET. Такая установка обычно осуществляется командой в файле автозапуска AUTOEXEC.BAT. Вид этой команды:
set ABC = (имя каталога)
Запуск программ осуществляется, как обычно в ДОС, вводом командной строки, в которой указывается имя программы (FF, FE или FM) и, возможно, параметров. В качестве параметров можно указать имя одного или нескольких текстовых файлов, подлежащих редактированию; можно также указать имя рабочего каталога.
Если параметры не заданы, то в первое дисплейное окно выводится текущий каталог, и пользователь может дальше продолжать работу с этим каталогом или же выделить в нем один из файлов и, нажав клавишу "Исполнение", вывести текст этого файла в другое дисплейное окно с целью просмотра или редактирования.
Если указанное в качестве параметра имя не соответствует никакому файлу текущего каталога, то система создает новый файл с этим именем.
ТЕХНИКА РЕДАКТИРОВАНИЯ. При редактировании текста все команды задаются либо нажатием одной клавиши, либо одновременным нажатием клавиш Shift, Ctrl, Alt и какой-либо другой клавиши. В приводимой ниже сводке команд одновременное нажатие клавиш обозначается знаком +. Дадим краткую сводку основных команд редактирования.
ПЕРЕМЕЩЕНИЕ ПО ТЕКСТУ. Для перемещения по тексту используются клавиши управления курсором (рис.5.21). Простое действие этих клавиш обеспечивает перемещение на один символ вправо или влево и на одну строку вниз или вверх. Кроме того, возможны перемещения порциями по 16 строк. Наконец, возможны предельные перемещения по горизонтали или по вертикали. Для этого используется особая клавиша в центре клавиатуры управления курсором, на которой изображена цифра <5>. Нажатие этой клавиши действует как команда, имеющая смысл: "повторить следующую команду максимально возможное, число раз".
Рис.5.21. Клавиши управления курсором
Действие указанных клавиш:
<Вправо> - сдвиг курсора вправо на один символ,
<Влево> - сдвиг курсора влево на один символ,
<Вниз> - сдвиг курсора вниз на одну строку,
<Вверх> - сдвиг курсора вверх на одну строку,
<Home> - перевод курсора в начало текущей строки,
<End> - перевод курсора в конец текущей строки,
<PgUp> - перевод курсора на 16 строк вверх,
<PgDn> - перевод курсора на 16 строк вниз,
<5> <Вправо> - переход в конец текущей строки,
<5> <Влево> - переход в начало текущей строки,
<5> <Вниз> - переход в самый конец файла,
<5> (Вверх) - переход в самое начало файла.
Другие способы перемещения по тексту:
Plus - сдвиг курсора на слово вперед (вправо),
Minus - сдвиг курсора на слово назад (влево),
Shift+<Вверх> - двигать текст вниз, оставляя курсор на месте,
Shift+<Вниз> - двигать текст вверх, оставляя курсор на месте,
Tab - перемещение по заранее установленным отметкам табуляции;
F8 - запоминание текущей позиции курсора,
Shift+F8 - возврат к запомненной по F8 позиции курсора.
ОБРАБОТКА ФРАГМЕНТОВ. Редактор дает возможность выделять, а затем удалять и копировать различные фрагменты текста. Для этого сначала указываются границы фрагмента. Отмеченный фрагмент выделяется на экране негативным изображением, после чего его можно удалить, а затем вставить в то же или в другое место; можно также скопировать или переместить его, не удаляя со старого места. Фрагменты могут быть трех видов:
- СТРОКИ (одна или несколько) (выделяются клавишей F3),
- ЦЕПОЧКИ СИМВОЛОВ (выделяются клавишей F5),
- БЛОКИ (прямоугольные области) (выделяются клавишей F7).
Клавиша Alt, нажатая одновременно с одной из этих клавиш, отменяет выделение.
Если же выделение не отменено, то можно выполнять следующие манипуляции над фрагментами:
Ctrl+<F3 или F5 или F7> - удаление выделенного фрагмента,
Shift+<F3 или F5 или F7> - вставка ранее удаленного фрагмента па новое место,
Ctrl+F4 - перестановка фрагмента на новое место,
Shift+F4 - вставка выделенного фрагмента на новое место без его удаления со старого места.
Удаление символов и строк осуществляется командами;
Del - удалить символ над курсором,
BackSp - удалить символ перед курсором,
<5> Del - удалить от курсора до конца строки,
<5> BackSp - удалить от курсора до начала строки,
Ctrl+End - другой способ удаления конца строки,
Ctrl+F6 - удаление текущей строки.
Удаляемые строки и фрагменты запоминаются в буфере (не более 50 строк) и затем могут быть вставлены на старое или на новое место.
ВСТАВКА СИМВОЛОВ И СТРОК. По умолчанию любой символ вставляется в строку, отодвигая остальную часть строки вправо. Выходящая за пределы окна часть строки становится не видна (если не включено автоформатирование, при котором не умещающееся на строке "лишнее" слово переносится на следующую строку). Этот способ ввода может быть изменен следующими командами:
Shift+Ins - переход из режима вставки в режим замены и обратно; в режиме замены вводимые символы не раздвигают текст, а печатаются вместо ранее введенных символов,
F6 - вставка перед текущей строкой пустой строки,
Shift+F6 - вставка строки, удаленной посредством Ctrl+F6.
ПОИСК И ЗАМЕНА осуществляются командами:
Shift+F2 - задание образца поиска и строки для замены,
F2 - поиск очередного вхождения образца от текущей позиции курсора,
Ctrl+F2 - замена найденного вхождения образца на строку, заданную командой Shift+F2. Нажатие клавиши <5> перед этой командой вызывает глобальную подстановку от текущего положения курсора до конца текста.
ОБЩЕЕ УПРАВЛЕНИЕ:
F1 - вывод справочной информации (подсказки),
F10 - вызов управляющего меню,
Alt+0 - активизация служебного окна со списком рабочих окон,
Alt+<номер> - активизация рабочего окна с указанным номером <номер может изменяться от 1 до 30>,
Ctrl+F10 - удаление текущего рабочего окна,
Shift+<стрелки> - сдвиг текста в окне вправо или влево,
CapsLock - переключение алфавита из русского в латинский и обратно,
Shift - смена регистра для алфавитно-цифровых клавиш,
Shift+CapsLock - фиксация/отпускание верхнего регистра.
ЭКРАННОЕ ФОРМАТИРОВАНИЕ АБЗАЦЕВ. Форматирование абзацев включает задание левого и правого полей, отступа для первой строки, центрирование и размещение отметок для табуляции. По умолчанию форматирование текста выключено, но его можно включить, указав специальной командой имя файла с форматами. Форматы задаются особыми форматирующими линейками.
Линейка задает следующие параметры:
- левая граница строки,
- правая граница строки,
- позиция отступа первой строки абзаца,
- отметки табуляции,
- необходимость выравнивания по правому краю.
Любая линейка активизируется и начинает действовать на текущую и следующие строки, если нажать одновременно клавиши:
Alt+<имя линейки>
При этом происходит размещение текущей строки в рабочем окне согласно формату, описанному данной линейкой. После этого начинает действовать автоформатирование. Когда строка переполняет пространство между установленными линейкой полями, ее хвост перемещается на следующую строку и вызывает переформатирование оставшейся части абзаца. Это происходит при вводе текста, при вставке символов и при нажатии Backspace в начале строки.
Любой ранее отформатированный абзац можно переформатировать вновь с той же самой или другой линейкой. Для этого достаточно дать команду Alt+<имя линейки> или Alt+Z.
В каждом файле с форматами может быть несколько линеек. Редактируя этот файл обычными средствами, можно устанавливать необходимую разметку рабочих текстовых файлов.
ОБЩЕЕ УПРАВЛЕНИЕ РАБОТОЙ СИСТЕМЫ. При нажатии клавиши F10 в правом нижнем углу рабочего окна появляется вспомогательное окно с управляющим меню. В позициях этого меню указываются основные операции, которые можно выполнять над данным рабочим объектом, а в нижней строке экрана появляется текстовый комментарий к каждой позиции. Пользуясь вертикальными стрелками, в управляющем меню можно выбрать необходимую операцию, а нажатие клавиши "Исполнение" является сигналом к ее выполнению. Повторное нажатие F10 вновь активизирует текущее рабочее окно.
Для окна, в которое выведен текстовый файл, управляющее меню имеет следующий вид (справа приводятся строки комментариев):
Список окон ;Перейти в служебное окно "Список окон"
Сохранить ;Записать файл на диск
Еще окно ;Создать новое окно с тем же файлом
Имя ;Изменить имя данного файла
Цвет ;Изменить цвета окна
Выход ;Закончить работу
Очистить ;Уничтожить данное окно
ДОС ;Выполнить команду ДОС
Окно, в которое выведен каталог, снабжается управляющим меню следующего вида:
Список окон ;Перейти в служебное окно "Список окон"
Нов файл ;Создать новый файл
Нов каталог ;Создать новый подкаталог
Копировать ;Копировать отмеченные файлы
Удалить ;Удалить отмеченные файлы
Транслировать ;Транслировать отмеченные файлы
Цвет ;Изменить цвет окна
Выход ;Закончить работу
Очистить ;Уничтожить данное окно
Выбор той или иной позиции меню требует от пользователя дальнейших действий, в зависимости от характера выполняемой операции. Например, переход в служебное окно, содержащее список всех рабочих окон, выполняется без всяких дополнительных манипуляций. В служебном окне каждому рабочему окну - а их всего может быть до 30 - сопоставлена текстовая строка, указывающая имя выведенного в данное окно объекта. Из служебного окна можно перейти в любое рабочее окно, установив маркер в соответствующую позицию и нажав клавишу "Исполнение".
Сохранение файла на диске также происходит без дополнительных переспросов и манипуляций пользователя на клавиатуре. Следует иметь в виду, что при этом сохраняется не только новая, но и старая копия редактируемого файла. Эта копия образуется в файле типа ВАК, имя которого совпадает с именем редактируемого файла.
В ответ на выбор позиции "Цвет" система предлагает пользователю изменять цвет фона текущего окна и цвет знаков в нем путем нажатия клавиш со стрелками.
Некоторые операции, указанные во втором управляющем меню ("Копировать", "Удалить", "Транслировать"), имеют смысл лишь после предварительного выделения в рабочем окне строчек с именами файлов, подлежащих копированию, удалению или трансляции. Такое выделение выполняется, как и при редактировании обычных текстовых файлов, клавишей F3.
При выполнении операции "Выход", если перед этим редактировались и не были сохранены какие-либо текстовые файлы, у пользователя спрашивается, следует ли сохранять измененные файлы. При отрицательном ответе сохранения не происходит, а при положительном измененные или вновь созданные файлы записываются на диск, после чего происходит выход в ДОС (вызов командного процессора или возврат в другую программу, вызвавшую АБВ).
Кроме управления работой через меню, ряд действий может быть выполнен с помощью клавишных команд. Эти действия и соответствующие им клавишные команды, перечислены в нижней строке экрана. Так, для окна с каталогом перечислены следующие клавишные команды:
F2 - задание шаблона для селекции файлов в текущем каталоге,
F3 - отметка файлов с целью удаления, копирования или трансляции,
F5 - смена имени файла в текущем каталоге,
F6 - копирование отмеченных файлов в другие файлы или в каталог,
+ - запуск исполняемой программы (типа COM, EXE или BAT).
Для окна с обычным текстовым файлом доступны следующие часто используемые команды:
F2 - поиск по образцу, замена,
F3 - отметка, удаление, вставка строк,
F4 - перемещение, копирование,
F6 - вставка новой строки,
F8 - пометка строки для последующего возврата (с помощью Shift+F8 ).
При необходимости получить краткую справку (подсказку) о работе системы пользователь должен нажать клавишу F1. В ответ на это в отдельное окно выдается соответствующий текст; прочитав его, пользователь с помощью дополнительных клавишных команд может получить более детальную справочную информацию или, нажав Esc, продолжить прерванную работу.
ВЫВОД НА ПЕЧАТЬ. Печать текстовых файлов на принтере требует предварительного задания параметров печати. К основным параметрам относятся следующие:
- тип принтера,
- число строк на странице,
- интервал между строками (в точках),
- длина страницы (в сантиметрах),
- останов в конце страницы (да/нет),
- номер первой печатаемой страницы,
- размер левого поля (в знаках или сантиметрах),
- имя файла с загружаемым шрифтом.
Указанные параметры задаются в особой табличке, которая выводится системой перед началом печати. Все параметры по умолчанию имеют определенные значения, однако пользователь может менять их по своему усмотрению.
Разбиение текста на страницы может быть автоматическим (по заданному числу строк на страницу). Это соответствует так называемой МЯГКОЙ разбивке на страницы; в текст не вводится никаких пометок, означающих переход на новую страницу, а просто редактор считает строки при печати и осуществляет останов в конце каждой страницы или прокручивает бумагу до начала следующей страницы.
С другой стороны, пользователь может сам установить в нужных местах ЖЕСТКИЕ границы между страницами. Для этого служит специальная клавишная команда. После установки жесткой границы остальная часть текста подвергается мягкой разбивке, пока снова не встретится жесткая граница. Таким образом, пользователь может явно указывать строчки, с которых следует начинать отдельные страницы.
Останов в конце каждой страницы бывает необходим при использовании отдельных листов бумаги. Когда принтер остановится после печати очередной страницы, можно заправить новый лист бумаги, а затем, нажав клавишу, продолжить печать. Если же используется непрерывная бумажная лента, те можно задать непрерывную печать с автоматической протяжкой в конце каждой страницы на нужное число строк. Для этого нужно предварительно точно задать длину страничного листа.
Можно выводить на печать не весь текст, а только его часть - фрагмент, состоящий из выделенных строк. Это очень удобно при перепечатке отдельных страниц или фрагментов текста.
Таковы основные возможности редактора АБВ. Описанное состояние системы, разумеется, не является застывшим навечно. Данная система, как и все программное обеспечение для персональных компьютеров, очень быстро обновляется. Вполне возможно, что когда читатель возьмет в руки эту книгу, появятся новые, более совершенные версии описанной системы. Тем не менее общее знакомство с ее возможностями дает представление о том, как можно готовить текстовые документы на персональных компьютерах.
РЕДАКТОР ЛЕКСИКОН. В ВЦ АН СССР разработан еще один текстовый редактор - Лексикон. Автор разработки - Е.Н.Веселов. В этом редакторе, как и в АБВ, для представления редактируемых объектов используются дисплейные окна, которые можно размещать в любом месте на экране, менять их размеры и цвет. Рабочие окна идентифицируются цифрами от 1 до 9. В любой момент во время работы в редакторе возможен переход из текущего окна в любое другое. Это выполняется командой:
ALT+<номер окна>
Во время работы всегда доступна "подсказка" - поясняющий текст, который выводится на экран при нажатии клавиши F1. Другая функциональная клавиша - F10 - обеспечивает вызов главного управляющего меню, и через него выбор таких функций, как изменение параметров текущего окна, загрузка и сохранение файлов, очистка окна, вызов макрокоманд или выход из системы.
Так, например, изменение положения окон на экране, их размеров и цветов выполняются после выбора в главном меню позиции "Установить". При этом в двух верхних строчках экрана появляется подсказка, указывающая, что с помощью клавиш Ins, Del или Plus можно выбрать нужное действие и затем клавишами со стрелками произвести необходимые изменения параметров текущего окна.
Все изменения параметров окон могут быть запомнены при выходе из редактора, если пользователь ответит утвердительно на соответствующий вопрос системы.
МАНИПУЛЯЦИИ С ФРАГМЕНТАМИ ТЕКСТА. При выделении фрагмента текста, состоящего из одной или нескольких строк, используется, как и в АБВ, клавиша F3, но отменяется выделение клавишей F4, В пределах выделенного фрагмента большинство обычных операций редактирования заблокировано, зато действуют операции над целым фрагментом - удаление, вставка, копирование, сдвиг вправо-влево. Фрагменты можно переносить из одного окна в другое.
Двигать по горизонтали можно не только выделенный фрагмент, но и весь текст. Это полезно в том случае, если окно недостаточно широко или если текст выходит за пределы окна по горизонтали. Для сдвига служат клавиши:
F5 - весь текст в окне сдвигается влево,
F6 - весь текст в окне сдвигается вправо,
Ctrl+F5 - сдвиг фрагмента влево,
Ctrl+F6 - сдвиг фрагмента вправо.
Задание образцов для поиска и замены производится следующим образом. Прямо в рабочем поле, в любой строке, пишется выражение вида:
/искомая строка/и или
/искомая строка/s
Точно так же можно задать образец для замены:
/заменяющая строка/з или
/заменяющая строка/r
В данном примере тексты "искомая строка" и "заменяющая строка" представляют собой образцы для поиска и замены, а знаки / играют роль ограничителей. Буква и или s является кодом команды "искать", а буква з или r - кодом команды "заменить".
Под действием клавиши F2 заданные образцы запоминаются в буфере и убираются из рабочего поля. Собственно поиск и последующая замена инициируются командами:
Ctrl+F1 - поиск вхождения образца,
Ctrl+F2 - замена образца.
Глобальная замена по всему тексту осуществляется, если перед нажатием Ctrl+F2 нажать клавишу-повторитель <5>.
ОСОБЕННОСТИ ЭКРАННОГО ФОРМАТИРОВАНИЯ. Форматирование вводимого текста или выделенных фрагментов определяется состоянием (режимом работы) редактора. В режиме подготовки документов, который обозначается словом ДОК, можно устанавливать левую и правую границы текста и отступ для красной строки. В режиме работы с простым текстом (который обозначается словом ТЕКСТ) формат строки не устанавливается. Признаком работы в том или ином режиме является слово ДОК или ТЕКСТ, высвечиваемое в специальной рамке на верхней границе рабочего окна. В этой же рамке высвечиваются признаки включения выравнивания по правому краю текста (символ ВЫРАВ) и автоматического переноса слов по слогам (символ "-"). Кроме того, в этой же рамке высвечивается имя рабочего файла, общее число строк в нем, номер текущей строки и позиции в ней, признак выбранного алфавита (русского или латинского) и текущая дата. Переключение режимов форматирования осуществляется следующими комбинациями клавиш:
Shift+F10 - переключение между режимами ДОК и ТЕКСТ,
Shift+F6 - включение/выключение автоматического переноса слов,
Shift+F4 - включение/выключение автоматического выравнивания текста по правому краю.
Установка левой и правой границ текста и отступа для красной строки в режиме ДОК осуществляется по текущему положению курсора клавишами:
F7 - фиксация левой границы текста,
Alt+F7 - фиксация правой границы текста,
Ctrl+F7 - фиксация отступа для красной строки.
Другие важные функциональные клавиши:
F9 - переключение алфавита (русск./лат,),
Alt+F9 - переключение языка подсказок (русск./англ.),
Shift+F9 - переключение режима экрана (текстов./графич.),
Ctrl+F9 - выход в ДОС (с возвратом по команде EXIT).
Форматирование абзацев состоит в выравнивании строк слева и справа непосредственно при вводе текста. Это достигается тем, что при пересечении курсором правой границы в момент ввода очередного символа происходит автоматический перенос последнего слова на следующую строку и вставка пробелов между словами текущей строки, чтобы выровнять ее по правому краю. При переносе слова делятся на слоги по общим правилам.
При вводе нового текста нажатие клавиши "Исполнение" автоматически завершает текущий абзац и переводит курсор в начало первой строки нового, пока не созданного абзаца.
Повторное переформатирование абзаца осуществляется командой Ctrl+F8.
Таким образом, в редакторе Лексикон форматирование производится не на основе специальных линеек, как в редакторе АБВ, а прямо в рабочем окне на готовом или вновь вводимом тексте.
Редактор Лексикон удобен для редактирования программ, так как получающийся в результате файл в точности соответствует тому, что программист видит на экране, в отличие от АБВ, где файл кроме основного текста, может содержать еще и ссылки на форматирующие линейки. В целом обе рассмотренные системы подготовки текстов полностью удовлетворяют потребности в составлении и редактировании программ и текстовых документов средней сложности.
ЧТО ЕЩЕ МОЖНО ДЕЛАТЬ С ПОМОЩЬЮ ТЕКСТОВЫХ ПРОЦЕССОРОВ? Ввиду того, что для персональных компьютеров уже разработано и продолжает разрабатываться много новых текстовых процессоров, имеет смысл выделить некоторые параметры и функциональные характеристики, по которым их можно было бы сопоставлять друг с другом.
Наибольшее значение имеет набор функциональных возможностей, предоставляемых тем или иным текстовым процессором. К расширенному набору возможностей относятся следующие.
Редактирование текста на экране:
- перемещение по строкам, абзацам, страницам, в конец и в начало текста, запоминание позиций и возврат к ним;
- выделение фрагментов, состоящих из символов, слов или строк, их удаление, вставка, копирование;
- поиск вхождений образцов, их однократная или глобальная замена;
- форматирование отдельных строк и абзацев - выравнивание по левому/правому краю, задание отступа для первой строки абзаца, задание полей, задание переносов слов;
- разбивка на страницы - автоматическая или ручная установка границ между страницами;
- выделение заголовков, их центрирование, автоматическая или ручная нумерация.
Разметка/выделение отдельных элементов текста:
- изменение шрифта отдельных слов, строк, абзацев;
- подчеркивание, разрядка слов, усиление яркости (жирности);
- введение верхних и нижних индексов.
Введение в текст "посторонних", нетекстовых фрагментов:
- рисунков;
- математических выражений;
- химических формул.
Взаимодействие с файловой системой:
- сохранение/загрузка текстовых файлов;
- выдача каталога файлов и выбор из него файлов для работы;
- слияние текстов из разных файлов, взаимные переносы фрагментов текстов между разными файлами.
Вывод текстов на печатающие устройства разных типов с заданием параметров печати:
- типа принтера;
- размера страницы;
- левого поля и длины строки или левого и правого поля;
- интервала между строками;
- порядка нумерации страниц;
- колонтитулов - стандартных надписей на верхнем и нижнем поле каждой страницы;
- необходимости печати в два столбца;
- порядка работы принтера по окончании каждой страницы (ждать/не ждать).
Далеко не все из указанных возможностей нужны в одинаковой мере для всех видов работы с текстами. Например, при использовании текстового процессора преимущественно для составления программ на языках высокого уровня совсем не нужны средства форматирования и выделения элементов, в то время как для литературной работы эти средства крайне важны. Подготовка и печать колонтитулов бывает нужна в основном при работе с документами. В то же время предоставление пользователям максимума возможностей естественно увеличивает размеры программы и усложняет работу с текстовым процессором.
При оценке удобства работы с тем или иным текстовым процессором имеют значение следующие параметры:
- количество необходимых нажатий клавиш для выполнения той или иной операции, которое может колебаться от 1-2 до 20-30;
- скорость отображения текста на экране при начальной загрузке, при разных способах перемещения по тексту, а также при удалении, вставке и копировании фрагментов, что может занимать от нескольких секунд до нескольких десятков секунд;
- удобство вызова поясняющих текстов - подсказок, их полнота, структурирование, скорость вывода на экран;
- возможность получения "чистого" текста, не содержащего никаких управляющих или разметочных символов;
- ограничения на длину текстов;
- количество одновременно обрабатываемых файлов;
- возможность введения новых шрифтов и алфавитов;
- общий объем оперативной памяти, занимаемой текстовым процессором.
Указанные параметры по-разному оцениваются пользователями. Для всех пользователей важно максимальное быстродействие системы, которое определяется количеством необходимых нажатий клавиш при разных операциях и скоростью отображения текста на экране. При этом для некоторых пользователей принципиально важно иметь возможность одновременной работы со многими файлами или обрабатывать тексты на разных языках.
В связи с обработкой текстов на разных языках следует отметить, что проблема здесь может заключаться не только в замене одного алфавита на другой. Некоторые языки требуют другого алгоритма ввода текста. Например, в арабском языке ввод осуществляется справа налево; кроме того, отдельные буквы могут изменяться, в зависимости от того, употребляются ли они в начале, в конце или в середине слова. Работа с иероглифическими текстами (китайским, японским) еще более затруднена.
Большое значение имеет набор дополнительных услуг, предоставляемых либо самими текстовыми процессорами, либо сопровождающими сервисными программами. К таким услугам относятся, в частности:
- проверка и коррекция орфографических ошибок путем сопоставления каждого слова рабочего текста со словарем; при обнаружении расхождений можно заменять в тексте неправильно написанные слова или пополнять словарь новыми словами;
- автоматическая индексация, т.е. выделение из текста слов по определенному критерию и занесение их в упорядоченные индексные списки;
- автоматическое составление оглавления по заданному тексту;
- подготовка текста для фотонаборного автомата, обеспечивающего высококачественное воспроизводство документа в большом количестве экземпляров.
Для коррекции ошибок необходимы заранее составленные словари. В некоторых системах словари содержат от 50 до 100 тысяч слов (для английского языка). Для русского языка и других флективных языков простым словарем ограничиваться нельзя; необходимо использование морфологического анализа, учитывающего различные формы одних и тех же слов. Специально организованный словарь может использоваться не только для коррекции ошибок, но и для подстрочного перевода с одного языка на другой.
Одно из новых направлений развития текстовых процессоров связано с обработкой структурных текстов. В структурном тексте (или гипертексте) любой фрагмент, например, отдельное слово, абзац или раздел, может иметь несколько версий; он может раскрываться "в глубину", где содержится его другая трактовка или представление. На структурный текст можно взглянуть "издали" и увидеть только его общую форму, например, абзацную структуру, а можно рассмотреть внимательно вплоть до отдельных слов и символов. Фрагментом структурного текста может быть ссылка на рисунок или на математическую или химическую формулу, которую можно раскрыть и рассмотреть и ее естественном изображении.
Работа со структурными текстами может быть очень большим подспорьем при подготовке документации, при разработке программ на языках высокого уровня, в литературной работе. Появление дисплеев с высокой разрешающей способностью позволит получить еще больше преимуществ при работе со структурными текстами. В этом случае можно будет на ходу изменять начертание отдельных литер и немедленно получать текст с измененными символами. При использовании дисплеев с высокой разрешающей способностью легко сочетать чисто текстовое представление с графическим - формулами, рисунками, графиками. Таким образом, системы обработки текстов могут предоставлять самые разнообразные возможности для работы с документацией. Диапазон таких систем очень широк - от простых экранных редакторов, встраиваемых в интегрированные системы, до сложных текстовых процессоров, предоставляющих пользователям различные интеллектуальные услуги.
Системы подготовки текстов или ТЕКСТОВЫЕ ПРОЦЕССОРЫ (Word Processors) представляют одну из самых популярных категорий прикладных систем на персональных компьютерах. Объясняется это вполне понятными причинами.
Во-первых, появление дешевых персональных компьютеров и принтеров стимулировало их применение в таких сферах, как делопроизводство, журналистика и др., где подготовка текстовой документации является главным видом деятельности.
Во-вторых, любая работа так или иначе бывает связана с составлением текстовых документов. Текстовые процессоры служат для подготовки самых разнообразных видов текстовой документации - статей, писем, технических описаний, приказов, отчетов и др. Практически любой документ, который обычно готовится на пишущей машинке, может быть создан с помощью текстового процессора; при этом появляется возможность многократно исправлять его отдельные фрагменты, не вводя заново весь текст, вносить в текст другие материалы, также приготовленные на компьютере, и, наконец, печатать на принтере в нужном количество экземпляров. Можно автоматически составлять оглавления документов, проверять правильность написания слов, составлять по заданным текстам словари и выполнять другие операции. Таким образом, обработка текстовых материалов на компьютере может выполняться не только быстрее и эффективнее, чем на пишущей машинке, но и предоставляет новые, недоступные ранее возможности.
Все это послужило стимулом к созданию множества текстовых процессоров, предоставляющих пользователям персональных компьютеров целый спектр возможностей - от составления текстов программ или обычных документов до систем коррекции грамматических ошибок, автоматического составления индексов, оглавлений, заполнения писем по формам и др.
Ниже приводится краткое описание двух систем подготовки текстов, разработанных в Вычислительном центре АН СССР,- АБВ и ЛЕКСИКОН. Эти системы предоставляют основные средства, необходимые для составления программ и подготовки текстовых материалов разного назначения.
ОСНОВНЫЕ ЧЕРТЫ СИСТЕМЫ ПОДГОТОВКИ ТЕКСТОВ АБВ. Система АБВ, разработанная в ВЦ АН СССР А.Б.Борковским, предназначена для работы с текстами программ и различными текстовыми документами. Система основана на использовании многооконного интерфейса. Текстовые файлы, обрабатываемые системой АБВ, могут содержать произвольную смесь русских и латинских букв. Редактор опирается на использование двух вспомогательных резидентных программ - драйвера кодовых таблиц ALFA.EXE и администратора дисплейных окон WM.EXE, которые поддерживают работу других систем, обращающихся к клавиатуре и дисплею.
В состав системы АБВ входит несколько программ (сокращенные имена этих программ, заданные латинскими буквами, могут быть изменены):
FF - ФАЙЛЕР - программа, поддерживающая работу с каталогами файловой системы, а также обеспечивающая простые операции редактирования текстовых файлов;
FE - ФОРМАТИРУЮЩИЙ РЕДАКТОР - программа, осуществляющая подготовку и печать текстовых документов в соответствии с задаваемой пользователем разметкой; по функциям эта программа является расширением файлера;
FM - ФОРМИРОВАТЕЛЬ ШРИФТОВ - программа, обеспечивающая создание новых шрифтов; во время работы этой программы происходит формирование рисунка каждой буквы, представляющего собой точечную матрицу.
При вызове любой из указанных программ и по ходу их работы на экране появляются дисплейные окна, в которые выводятся различные объекты - рабочие каталоги, тексты файлов, форматы, управляющие меню, информационные сообщения (подсказки). Окна могут иметь произвольное расположение на экране, они могут частично или полностью перекрывать друг друга. Пользователь может по своему усмотрению легко изменять положение, размеры и цвета всех окон.
Наличие нескольких рабочих окон очень удобно для работы. Например, в разных окнах можно независимо редактировать различные фрагменты программ. Можно в одном окне работать с текущим каталогом, а в других окнах - с текстовыми файлами из этого каталога. В отдельные окна можно выводить форматы - специальные разметочные структуры, задающие параметры абзацев и строк.
Для работы программ FF и FE необходимы вспомогательные файлы:
PARM.ABC - текущие параметры окон,
HELP-F.ABC - тексты подсказок.
Для печати на разных типах принтеров необходимы вспомогательные файлы с загружаемыми шрифтами:
EPSO812.ABC - шрифт для печати на принтере типа Epson FX (высота заглавных букв - 2.5мм);
EPS1612.ABC - шрифт для печати на принтере типа Epson FX (высота заглавных букв - 3.5мм);
TOSH2418.ABC - шрифт для печати на принтере типа Toshiba P1350 (высота заглавных букв-3.5мм).
Программные файлы имеют тип EXE и, следовательно, могут размещаться в текущем или в любом общедоступном каталоге. Вспомогательные файлы типа ABC берутся из текущего каталога или из каталога "операционной среды ABC", который должен быть заранее установлен командой SET. Такая установка обычно осуществляется командой в файле автозапуска AUTOEXEC.BAT. Вид этой команды:
set ABC = (имя каталога)
Запуск программ осуществляется, как обычно в ДОС, вводом командной строки, в которой указывается имя программы (FF, FE или FM) и, возможно, параметров. В качестве параметров можно указать имя одного или нескольких текстовых файлов, подлежащих редактированию; можно также указать имя рабочего каталога.
Если параметры не заданы, то в первое дисплейное окно выводится текущий каталог, и пользователь может дальше продолжать работу с этим каталогом или же выделить в нем один из файлов и, нажав клавишу "Исполнение", вывести текст этого файла в другое дисплейное окно с целью просмотра или редактирования.
Если указанное в качестве параметра имя не соответствует никакому файлу текущего каталога, то система создает новый файл с этим именем.
ТЕХНИКА РЕДАКТИРОВАНИЯ. При редактировании текста все команды задаются либо нажатием одной клавиши, либо одновременным нажатием клавиш Shift, Ctrl, Alt и какой-либо другой клавиши. В приводимой ниже сводке команд одновременное нажатие клавиш обозначается знаком +. Дадим краткую сводку основных команд редактирования.
ПЕРЕМЕЩЕНИЕ ПО ТЕКСТУ. Для перемещения по тексту используются клавиши управления курсором (рис.5.21). Простое действие этих клавиш обеспечивает перемещение на один символ вправо или влево и на одну строку вниз или вверх. Кроме того, возможны перемещения порциями по 16 строк. Наконец, возможны предельные перемещения по горизонтали или по вертикали. Для этого используется особая клавиша в центре клавиатуры управления курсором, на которой изображена цифра <5>. Нажатие этой клавиши действует как команда, имеющая смысл: "повторить следующую команду максимально возможное, число раз".
Рис.5.21. Клавиши управления курсором
Действие указанных клавиш:
<Вправо> - сдвиг курсора вправо на один символ,
<Влево> - сдвиг курсора влево на один символ,
<Вниз> - сдвиг курсора вниз на одну строку,
<Вверх> - сдвиг курсора вверх на одну строку,
<Home> - перевод курсора в начало текущей строки,
<End> - перевод курсора в конец текущей строки,
<PgUp> - перевод курсора на 16 строк вверх,
<PgDn> - перевод курсора на 16 строк вниз,
<5> <Вправо> - переход в конец текущей строки,
<5> <Влево> - переход в начало текущей строки,
<5> <Вниз> - переход в самый конец файла,
<5> (Вверх) - переход в самое начало файла.
Другие способы перемещения по тексту:
Plus - сдвиг курсора на слово вперед (вправо),
Minus - сдвиг курсора на слово назад (влево),
Shift+<Вверх> - двигать текст вниз, оставляя курсор на месте,
Shift+<Вниз> - двигать текст вверх, оставляя курсор на месте,
Tab - перемещение по заранее установленным отметкам табуляции;
F8 - запоминание текущей позиции курсора,
Shift+F8 - возврат к запомненной по F8 позиции курсора.
ОБРАБОТКА ФРАГМЕНТОВ. Редактор дает возможность выделять, а затем удалять и копировать различные фрагменты текста. Для этого сначала указываются границы фрагмента. Отмеченный фрагмент выделяется на экране негативным изображением, после чего его можно удалить, а затем вставить в то же или в другое место; можно также скопировать или переместить его, не удаляя со старого места. Фрагменты могут быть трех видов:
- СТРОКИ (одна или несколько) (выделяются клавишей F3),
- ЦЕПОЧКИ СИМВОЛОВ (выделяются клавишей F5),
- БЛОКИ (прямоугольные области) (выделяются клавишей F7).
Клавиша Alt, нажатая одновременно с одной из этих клавиш, отменяет выделение.
Если же выделение не отменено, то можно выполнять следующие манипуляции над фрагментами:
Ctrl+<F3 или F5 или F7> - удаление выделенного фрагмента,
Shift+<F3 или F5 или F7> - вставка ранее удаленного фрагмента па новое место,
Ctrl+F4 - перестановка фрагмента на новое место,
Shift+F4 - вставка выделенного фрагмента на новое место без его удаления со старого места.
Удаление символов и строк осуществляется командами;
Del - удалить символ над курсором,
BackSp - удалить символ перед курсором,
<5> Del - удалить от курсора до конца строки,
<5> BackSp - удалить от курсора до начала строки,
Ctrl+End - другой способ удаления конца строки,
Ctrl+F6 - удаление текущей строки.
Удаляемые строки и фрагменты запоминаются в буфере (не более 50 строк) и затем могут быть вставлены на старое или на новое место.
ВСТАВКА СИМВОЛОВ И СТРОК. По умолчанию любой символ вставляется в строку, отодвигая остальную часть строки вправо. Выходящая за пределы окна часть строки становится не видна (если не включено автоформатирование, при котором не умещающееся на строке "лишнее" слово переносится на следующую строку). Этот способ ввода может быть изменен следующими командами:
Shift+Ins - переход из режима вставки в режим замены и обратно; в режиме замены вводимые символы не раздвигают текст, а печатаются вместо ранее введенных символов,
F6 - вставка перед текущей строкой пустой строки,
Shift+F6 - вставка строки, удаленной посредством Ctrl+F6.
ПОИСК И ЗАМЕНА осуществляются командами:
Shift+F2 - задание образца поиска и строки для замены,
F2 - поиск очередного вхождения образца от текущей позиции курсора,
Ctrl+F2 - замена найденного вхождения образца на строку, заданную командой Shift+F2. Нажатие клавиши <5> перед этой командой вызывает глобальную подстановку от текущего положения курсора до конца текста.
ОБЩЕЕ УПРАВЛЕНИЕ:
F1 - вывод справочной информации (подсказки),
F10 - вызов управляющего меню,
Alt+0 - активизация служебного окна со списком рабочих окон,
Alt+<номер> - активизация рабочего окна с указанным номером <номер может изменяться от 1 до 30>,
Ctrl+F10 - удаление текущего рабочего окна,
Shift+<стрелки> - сдвиг текста в окне вправо или влево,
CapsLock - переключение алфавита из русского в латинский и обратно,
Shift - смена регистра для алфавитно-цифровых клавиш,
Shift+CapsLock - фиксация/отпускание верхнего регистра.
ЭКРАННОЕ ФОРМАТИРОВАНИЕ АБЗАЦЕВ. Форматирование абзацев включает задание левого и правого полей, отступа для первой строки, центрирование и размещение отметок для табуляции. По умолчанию форматирование текста выключено, но его можно включить, указав специальной командой имя файла с форматами. Форматы задаются особыми форматирующими линейками.
Линейка задает следующие параметры:
- левая граница строки,
- правая граница строки,
- позиция отступа первой строки абзаца,
- отметки табуляции,
- необходимость выравнивания по правому краю.
Любая линейка активизируется и начинает действовать на текущую и следующие строки, если нажать одновременно клавиши:
Alt+<имя линейки>
При этом происходит размещение текущей строки в рабочем окне согласно формату, описанному данной линейкой. После этого начинает действовать автоформатирование. Когда строка переполняет пространство между установленными линейкой полями, ее хвост перемещается на следующую строку и вызывает переформатирование оставшейся части абзаца. Это происходит при вводе текста, при вставке символов и при нажатии Backspace в начале строки.
Любой ранее отформатированный абзац можно переформатировать вновь с той же самой или другой линейкой. Для этого достаточно дать команду Alt+<имя линейки> или Alt+Z.
В каждом файле с форматами может быть несколько линеек. Редактируя этот файл обычными средствами, можно устанавливать необходимую разметку рабочих текстовых файлов.
ОБЩЕЕ УПРАВЛЕНИЕ РАБОТОЙ СИСТЕМЫ. При нажатии клавиши F10 в правом нижнем углу рабочего окна появляется вспомогательное окно с управляющим меню. В позициях этого меню указываются основные операции, которые можно выполнять над данным рабочим объектом, а в нижней строке экрана появляется текстовый комментарий к каждой позиции. Пользуясь вертикальными стрелками, в управляющем меню можно выбрать необходимую операцию, а нажатие клавиши "Исполнение" является сигналом к ее выполнению. Повторное нажатие F10 вновь активизирует текущее рабочее окно.
Для окна, в которое выведен текстовый файл, управляющее меню имеет следующий вид (справа приводятся строки комментариев):
Список окон ;Перейти в служебное окно "Список окон"
Сохранить ;Записать файл на диск
Еще окно ;Создать новое окно с тем же файлом
Имя ;Изменить имя данного файла
Цвет ;Изменить цвета окна
Выход ;Закончить работу
Очистить ;Уничтожить данное окно
ДОС ;Выполнить команду ДОС
Окно, в которое выведен каталог, снабжается управляющим меню следующего вида:
Список окон ;Перейти в служебное окно "Список окон"
Нов файл ;Создать новый файл
Нов каталог ;Создать новый подкаталог
Копировать ;Копировать отмеченные файлы
Удалить ;Удалить отмеченные файлы
Транслировать ;Транслировать отмеченные файлы
Цвет ;Изменить цвет окна
Выход ;Закончить работу
Очистить ;Уничтожить данное окно
Выбор той или иной позиции меню требует от пользователя дальнейших действий, в зависимости от характера выполняемой операции. Например, переход в служебное окно, содержащее список всех рабочих окон, выполняется без всяких дополнительных манипуляций. В служебном окне каждому рабочему окну - а их всего может быть до 30 - сопоставлена текстовая строка, указывающая имя выведенного в данное окно объекта. Из служебного окна можно перейти в любое рабочее окно, установив маркер в соответствующую позицию и нажав клавишу "Исполнение".
Сохранение файла на диске также происходит без дополнительных переспросов и манипуляций пользователя на клавиатуре. Следует иметь в виду, что при этом сохраняется не только новая, но и старая копия редактируемого файла. Эта копия образуется в файле типа ВАК, имя которого совпадает с именем редактируемого файла.
В ответ на выбор позиции "Цвет" система предлагает пользователю изменять цвет фона текущего окна и цвет знаков в нем путем нажатия клавиш со стрелками.
Некоторые операции, указанные во втором управляющем меню ("Копировать", "Удалить", "Транслировать"), имеют смысл лишь после предварительного выделения в рабочем окне строчек с именами файлов, подлежащих копированию, удалению или трансляции. Такое выделение выполняется, как и при редактировании обычных текстовых файлов, клавишей F3.
При выполнении операции "Выход", если перед этим редактировались и не были сохранены какие-либо текстовые файлы, у пользователя спрашивается, следует ли сохранять измененные файлы. При отрицательном ответе сохранения не происходит, а при положительном измененные или вновь созданные файлы записываются на диск, после чего происходит выход в ДОС (вызов командного процессора или возврат в другую программу, вызвавшую АБВ).
Кроме управления работой через меню, ряд действий может быть выполнен с помощью клавишных команд. Эти действия и соответствующие им клавишные команды, перечислены в нижней строке экрана. Так, для окна с каталогом перечислены следующие клавишные команды:
F2 - задание шаблона для селекции файлов в текущем каталоге,
F3 - отметка файлов с целью удаления, копирования или трансляции,
F5 - смена имени файла в текущем каталоге,
F6 - копирование отмеченных файлов в другие файлы или в каталог,
+ - запуск исполняемой программы (типа COM, EXE или BAT).
Для окна с обычным текстовым файлом доступны следующие часто используемые команды:
F2 - поиск по образцу, замена,
F3 - отметка, удаление, вставка строк,
F4 - перемещение, копирование,
F6 - вставка новой строки,
F8 - пометка строки для последующего возврата (с помощью Shift+F8 ).
При необходимости получить краткую справку (подсказку) о работе системы пользователь должен нажать клавишу F1. В ответ на это в отдельное окно выдается соответствующий текст; прочитав его, пользователь с помощью дополнительных клавишных команд может получить более детальную справочную информацию или, нажав Esc, продолжить прерванную работу.
ВЫВОД НА ПЕЧАТЬ. Печать текстовых файлов на принтере требует предварительного задания параметров печати. К основным параметрам относятся следующие:
- тип принтера,
- число строк на странице,
- интервал между строками (в точках),
- длина страницы (в сантиметрах),
- останов в конце страницы (да/нет),
- номер первой печатаемой страницы,
- размер левого поля (в знаках или сантиметрах),
- имя файла с загружаемым шрифтом.
Указанные параметры задаются в особой табличке, которая выводится системой перед началом печати. Все параметры по умолчанию имеют определенные значения, однако пользователь может менять их по своему усмотрению.
Разбиение текста на страницы может быть автоматическим (по заданному числу строк на страницу). Это соответствует так называемой МЯГКОЙ разбивке на страницы; в текст не вводится никаких пометок, означающих переход на новую страницу, а просто редактор считает строки при печати и осуществляет останов в конце каждой страницы или прокручивает бумагу до начала следующей страницы.
С другой стороны, пользователь может сам установить в нужных местах ЖЕСТКИЕ границы между страницами. Для этого служит специальная клавишная команда. После установки жесткой границы остальная часть текста подвергается мягкой разбивке, пока снова не встретится жесткая граница. Таким образом, пользователь может явно указывать строчки, с которых следует начинать отдельные страницы.
Останов в конце каждой страницы бывает необходим при использовании отдельных листов бумаги. Когда принтер остановится после печати очередной страницы, можно заправить новый лист бумаги, а затем, нажав клавишу, продолжить печать. Если же используется непрерывная бумажная лента, те можно задать непрерывную печать с автоматической протяжкой в конце каждой страницы на нужное число строк. Для этого нужно предварительно точно задать длину страничного листа.
Можно выводить на печать не весь текст, а только его часть - фрагмент, состоящий из выделенных строк. Это очень удобно при перепечатке отдельных страниц или фрагментов текста.
Таковы основные возможности редактора АБВ. Описанное состояние системы, разумеется, не является застывшим навечно. Данная система, как и все программное обеспечение для персональных компьютеров, очень быстро обновляется. Вполне возможно, что когда читатель возьмет в руки эту книгу, появятся новые, более совершенные версии описанной системы. Тем не менее общее знакомство с ее возможностями дает представление о том, как можно готовить текстовые документы на персональных компьютерах.
РЕДАКТОР ЛЕКСИКОН. В ВЦ АН СССР разработан еще один текстовый редактор - Лексикон. Автор разработки - Е.Н.Веселов. В этом редакторе, как и в АБВ, для представления редактируемых объектов используются дисплейные окна, которые можно размещать в любом месте на экране, менять их размеры и цвет. Рабочие окна идентифицируются цифрами от 1 до 9. В любой момент во время работы в редакторе возможен переход из текущего окна в любое другое. Это выполняется командой:
ALT+<номер окна>
Во время работы всегда доступна "подсказка" - поясняющий текст, который выводится на экран при нажатии клавиши F1. Другая функциональная клавиша - F10 - обеспечивает вызов главного управляющего меню, и через него выбор таких функций, как изменение параметров текущего окна, загрузка и сохранение файлов, очистка окна, вызов макрокоманд или выход из системы.
Так, например, изменение положения окон на экране, их размеров и цветов выполняются после выбора в главном меню позиции "Установить". При этом в двух верхних строчках экрана появляется подсказка, указывающая, что с помощью клавиш Ins, Del или Plus можно выбрать нужное действие и затем клавишами со стрелками произвести необходимые изменения параметров текущего окна.
Все изменения параметров окон могут быть запомнены при выходе из редактора, если пользователь ответит утвердительно на соответствующий вопрос системы.
МАНИПУЛЯЦИИ С ФРАГМЕНТАМИ ТЕКСТА. При выделении фрагмента текста, состоящего из одной или нескольких строк, используется, как и в АБВ, клавиша F3, но отменяется выделение клавишей F4, В пределах выделенного фрагмента большинство обычных операций редактирования заблокировано, зато действуют операции над целым фрагментом - удаление, вставка, копирование, сдвиг вправо-влево. Фрагменты можно переносить из одного окна в другое.
Двигать по горизонтали можно не только выделенный фрагмент, но и весь текст. Это полезно в том случае, если окно недостаточно широко или если текст выходит за пределы окна по горизонтали. Для сдвига служат клавиши:
F5 - весь текст в окне сдвигается влево,
F6 - весь текст в окне сдвигается вправо,
Ctrl+F5 - сдвиг фрагмента влево,
Ctrl+F6 - сдвиг фрагмента вправо.
Задание образцов для поиска и замены производится следующим образом. Прямо в рабочем поле, в любой строке, пишется выражение вида:
/искомая строка/и или
/искомая строка/s
Точно так же можно задать образец для замены:
/заменяющая строка/з или
/заменяющая строка/r
В данном примере тексты "искомая строка" и "заменяющая строка" представляют собой образцы для поиска и замены, а знаки / играют роль ограничителей. Буква и или s является кодом команды "искать", а буква з или r - кодом команды "заменить".
Под действием клавиши F2 заданные образцы запоминаются в буфере и убираются из рабочего поля. Собственно поиск и последующая замена инициируются командами:
Ctrl+F1 - поиск вхождения образца,
Ctrl+F2 - замена образца.
Глобальная замена по всему тексту осуществляется, если перед нажатием Ctrl+F2 нажать клавишу-повторитель <5>.
ОСОБЕННОСТИ ЭКРАННОГО ФОРМАТИРОВАНИЯ. Форматирование вводимого текста или выделенных фрагментов определяется состоянием (режимом работы) редактора. В режиме подготовки документов, который обозначается словом ДОК, можно устанавливать левую и правую границы текста и отступ для красной строки. В режиме работы с простым текстом (который обозначается словом ТЕКСТ) формат строки не устанавливается. Признаком работы в том или ином режиме является слово ДОК или ТЕКСТ, высвечиваемое в специальной рамке на верхней границе рабочего окна. В этой же рамке высвечиваются признаки включения выравнивания по правому краю текста (символ ВЫРАВ) и автоматического переноса слов по слогам (символ "-"). Кроме того, в этой же рамке высвечивается имя рабочего файла, общее число строк в нем, номер текущей строки и позиции в ней, признак выбранного алфавита (русского или латинского) и текущая дата. Переключение режимов форматирования осуществляется следующими комбинациями клавиш:
Shift+F10 - переключение между режимами ДОК и ТЕКСТ,
Shift+F6 - включение/выключение автоматического переноса слов,
Shift+F4 - включение/выключение автоматического выравнивания текста по правому краю.
Установка левой и правой границ текста и отступа для красной строки в режиме ДОК осуществляется по текущему положению курсора клавишами:
F7 - фиксация левой границы текста,
Alt+F7 - фиксация правой границы текста,
Ctrl+F7 - фиксация отступа для красной строки.
Другие важные функциональные клавиши:
F9 - переключение алфавита (русск./лат,),
Alt+F9 - переключение языка подсказок (русск./англ.),
Shift+F9 - переключение режима экрана (текстов./графич.),
Ctrl+F9 - выход в ДОС (с возвратом по команде EXIT).
Форматирование абзацев состоит в выравнивании строк слева и справа непосредственно при вводе текста. Это достигается тем, что при пересечении курсором правой границы в момент ввода очередного символа происходит автоматический перенос последнего слова на следующую строку и вставка пробелов между словами текущей строки, чтобы выровнять ее по правому краю. При переносе слова делятся на слоги по общим правилам.
При вводе нового текста нажатие клавиши "Исполнение" автоматически завершает текущий абзац и переводит курсор в начало первой строки нового, пока не созданного абзаца.
Повторное переформатирование абзаца осуществляется командой Ctrl+F8.
Таким образом, в редакторе Лексикон форматирование производится не на основе специальных линеек, как в редакторе АБВ, а прямо в рабочем окне на готовом или вновь вводимом тексте.
Редактор Лексикон удобен для редактирования программ, так как получающийся в результате файл в точности соответствует тому, что программист видит на экране, в отличие от АБВ, где файл кроме основного текста, может содержать еще и ссылки на форматирующие линейки. В целом обе рассмотренные системы подготовки текстов полностью удовлетворяют потребности в составлении и редактировании программ и текстовых документов средней сложности.
ЧТО ЕЩЕ МОЖНО ДЕЛАТЬ С ПОМОЩЬЮ ТЕКСТОВЫХ ПРОЦЕССОРОВ? Ввиду того, что для персональных компьютеров уже разработано и продолжает разрабатываться много новых текстовых процессоров, имеет смысл выделить некоторые параметры и функциональные характеристики, по которым их можно было бы сопоставлять друг с другом.
Наибольшее значение имеет набор функциональных возможностей, предоставляемых тем или иным текстовым процессором. К расширенному набору возможностей относятся следующие.
Редактирование текста на экране:
- перемещение по строкам, абзацам, страницам, в конец и в начало текста, запоминание позиций и возврат к ним;
- выделение фрагментов, состоящих из символов, слов или строк, их удаление, вставка, копирование;
- поиск вхождений образцов, их однократная или глобальная замена;
- форматирование отдельных строк и абзацев - выравнивание по левому/правому краю, задание отступа для первой строки абзаца, задание полей, задание переносов слов;
- разбивка на страницы - автоматическая или ручная установка границ между страницами;
- выделение заголовков, их центрирование, автоматическая или ручная нумерация.
Разметка/выделение отдельных элементов текста:
- изменение шрифта отдельных слов, строк, абзацев;
- подчеркивание, разрядка слов, усиление яркости (жирности);
- введение верхних и нижних индексов.
Введение в текст "посторонних", нетекстовых фрагментов:
- рисунков;
- математических выражений;
- химических формул.
Взаимодействие с файловой системой:
- сохранение/загрузка текстовых файлов;
- выдача каталога файлов и выбор из него файлов для работы;
- слияние текстов из разных файлов, взаимные переносы фрагментов текстов между разными файлами.
Вывод текстов на печатающие устройства разных типов с заданием параметров печати:
- типа принтера;
- размера страницы;
- левого поля и длины строки или левого и правого поля;
- интервала между строками;
- порядка нумерации страниц;
- колонтитулов - стандартных надписей на верхнем и нижнем поле каждой страницы;
- необходимости печати в два столбца;
- порядка работы принтера по окончании каждой страницы (ждать/не ждать).
Далеко не все из указанных возможностей нужны в одинаковой мере для всех видов работы с текстами. Например, при использовании текстового процессора преимущественно для составления программ на языках высокого уровня совсем не нужны средства форматирования и выделения элементов, в то время как для литературной работы эти средства крайне важны. Подготовка и печать колонтитулов бывает нужна в основном при работе с документами. В то же время предоставление пользователям максимума возможностей естественно увеличивает размеры программы и усложняет работу с текстовым процессором.
При оценке удобства работы с тем или иным текстовым процессором имеют значение следующие параметры:
- количество необходимых нажатий клавиш для выполнения той или иной операции, которое может колебаться от 1-2 до 20-30;
- скорость отображения текста на экране при начальной загрузке, при разных способах перемещения по тексту, а также при удалении, вставке и копировании фрагментов, что может занимать от нескольких секунд до нескольких десятков секунд;
- удобство вызова поясняющих текстов - подсказок, их полнота, структурирование, скорость вывода на экран;
- возможность получения "чистого" текста, не содержащего никаких управляющих или разметочных символов;
- ограничения на длину текстов;
- количество одновременно обрабатываемых файлов;
- возможность введения новых шрифтов и алфавитов;
- общий объем оперативной памяти, занимаемой текстовым процессором.
Указанные параметры по-разному оцениваются пользователями. Для всех пользователей важно максимальное быстродействие системы, которое определяется количеством необходимых нажатий клавиш при разных операциях и скоростью отображения текста на экране. При этом для некоторых пользователей принципиально важно иметь возможность одновременной работы со многими файлами или обрабатывать тексты на разных языках.
В связи с обработкой текстов на разных языках следует отметить, что проблема здесь может заключаться не только в замене одного алфавита на другой. Некоторые языки требуют другого алгоритма ввода текста. Например, в арабском языке ввод осуществляется справа налево; кроме того, отдельные буквы могут изменяться, в зависимости от того, употребляются ли они в начале, в конце или в середине слова. Работа с иероглифическими текстами (китайским, японским) еще более затруднена.
Большое значение имеет набор дополнительных услуг, предоставляемых либо самими текстовыми процессорами, либо сопровождающими сервисными программами. К таким услугам относятся, в частности:
- проверка и коррекция орфографических ошибок путем сопоставления каждого слова рабочего текста со словарем; при обнаружении расхождений можно заменять в тексте неправильно написанные слова или пополнять словарь новыми словами;
- автоматическая индексация, т.е. выделение из текста слов по определенному критерию и занесение их в упорядоченные индексные списки;
- автоматическое составление оглавления по заданному тексту;
- подготовка текста для фотонаборного автомата, обеспечивающего высококачественное воспроизводство документа в большом количестве экземпляров.
Для коррекции ошибок необходимы заранее составленные словари. В некоторых системах словари содержат от 50 до 100 тысяч слов (для английского языка). Для русского языка и других флективных языков простым словарем ограничиваться нельзя; необходимо использование морфологического анализа, учитывающего различные формы одних и тех же слов. Специально организованный словарь может использоваться не только для коррекции ошибок, но и для подстрочного перевода с одного языка на другой.
Одно из новых направлений развития текстовых процессоров связано с обработкой структурных текстов. В структурном тексте (или гипертексте) любой фрагмент, например, отдельное слово, абзац или раздел, может иметь несколько версий; он может раскрываться "в глубину", где содержится его другая трактовка или представление. На структурный текст можно взглянуть "издали" и увидеть только его общую форму, например, абзацную структуру, а можно рассмотреть внимательно вплоть до отдельных слов и символов. Фрагментом структурного текста может быть ссылка на рисунок или на математическую или химическую формулу, которую можно раскрыть и рассмотреть и ее естественном изображении.
Работа со структурными текстами может быть очень большим подспорьем при подготовке документации, при разработке программ на языках высокого уровня, в литературной работе. Появление дисплеев с высокой разрешающей способностью позволит получить еще больше преимуществ при работе со структурными текстами. В этом случае можно будет на ходу изменять начертание отдельных литер и немедленно получать текст с измененными символами. При использовании дисплеев с высокой разрешающей способностью легко сочетать чисто текстовое представление с графическим - формулами, рисунками, графиками. Таким образом, системы обработки текстов могут предоставлять самые разнообразные возможности для работы с документацией. Диапазон таких систем очень широк - от простых экранных редакторов, встраиваемых в интегрированные системы, до сложных текстовых процессоров, предоставляющих пользователям различные интеллектуальные услуги.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Брябрин. Программное обеспечение персональных ЭВМ. 1990
5.5. СИСТЕМЫ МАШИННОЙ ГРАФИКИ НА ПЕРСОНАЛЬНЫХ КОМПЬЮТЕРАХ
Одно из важнейших отличий современных персональных компьютеров от их предшественников - терминалов больших и малых ЭВМ - состоит в возможности вывода на экран дисплея графических изображений. Правда, не все персональные компьютеры имеют графические дисплеи и не все они являются цветными. Однако с появлением все большего числа прикладных систем, ориентированных на использование цветной графики, аппаратная поддержка графических режимов становится стандартной чертой современного персонального компьютера.
Системы машинной графики на персональных компьютерах можно отнести к нескольким классам, среди которых особо выделяются следующие:
- деловая графика,
- иллюстративная графика,
- инженерная графика,
- научная графика.
Рассмотрим основные особенности некоторых систем, относящихся к этим классам.
5.5.1. ДЕЛОВАЯ ГРАФИКА
Системы деловой графики предназначаются для графического отображения данных, хранимых в электронных таблицах или в базах данных. Широкое применение персональных компьютеров в управлении предприятиями, в экономических расчетах и имитационном моделировании стимулирует создание систем деловой графики, которые позволяют наглядно отображать соотношение различных числовых показателей в удобной для восприятия форме.
Кроме отображения на дисплее, большинство пакетов деловой графики позволяет создавать "твердые" копии изображений. Это осуществляется на матричных принтерах, на графопостроителях (плоттерах); можно также изготавливать черно-белке или цветные слайды, являющиеся фотокопиями изображений на экране.
Большинство пакетов деловой графики позволяет немедленно после ввода исходных данных и выбора способа представления получать на экране дисплея изображения диаграмм, гистограмм или графиков, отображающих эти данные. При этом изображение сопровождается заранее подготовленными текстовыми комментариями и разметкой, которые располагаются в фиксированных местах экрана. Работа с использованием таких пакетов проста, оперативна и требует на подготовку минимум времени. Однако возможности изменения структуры изображения и относительного размера различных компонентов в этом случае ограничены.
Более развитые пакеты деловой графики дают возможность пользователю не только выбирать способ отображения данных, но и варьировать размер, относительное расположение различных частей изображения на экране дисплея, дополнять это изображение декоративными элементами, хранящимися в библиотеке. Кроме того, большинство пакетов, относящихся к этой группе, позволяют применять различные трансформации отдельных элементов изображения, такие как получение зеркального отображения, вращение, вытягивание вдоль одной из осей, наложение двух и более изображений друг на друга. Все это позволяет делать изображения разнообразными, непохожими одно на другое, подчеркивать графическими средствами одни стороны отображаемой информации, затенять другие. Однако за все это приходится платить необходимостью применения многих команд при формировании изображения, что существенно увеличивает время, затрачиваемое на получение одного изображения.
Исходные данные для отображения с помощью пакета деловой графики в простейшем случае включают:
- двумерный массив числовых данных, подлежащих отображению (некоторые пакеты допускают отображение трехмерных массивов);
- текстовую разметку по каждой из осей (размерностей) массива;
- формат и название единицы измерения;
- общий текстовый комментарий к отображаемой информации.
Рассмотрим простой пример. Пусть имеются исходные данные,
показывающие изменение спроса на товары народного потребления в зависимости от сезона. Покажем, каким образом эти данные могут быть отображены средствами деловой графики. Предположим, что массив исходных данных (в виде таблицы с разметкой по осям) имеет вид:
Здесь разметка одной оси задается словами, входящими в самый левый столбец таблицы: Январь, Февраль, Март, Апрель, Май.
Разметка второй оси соответствует верхней строке таблицы: Костюмы, Платья, Плащи, Пальто.
Формат единицы измерения: ххх.хх.
Название единицы измерения: тыс.шт.
Общий текстовый комментарий: Сезонный спрос на верхнюю одежду.
Происхождение исходных данных для пакета деловой графики безразлично,- они могут поступать из электронной таблицы, из базы данных или даже из обычного текстового файла. Важно лишь, чтобы указанные данные поступили на вход пакета деловой графики в определенном формате.
Наиболее распространенными формами графического отображения данных являются столбиковые диаграммы (гистограммы) с вертикальной или горизонтальной ориентацией столбцов, круговые диаграммы и линейные графики. Практически все пакеты деловой графики позволяют формировать на экране дисплея эти типы изображений. Различия заключаются в основном в технических деталях - максимальном количестве столбцов, круговых секторов или линий, которые могут быть выведены на экран одновременно. Рассмотрим, как можно отобразить приведенные выше исходные данные с помощью гистограмм, круговых диаграмм и линейных графиков.
ГИСТОГРАММЫ. Гистограммы представляются в виде групп столбцов, высоты которых пропорциональны определенным числовым значениям. Число групп в одной гистограмме обычно колеблется от трех до десяти, каждая группа может состоять из нескольких столбцов (обычно не более десяти). Разные группы соответствуют различным значениям вдоль одной оси исходного массива данных, а столбцы в пределах каждой группы упорядочены в соответствии с другой осью исходного массива.
Для приведенного выше примера гистограмма может иметь вид, представленный на рис.5.22. Такая гистограмма получается при работе пакета деловой графики ДГРАФ, разработанного в ВЦ АН СССР. На данной гистограмме группы столбцов соответствуют горизонтальной оси (видам товаров), а в пределах каждой группы упорядоченность столбцов соответствует вертикальной оси (распределению спроса на товары по месяцам). Однако взаимное соответствие между осями исходного массива (колонками/строками исходной таблицы) и группами/столбцами гистограммы может изменяться но усмотрению пользователя. Это осуществляется транспонированием исходного массива перед началом построения.
Рис.5.22. Гистограмма, полученная при работе системы ДГРАФ
На экране цветного дисплея столбцы имеют разную окраску, а на монохромном дисплее, так же как и при черно-белой печати, окраска отображается разными интенсивностями черного цвета и штриховкой. В правом нижнем углу гистограммы на рис.5.22 выведена табличка, в которой расшифровывается окраска столбцов. Такая расшифровка иногда называется ЛЕГЕНДОЙ.
В пакете ДГРАФ имеется возможность перебора и выделения отдельных столбцов с помощью специального маркера, перемещающегося под действием клавиш со стрелками "Вправо", "Влево" и "Вниз", "Вверх". На рис. 5.22 этот маркер в виде маленького кружка размещен над 1-м столбцом 2-й группы. Соответствующее выделенному столбцу число в заданном формате выводится в особой рамке в правом верхнем углу изображения. Это число сопровождается текстовым названием единицы измерения: 25.00тыс.шт. При перемещении маркера на другой столбец происходит вывод нового числа, так что пользователь может для каждой отображаемой величины определить ее точное числовое значение. По верхнему краю изображения выведен текстовый комментарий.
В некоторых пакетах деловой графики предусматривается несколько способов построения столбиковых гистограмм. В частности, столбцы могут быть сегментированы по высоте; при этом каждый сегмент имеет свою окраску или штриховку и отображает значения величин по третьей оси исходного массива данных. При другом способе построения гистограммы столбцы в пределах каждой группы как бы частично перекрывают друг друга, благодаря чему удается отобразить большее число групп или большее число столбцов в группе.
При чрезмерно большом числе групп, столбцов или сегментов восприятие данных из-за обилия мелких деталей бывает затруднено, поэтому многие пакеты ограничивают максимальное число столбцов в группе десятью-пятнадцатью, а число столбцов или сегментов в одном столбце пятью-десятью. Однако имеется несколько коммерческих пакетов, которые могут оперировать с 60 и большим числом групп. При этом одна группа столбцов отображается в виде гистограммы на экране дисплея, а все остальные в это время хранятся в памяти.
КРУГОВЫЕ ДИАГРАММЫ. В круговой диаграмме значения величин отображаются в виде секторов круга, углы которых пропорциональны значениям отдельных элементов данных. Секторы обычно раскрашиваются или штрихуются, так чтобы их можно было отличить друг от друга. Один круг позволяет отобразить одну строку или колонку исходного массива данных. Для отображения двумерных массивов используется несколько круговых диаграмм, располагающихся на экране таким образом, чтобы дать пользователю возможность сопоставить их между собой.
На рис.5.23 представлены три круговые диаграммы, полученные с помощью пакета ДГРАФ и отображающие данные из трех строк приведенного выше исходного массива.
Рис.5.23. Круговые диаграммы, полученные при работе системы ДГРАФ
Как и в случае столбиковых гистограмм, можно перед началом построения транспонировать исходный массив, т.е. отображать в каждом круге не строку, а столбец исходного массива. Как и при использовании гистограмм, пакет ДГРАФ в данном случае также выводит на экран табличку, поясняющую раскраску секторов. У пользователя также имеется возможность выделять с помощью перемещаемого маркера отдельные секторы на разных кругах и получать в ответ точные числовые значения, которые выводятся в заданном формате в отдельную рамку.
В других пакетах деловой графики применяются диаграммы с вырезанием отдельных секторов. При этом выделенный сектор как бы слегка выдвигается из круга. Большинство пакетов позволяют делить круг диаграммы на 10-20 секторов, представляющих соответствующие величины.
Попытки разнообразить диаграммы для улучшения их визуального восприятия и повышения информативности привели к использованию в некоторых пакетах трехмерных диаграмм в виде цилиндров с возможностью выдвигания секторов от оси цилиндра. Этот способ как бы комбинирует представление данных с помощью круговых диаграмм и гистограмм. При этом в каждом цилиндре используются две переменные для представления информации - одна соответствует угловым величинам секторов у основания цилиндра (как в обычной круговой диаграмме), другая - длинам образующих для каждого сектора (подобно столбцам гистограммы). Основное достоинство такого способа представления данных заключается в его визуальной привлекательности, в возможности внести большее разнообразие в изображение, особенно если приходится просматривать большое количество информации.
ЛИНЕЙНЫЕ ГРАФИКИ. В линейном графике происходит отображение исходных величин в виде точек, соединенных отрезками прямых линий. На рис.5.24 приведен пример отображения вышеприведенных исходных данных с помощью линейных графиков.
Рис. 5.24. Линейные графики, полученные при работе системы ДГРАФ
По оси ординат откладываются значения величин вдоль одной осн исходного массива, по оси абсцисс - значения величин вдоль другой оси. Соотношение осей массива и осей графика можно менять.
Прямые отрезки, соединяющие разные значения одной и той же величины, образуют линейный график. Графики разных величин на экране проводятся разноцветными линиями или же снабжаются специальными значками-пометками, которые расшифровываются в соответствующей табличке.
С помощью линейных графиков наиболее естественно отображаются также и функциональные зависимости одних величин от других. В этом случае по оси абсцисс откладываются значения независимого параметра, по оси ординат - зависимого. Вместо исходного массива значений может быть задана функция и вектор числовых значений независимого параметра. Пакет деловой графики в этом случае должен обеспечивать вычисление заданной функции.
Большинство пакетов допускают одновременное изображение на одном графике 5-6 линий. Однако некоторые из них позволяют построить двадцать и даже более функциональных зависимостей. При этом каждая линия может формироваться несколькими десятками точек.
Помимо рассмотренных выше основных способов представления числовой информации - в виде гистограмм, круговых диаграмм и линейных графиков, в последнее время получают распространение и несколько новых, менее привычных способов. Рассмотрим некоторые из них.
ВРЕМЕННЫЕ ДИАГРАММЫ. Временные диаграммы или так называемые графики Ганта применяются, когда нужно изобразить последовательность взаимосвязанных операций или процессов определенной длительности. Окончание одних операций вызывает начало других, а некоторые операции могут выполняться одновременно. Ход такого графика позволяет проследить очередность выполнения операций и приближение к конечной цели. С помощью таких графиков можно изображать течение во времени и взаимосвязь нескольких динамических процессов. На экране дисплея временная диаграмма такого типа изображается в виде цепочек горизонтальных линий в прямоугольной системе координат: по оси абсцисс откладываются единицы времени (дни, месяцы, годы и др.), а равномерно по оси ординат - названия соответствующих операций или процессов. Длина и расположение каждой линии определяется длительностью и временем начала данной операции. Некоторые пакеты позволяют строить графики такого вида для 10-12 операций. Общее число графиков может достигать 50, при этом на экране дисплея может изображаться либо один, либо несколько наложенных друг на друга графиков.
СТРУКТУРНЫЕ СХЕМЫ. Данный способ графического представления ориентирован на построение структурных схем сложных объектов. По внешнему виду такая схема напоминает дерево. Ветви дерева (блоки) соответствуют определенным объектам; они изображаются прямоугольниками или кругами, внутри которых помещаются поясняющие надписи. Блоки соединяются между собой линиями, которые соответствуют тем или иным связям между объектами. С помощью такого метода можно отображать структуру самых разных систем. Это может быть, например, архитектура компьютера, структура управления промышленным предприятием и др. Некоторые пакеты позволяют разместить на схеме одновременно до 50 блоков. При этом максимальное число линий, соединяющих блоки, может доходить до 80. Для обозначения каждого блока на экране дисплея может использоваться один из хранящихся в библиотеке графических символов. Иногда допускается изменение размеров этих символов при сохранении их формы.
КРУГОВЫЕ ГИСТОГРАММЫ. Этот способ отображения позволяет наглядно представить относительные величины объектов, которым на изображении сопоставляются размеры и расположение кругов в прямоугольной системе координат.
Сфера приложения деловой графики постоянно расширяется. При этом растет и число конкретных задач, для решения которых необходимы те или иные графические средства. Среди этих задач часто возникают весьма нестандартные, требующие нового подхода. Это стимулирует появление новых форм графического представления данных. Большое внимание в пакетах деловой графики уделяется разнообразию стилей оформления изображения на экране дисплея. Это связано с тем, что деловая графика призвана решать сразу две важные задачи: во-первых, обеспечить быстрый вывод данных в наглядной графической форме, во-вторых, интенсифицировать процесс осмысления данных человеком с целью установления определенных закономерностей. Первая цель достигается упрощением работы с пакетами. Так, например, большая часть пакетов деловой графики ориентирована на извлечение данных из каких-либо стандартных баз данных или электронных таблиц. Вторая цель достигается совершенствованием выразительности пакетов.
Создатели пакетов деловой графики часто больше внимания уделяют средствам, которые позволяют делать изображения более яркими, разнообразными, чем, например, увеличивать число способов представления данных. Некоторые весьма дорогие и совершенные пакеты ограничивают число способов представления гистограмм, диаграмм и графиков, однако предлагают использовать при формировании изображений несколько различных типов обрамлений с возможностью варьирования их размеров. Кроме того, допускается размещение на одном изображении нескольких типов графиков и диаграмм. При этом можно независимо устанавливать размер каждой детали изображения, вращать их на экране дисплея, получать зеркальные отображения и др.
Еще одним эффективным средством деловой графики является библиотека графических форматов. Графические форматы содержат заранее сформированные изображения, которые с некоторыми изменениями могут быть использованы для представления исходных данных в виде различных гистограмм, диаграмм или графиков. Графические форматы иногда содержат набор профессионально выполненных изображений, которые можно целиком или отдельными частями использовать для того, чтобы украсить и сделать более наглядной представляемую информацию. При этом можно варьировать цветовую гамму, используемую для раскрашивания фона, отдельных деталей изображения, написания сопровождающего текста.
Информация, предназначенная для отображения с помощью пакета деловой графики, должна быть предварительно введена в базу данных, в файл на внешнем носителе или в оперативную память в определенном формате. Для этого могут быть использованы стандартные форматы, которые используются широко распространенными коммерческими пакетами.
Ряд пакетов позволяет производить простейшую обработку данных перед их представлением в графической форме. Такая обработка включает, как правило, вычисление средних значений и стандартных отклонений величин, выполнение простейших арифметических действий.
Изображения, полученные на экране дисплея, могут быть записаны во внешнюю память или выданы на печать. Иногда обеспечивается последовательное появление изображений на экране через заданный промежуток времени (режим "показа слайдов"). На одном флоппи-диске можно хранить до 40 таких слайдов, а на жестком диске их может быть, конечно, гораздо больше. Это позволяет иллюстрировать с помощью компьютера лекции и доклады, исключив трудоемкую и длительную операцию изготовления фотодиапозитивов.
Следует сказать несколько слов о графических пакетах, которые входят в состав интегрированных систем. Преимущество таких систем состоит в естественном использовании исходных данных, находящихся в электронной таблице или в базе данных интегрированной системы. Как правило, большие интегрированные системы предоставляют пользователям простые средства для построения круговых диаграмм, гистограмм или линейных графиков. Пользователь сначала должен выбрать и отметить на электронной таблице диапазон ячеек, содержимое которых должно быть отображено в виде графика, а затем с помощью нескольких клавишных команд сформировать соответствующий график или диаграмму. Способ вывода согласуется с общим стилем работы в конкретной интегрированной системе. Например, в системе Framework изображения графиков выводятся в дисплейные окна, при этом они автоматически масштабируются в зависимости от размеров окна. В последнее время графические пакеты интегрированных систем дополняются новыми возможностями, присущими системам иллюстративной графики. Это дает пользователям дополнительные средства для наглядного представления информации и построения удобных прикладных систем.
Одно из важнейших отличий современных персональных компьютеров от их предшественников - терминалов больших и малых ЭВМ - состоит в возможности вывода на экран дисплея графических изображений. Правда, не все персональные компьютеры имеют графические дисплеи и не все они являются цветными. Однако с появлением все большего числа прикладных систем, ориентированных на использование цветной графики, аппаратная поддержка графических режимов становится стандартной чертой современного персонального компьютера.
Системы машинной графики на персональных компьютерах можно отнести к нескольким классам, среди которых особо выделяются следующие:
- деловая графика,
- иллюстративная графика,
- инженерная графика,
- научная графика.
Рассмотрим основные особенности некоторых систем, относящихся к этим классам.
5.5.1. ДЕЛОВАЯ ГРАФИКА
Системы деловой графики предназначаются для графического отображения данных, хранимых в электронных таблицах или в базах данных. Широкое применение персональных компьютеров в управлении предприятиями, в экономических расчетах и имитационном моделировании стимулирует создание систем деловой графики, которые позволяют наглядно отображать соотношение различных числовых показателей в удобной для восприятия форме.
Кроме отображения на дисплее, большинство пакетов деловой графики позволяет создавать "твердые" копии изображений. Это осуществляется на матричных принтерах, на графопостроителях (плоттерах); можно также изготавливать черно-белке или цветные слайды, являющиеся фотокопиями изображений на экране.
Большинство пакетов деловой графики позволяет немедленно после ввода исходных данных и выбора способа представления получать на экране дисплея изображения диаграмм, гистограмм или графиков, отображающих эти данные. При этом изображение сопровождается заранее подготовленными текстовыми комментариями и разметкой, которые располагаются в фиксированных местах экрана. Работа с использованием таких пакетов проста, оперативна и требует на подготовку минимум времени. Однако возможности изменения структуры изображения и относительного размера различных компонентов в этом случае ограничены.
Более развитые пакеты деловой графики дают возможность пользователю не только выбирать способ отображения данных, но и варьировать размер, относительное расположение различных частей изображения на экране дисплея, дополнять это изображение декоративными элементами, хранящимися в библиотеке. Кроме того, большинство пакетов, относящихся к этой группе, позволяют применять различные трансформации отдельных элементов изображения, такие как получение зеркального отображения, вращение, вытягивание вдоль одной из осей, наложение двух и более изображений друг на друга. Все это позволяет делать изображения разнообразными, непохожими одно на другое, подчеркивать графическими средствами одни стороны отображаемой информации, затенять другие. Однако за все это приходится платить необходимостью применения многих команд при формировании изображения, что существенно увеличивает время, затрачиваемое на получение одного изображения.
Исходные данные для отображения с помощью пакета деловой графики в простейшем случае включают:
- двумерный массив числовых данных, подлежащих отображению (некоторые пакеты допускают отображение трехмерных массивов);
- текстовую разметку по каждой из осей (размерностей) массива;
- формат и название единицы измерения;
- общий текстовый комментарий к отображаемой информации.
Рассмотрим простой пример. Пусть имеются исходные данные,
показывающие изменение спроса на товары народного потребления в зависимости от сезона. Покажем, каким образом эти данные могут быть отображены средствами деловой графики. Предположим, что массив исходных данных (в виде таблицы с разметкой по осям) имеет вид:
Здесь разметка одной оси задается словами, входящими в самый левый столбец таблицы: Январь, Февраль, Март, Апрель, Май.
Разметка второй оси соответствует верхней строке таблицы: Костюмы, Платья, Плащи, Пальто.
Формат единицы измерения: ххх.хх.
Название единицы измерения: тыс.шт.
Общий текстовый комментарий: Сезонный спрос на верхнюю одежду.
Происхождение исходных данных для пакета деловой графики безразлично,- они могут поступать из электронной таблицы, из базы данных или даже из обычного текстового файла. Важно лишь, чтобы указанные данные поступили на вход пакета деловой графики в определенном формате.
Наиболее распространенными формами графического отображения данных являются столбиковые диаграммы (гистограммы) с вертикальной или горизонтальной ориентацией столбцов, круговые диаграммы и линейные графики. Практически все пакеты деловой графики позволяют формировать на экране дисплея эти типы изображений. Различия заключаются в основном в технических деталях - максимальном количестве столбцов, круговых секторов или линий, которые могут быть выведены на экран одновременно. Рассмотрим, как можно отобразить приведенные выше исходные данные с помощью гистограмм, круговых диаграмм и линейных графиков.
ГИСТОГРАММЫ. Гистограммы представляются в виде групп столбцов, высоты которых пропорциональны определенным числовым значениям. Число групп в одной гистограмме обычно колеблется от трех до десяти, каждая группа может состоять из нескольких столбцов (обычно не более десяти). Разные группы соответствуют различным значениям вдоль одной оси исходного массива данных, а столбцы в пределах каждой группы упорядочены в соответствии с другой осью исходного массива.
Для приведенного выше примера гистограмма может иметь вид, представленный на рис.5.22. Такая гистограмма получается при работе пакета деловой графики ДГРАФ, разработанного в ВЦ АН СССР. На данной гистограмме группы столбцов соответствуют горизонтальной оси (видам товаров), а в пределах каждой группы упорядоченность столбцов соответствует вертикальной оси (распределению спроса на товары по месяцам). Однако взаимное соответствие между осями исходного массива (колонками/строками исходной таблицы) и группами/столбцами гистограммы может изменяться но усмотрению пользователя. Это осуществляется транспонированием исходного массива перед началом построения.
Рис.5.22. Гистограмма, полученная при работе системы ДГРАФ
На экране цветного дисплея столбцы имеют разную окраску, а на монохромном дисплее, так же как и при черно-белой печати, окраска отображается разными интенсивностями черного цвета и штриховкой. В правом нижнем углу гистограммы на рис.5.22 выведена табличка, в которой расшифровывается окраска столбцов. Такая расшифровка иногда называется ЛЕГЕНДОЙ.
В пакете ДГРАФ имеется возможность перебора и выделения отдельных столбцов с помощью специального маркера, перемещающегося под действием клавиш со стрелками "Вправо", "Влево" и "Вниз", "Вверх". На рис. 5.22 этот маркер в виде маленького кружка размещен над 1-м столбцом 2-й группы. Соответствующее выделенному столбцу число в заданном формате выводится в особой рамке в правом верхнем углу изображения. Это число сопровождается текстовым названием единицы измерения: 25.00тыс.шт. При перемещении маркера на другой столбец происходит вывод нового числа, так что пользователь может для каждой отображаемой величины определить ее точное числовое значение. По верхнему краю изображения выведен текстовый комментарий.
В некоторых пакетах деловой графики предусматривается несколько способов построения столбиковых гистограмм. В частности, столбцы могут быть сегментированы по высоте; при этом каждый сегмент имеет свою окраску или штриховку и отображает значения величин по третьей оси исходного массива данных. При другом способе построения гистограммы столбцы в пределах каждой группы как бы частично перекрывают друг друга, благодаря чему удается отобразить большее число групп или большее число столбцов в группе.
При чрезмерно большом числе групп, столбцов или сегментов восприятие данных из-за обилия мелких деталей бывает затруднено, поэтому многие пакеты ограничивают максимальное число столбцов в группе десятью-пятнадцатью, а число столбцов или сегментов в одном столбце пятью-десятью. Однако имеется несколько коммерческих пакетов, которые могут оперировать с 60 и большим числом групп. При этом одна группа столбцов отображается в виде гистограммы на экране дисплея, а все остальные в это время хранятся в памяти.
КРУГОВЫЕ ДИАГРАММЫ. В круговой диаграмме значения величин отображаются в виде секторов круга, углы которых пропорциональны значениям отдельных элементов данных. Секторы обычно раскрашиваются или штрихуются, так чтобы их можно было отличить друг от друга. Один круг позволяет отобразить одну строку или колонку исходного массива данных. Для отображения двумерных массивов используется несколько круговых диаграмм, располагающихся на экране таким образом, чтобы дать пользователю возможность сопоставить их между собой.
На рис.5.23 представлены три круговые диаграммы, полученные с помощью пакета ДГРАФ и отображающие данные из трех строк приведенного выше исходного массива.
Рис.5.23. Круговые диаграммы, полученные при работе системы ДГРАФ
Как и в случае столбиковых гистограмм, можно перед началом построения транспонировать исходный массив, т.е. отображать в каждом круге не строку, а столбец исходного массива. Как и при использовании гистограмм, пакет ДГРАФ в данном случае также выводит на экран табличку, поясняющую раскраску секторов. У пользователя также имеется возможность выделять с помощью перемещаемого маркера отдельные секторы на разных кругах и получать в ответ точные числовые значения, которые выводятся в заданном формате в отдельную рамку.
В других пакетах деловой графики применяются диаграммы с вырезанием отдельных секторов. При этом выделенный сектор как бы слегка выдвигается из круга. Большинство пакетов позволяют делить круг диаграммы на 10-20 секторов, представляющих соответствующие величины.
Попытки разнообразить диаграммы для улучшения их визуального восприятия и повышения информативности привели к использованию в некоторых пакетах трехмерных диаграмм в виде цилиндров с возможностью выдвигания секторов от оси цилиндра. Этот способ как бы комбинирует представление данных с помощью круговых диаграмм и гистограмм. При этом в каждом цилиндре используются две переменные для представления информации - одна соответствует угловым величинам секторов у основания цилиндра (как в обычной круговой диаграмме), другая - длинам образующих для каждого сектора (подобно столбцам гистограммы). Основное достоинство такого способа представления данных заключается в его визуальной привлекательности, в возможности внести большее разнообразие в изображение, особенно если приходится просматривать большое количество информации.
ЛИНЕЙНЫЕ ГРАФИКИ. В линейном графике происходит отображение исходных величин в виде точек, соединенных отрезками прямых линий. На рис.5.24 приведен пример отображения вышеприведенных исходных данных с помощью линейных графиков.
Рис. 5.24. Линейные графики, полученные при работе системы ДГРАФ
По оси ординат откладываются значения величин вдоль одной осн исходного массива, по оси абсцисс - значения величин вдоль другой оси. Соотношение осей массива и осей графика можно менять.
Прямые отрезки, соединяющие разные значения одной и той же величины, образуют линейный график. Графики разных величин на экране проводятся разноцветными линиями или же снабжаются специальными значками-пометками, которые расшифровываются в соответствующей табличке.
С помощью линейных графиков наиболее естественно отображаются также и функциональные зависимости одних величин от других. В этом случае по оси абсцисс откладываются значения независимого параметра, по оси ординат - зависимого. Вместо исходного массива значений может быть задана функция и вектор числовых значений независимого параметра. Пакет деловой графики в этом случае должен обеспечивать вычисление заданной функции.
Большинство пакетов допускают одновременное изображение на одном графике 5-6 линий. Однако некоторые из них позволяют построить двадцать и даже более функциональных зависимостей. При этом каждая линия может формироваться несколькими десятками точек.
Помимо рассмотренных выше основных способов представления числовой информации - в виде гистограмм, круговых диаграмм и линейных графиков, в последнее время получают распространение и несколько новых, менее привычных способов. Рассмотрим некоторые из них.
ВРЕМЕННЫЕ ДИАГРАММЫ. Временные диаграммы или так называемые графики Ганта применяются, когда нужно изобразить последовательность взаимосвязанных операций или процессов определенной длительности. Окончание одних операций вызывает начало других, а некоторые операции могут выполняться одновременно. Ход такого графика позволяет проследить очередность выполнения операций и приближение к конечной цели. С помощью таких графиков можно изображать течение во времени и взаимосвязь нескольких динамических процессов. На экране дисплея временная диаграмма такого типа изображается в виде цепочек горизонтальных линий в прямоугольной системе координат: по оси абсцисс откладываются единицы времени (дни, месяцы, годы и др.), а равномерно по оси ординат - названия соответствующих операций или процессов. Длина и расположение каждой линии определяется длительностью и временем начала данной операции. Некоторые пакеты позволяют строить графики такого вида для 10-12 операций. Общее число графиков может достигать 50, при этом на экране дисплея может изображаться либо один, либо несколько наложенных друг на друга графиков.
СТРУКТУРНЫЕ СХЕМЫ. Данный способ графического представления ориентирован на построение структурных схем сложных объектов. По внешнему виду такая схема напоминает дерево. Ветви дерева (блоки) соответствуют определенным объектам; они изображаются прямоугольниками или кругами, внутри которых помещаются поясняющие надписи. Блоки соединяются между собой линиями, которые соответствуют тем или иным связям между объектами. С помощью такого метода можно отображать структуру самых разных систем. Это может быть, например, архитектура компьютера, структура управления промышленным предприятием и др. Некоторые пакеты позволяют разместить на схеме одновременно до 50 блоков. При этом максимальное число линий, соединяющих блоки, может доходить до 80. Для обозначения каждого блока на экране дисплея может использоваться один из хранящихся в библиотеке графических символов. Иногда допускается изменение размеров этих символов при сохранении их формы.
КРУГОВЫЕ ГИСТОГРАММЫ. Этот способ отображения позволяет наглядно представить относительные величины объектов, которым на изображении сопоставляются размеры и расположение кругов в прямоугольной системе координат.
Сфера приложения деловой графики постоянно расширяется. При этом растет и число конкретных задач, для решения которых необходимы те или иные графические средства. Среди этих задач часто возникают весьма нестандартные, требующие нового подхода. Это стимулирует появление новых форм графического представления данных. Большое внимание в пакетах деловой графики уделяется разнообразию стилей оформления изображения на экране дисплея. Это связано с тем, что деловая графика призвана решать сразу две важные задачи: во-первых, обеспечить быстрый вывод данных в наглядной графической форме, во-вторых, интенсифицировать процесс осмысления данных человеком с целью установления определенных закономерностей. Первая цель достигается упрощением работы с пакетами. Так, например, большая часть пакетов деловой графики ориентирована на извлечение данных из каких-либо стандартных баз данных или электронных таблиц. Вторая цель достигается совершенствованием выразительности пакетов.
Создатели пакетов деловой графики часто больше внимания уделяют средствам, которые позволяют делать изображения более яркими, разнообразными, чем, например, увеличивать число способов представления данных. Некоторые весьма дорогие и совершенные пакеты ограничивают число способов представления гистограмм, диаграмм и графиков, однако предлагают использовать при формировании изображений несколько различных типов обрамлений с возможностью варьирования их размеров. Кроме того, допускается размещение на одном изображении нескольких типов графиков и диаграмм. При этом можно независимо устанавливать размер каждой детали изображения, вращать их на экране дисплея, получать зеркальные отображения и др.
Еще одним эффективным средством деловой графики является библиотека графических форматов. Графические форматы содержат заранее сформированные изображения, которые с некоторыми изменениями могут быть использованы для представления исходных данных в виде различных гистограмм, диаграмм или графиков. Графические форматы иногда содержат набор профессионально выполненных изображений, которые можно целиком или отдельными частями использовать для того, чтобы украсить и сделать более наглядной представляемую информацию. При этом можно варьировать цветовую гамму, используемую для раскрашивания фона, отдельных деталей изображения, написания сопровождающего текста.
Информация, предназначенная для отображения с помощью пакета деловой графики, должна быть предварительно введена в базу данных, в файл на внешнем носителе или в оперативную память в определенном формате. Для этого могут быть использованы стандартные форматы, которые используются широко распространенными коммерческими пакетами.
Ряд пакетов позволяет производить простейшую обработку данных перед их представлением в графической форме. Такая обработка включает, как правило, вычисление средних значений и стандартных отклонений величин, выполнение простейших арифметических действий.
Изображения, полученные на экране дисплея, могут быть записаны во внешнюю память или выданы на печать. Иногда обеспечивается последовательное появление изображений на экране через заданный промежуток времени (режим "показа слайдов"). На одном флоппи-диске можно хранить до 40 таких слайдов, а на жестком диске их может быть, конечно, гораздо больше. Это позволяет иллюстрировать с помощью компьютера лекции и доклады, исключив трудоемкую и длительную операцию изготовления фотодиапозитивов.
Следует сказать несколько слов о графических пакетах, которые входят в состав интегрированных систем. Преимущество таких систем состоит в естественном использовании исходных данных, находящихся в электронной таблице или в базе данных интегрированной системы. Как правило, большие интегрированные системы предоставляют пользователям простые средства для построения круговых диаграмм, гистограмм или линейных графиков. Пользователь сначала должен выбрать и отметить на электронной таблице диапазон ячеек, содержимое которых должно быть отображено в виде графика, а затем с помощью нескольких клавишных команд сформировать соответствующий график или диаграмму. Способ вывода согласуется с общим стилем работы в конкретной интегрированной системе. Например, в системе Framework изображения графиков выводятся в дисплейные окна, при этом они автоматически масштабируются в зависимости от размеров окна. В последнее время графические пакеты интегрированных систем дополняются новыми возможностями, присущими системам иллюстративной графики. Это дает пользователям дополнительные средства для наглядного представления информации и построения удобных прикладных систем.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Брябрин. Программное обеспечение персональных ЭВМ. 1990
5.5.2. ИЛЛЮСТРАТИВНАЯ ГРАФИКА
Системы иллюстративной графики предназначаются для создания машинных изображений, которые играют роль иллюстративного материала. Это могут быть условные схемы, эскизы, географические карты и др. При создании систем иллюстративной графики основные усилия направлены на то, чтобы графические объекты можно было столь же легко формировать и преобразовывать, как мы формируем и преобразуем массивы чисел с помощью электронных таблиц или тексты при помощи систем подготовки текстов.
Решение такой задачи наталкивается на ряд специфических трудностей. Если при обработке числовой информации можно опираться на хорошо разработанный математический аппарат, а при текстовой обработке - на элементарные операции ввода, сравнения и замены текстовых фрагментов, то для обработки графической информации определить набор базовых операции не так просто. Если применять методы обработки изображений на основе сложного математического аппарата, то это во многих случаях вступит в противоречие с основной целью - созданием пакетов, с которыми было бы легко и приятно работать на ПЭВМ.
С точки зрения внутреннего представления выделяются два класса объектов иллюстративной графики.
1. Изображения на основе регулярных структур. Изображения этого типа имеют вполне определенную форму, их можно однозначно определить на основе простейших геометрических понятий. Примерами могут служить прямоугольники, круги, треугольники. Все эти фигуры задаются определенными наборами параметров. Для того чтобы их копировать, перемещать, масштабировать или изменять цвет, достаточно присвоить соответствующим параметрам новые значения. Способ создания изображений на основе регулярных структур можно сопоставить со способом черчения изображения на листе бумаги с использованием линеек, циркулей и трафаретов. Данный тип изображений относят к так называемой векторной или координатной графике, поскольку каждый элементарный объект задается координатами опорных точек и некоторыми дополнительными параметрами.
2. Изображения на основе нерегулярных структур. В эту категорию попадают такие изображения, которые можно сопоставить с картинами, создаваемыми художником. На ПЭВМ такие изображения создаются методом так называемого свободного рисования, где вместо кистей и красок используются специальные функции, управляемые под действием клавишных команд или сигналов от манипулятора типа "мышь". Первая проблема состоит здесь в том, чтобы нарисовать нерегулярную структуру, а вторая - чтобы произвести в ней различные изменения. Если такие графические операции, как перемещение и копирование, сохраняют свое значение и для нерегулярных структур, то, скажем, одномерное масштабирование оказывается здесь бессмысленным, Данный тип изображений относят к растровой графике, поскольку все изображение слагается в конечном счете из множества (цветных) точек растра.
При помощи систем иллюстративной графики пользователь должен иметь возможность строить изображения путем их компоновки из других, ранее созданных изображений, объединения с текстами и числами, изменения цвета и др. С этой целью в системе иллюстративной графики должны быть реализованы функции, позволяющие:
- "резать", "склеивать" и "стирать" произвольные части изображения;
- обращаться в библиотеку заранее сформированных изображений и вставлять их во вновь создаваемые рисунки;
- применять для рисования разнообразные "кисти", "краски" и трафареты;
- запоминать сформированные иллюстративные материалы на внешних носителях, осуществлять нх поиск и воспроизведение.
Графические системы делового и иллюстративного назначения должны обеспечивать вывод информации как на экран дисплея, так и на бумагу (создание "твердой копии").
ОСНОВНЫЕ ЧЕРТЫ СИСТЕМ ИЛЛЮСТРАТИВНОЙ ГРАФИКИ. В одной из первых популярных систем иллюстративной графики Execuvision формирование изображения осуществлялось при помощи курсора, управляемого клавишами. Меняя размер курсора, пользователь как бы брал в руки рисовальную кисть другой ширины. Для того чтобы провести линию, пользователю достаточно переместить курсор в требуемом направлении или же указать начальную и конечную точки прямой, а всю остальную работу возложить на программу. В системе имеются электронные "ножницы", с помощью которых можно отрезать "части" изображений, с тем чтобы "переклеить" их на другое место экрана. Возможно "оживление" изображений на основе специального алгоритма. Для наложения текста на рисунок пользователю предоставляются десять шрифтовых комплектов с возможностью выбора размера и цвета букв. Система обеспечивает показ слайдов в двух режимах - ручном и автоматическом. Процесс взаимодействия пользователя с системой управляется посредством иерархического меню.
Другая популярная система - PC PAINT также относится к системам растровой графики. Она устроена так, что клавиатура ПЭВМ используется только для ввода имени создаваемого изображения или имени текущего каталога. Все операции, связанные с формированием изображения, управляются с помощью манипулятора "мышь". Функции представлены в позиционном меню, и их выбор осуществляется путем указания на соответствующий условный символ - пиктограмму. Для рисования можно использовать макеты геометрических фигур (прямая, прямоугольник, окружность, дуга), которые также изображены в меню. Выбранную фигуру можно разместить в рабочем поле и затем изменить ее параметры путем растягивания или сжатия отдельных элементов. Цвета выбираются из цветового меню. Имеется возможность установления шести палитр, каждая из которых содержит три цвета. Вдоль нижней границы расположены образцы для закрашивания в виде прямоугольников, заполненных точками, полосками, штрихами и другими образцами.
Меню шрифтов позволяет выбрать один из шести шрифтов и установить размер литер в тексте. Меню редактора позволяет редактировать изображение, предоставляя электронные способы, копирования, перемещения и "переклеивания" фрагментов изображения. Инструментальное меню дает возможность изменять образцы кистей. Можно выделить и увеличить часть изображения с целью тонкой корректировки небольших деталей. PC PAINT позволяет сохранять изображения на дисковом накопителе в двух различных растровых форматах и выводить изображение на матричные принтеры.
Сходными чертами обладает другая популярная система - PC PAINT BRUSH. Отличия в основном состоят в возможности формирования собственных образцов для закрашивания и собственных шрифтов.
Некоторые системы позволяют комбинировать видеоизображение, полученное с видеомагнитофона или видеоканала телевизора, и компьютерную графику. Другая возможность связана со вводом изображения, полученного с помощью фотоаппарата, которое после этого можно редактировать, преобразовать, сохранять во внешней памяти и выводить на бумагу.
Ряд систем ориентирован на создание высококачественных рисунков и иллюстраций. Как правило, в таких случаях предусматривается применение дисплея и графического адаптера с повышенной разрешающей способностью. Так, при использовании в персональном компьютере типа IBM PC усовершенствованного графического адаптера появляется возможность использования шестнадцати различных цветов при разрешающей способности 640*350 точек растра. Это позволяет создавать изображения телевизионного качества и делает системы иллюстративной графики еще более привлекательными. В системах этого типа имеется много дополнительных функций, позволяющих улучшать изображение. К ним относится, в частности, сглаживание ломаных непрерывными линиями, смешивание цветов и др.
В ВЦ АН СССР Б.Т.Сираджовым разработаны две системы иллюстративной графики - графические процессоры ВГРАФ и ВИКОНТ. Первая из этих систем обеспечивает формирование растровых изображений, вторая - векторных (координатных) изображений. Системы взаимно согласованы по формируемым графическим объектам; это означает, что изображения, полученные с помощью одной системы, могут быть введены и дополнительно преобразованы с помощью другой системы. Для создания изображений в обоих процессорах используется несколько способов:
- построение и трансформация элементарных геометрических фигур;
- формирование изображений из отрезков прямых;
- динамическое перемещение объектов из одной позиции в другую, их копирование, закраска или заштриховка;
- наложение заранее созданных библиотечных элементов на вновь создаваемые изображения.
Оба процессора ориентированы на выполнение следующих основные функций:
1) создание и редактирование изображений, с возможностью наложения текстов на изображения;
2) воспроизведение одиночных изображений или их демонстрация в режиме показа слайдов;
3) вывод изображений на устройства твердой копии;
4) взаимодействие с объектной базой и другими компонентами интегрированной системы СПЕКТР.
Ниже приведено краткое описание указанных процессоров.
ГРАФИЧЕСКИЙ ПРОЦЕССОР ВГРАФ. Процессор ВГРАФ управляется с помощью двухуровневого позиционного меню, в котором на 1-м уровне указаны основные операции, а на 2-м уровне выбранная операция может быть уточнена путем указания ее разновидности. На рис.5.25 представлена копия экрана, полученная при работе системы ВГРАФ. В верхней части экрана выводится строка меню 1-го уровня. Отдельные операции представлены в этом меню пиктограммами. Для выбора операции нужно нажать клавишу Esc и затем, нажимая стрелки "Вправо", Влево", выделить пиктограмму с соответствующей операцией. Выделенная позиция отмечена негативным изображением.
Рис.5.25. Копия экрана при работе системы ВГРАФ
Имеется и другой способ выбора операции - путем нажатия алфавитно-цифровой клавиши, соответствующей коду операции. Коды основных операций и их расшифровка приведены в нижеследующей таблице (в скобках даны английские названия операций, начальные буквы которых послужили основой для выбора мнемоничных кодов):
L - построение прямой линии (Line),
N - построение ломаной линии (N-line),
B - построение прямоугольника (Box),
E - построение эллипса (Ellipse),
F - закраска (штриховка) замкнутой области (Fill),
C - выбор цвета (Color),
W - выбор толщины линий (Width),
T - нанесение текста (Text),
D - работа с диском (Disk),
A - выделение прямоугольной области (Area),
S - выбор режима экрана (Screen),
P - вывод изображения на печать (Print).
В меню на рис.5.25 негативным изображением выделена пиктограмма, соответствующая операции закраски. Справа внизу экрана выведено сокращенное название этой операции и соответствующий ей код - буква F. Кроме того, в нижней части экрана выведено меню 2-го уровня, в котором показаны образцы закраски или штриховки. Каждая позиция этого меню имеет номер, и пользователю Для выбора образца достаточно нажать клавишу с соответствующей цифрой. Если после этого нажать клавишу "Исполнение", то система перейдет в режим движения маркера по рабочему полю экрана.
Крестообразный маркер перемещается под действием клавиш "Вправо", "Влево", "Вниз", "Вверх" или под действием сигналов от манипулятора "мышь". Шаг перемещения может быть "изменен нажатием функциональной клавиши F3.
После того как маркер будет помещен в нужную позицию (внутри некоторой области, ограниченной замкнутой линией), нажатие клавиши "Исполнение" активизирует выбранную операцию, и произойдет заштриховка данной области указанным образцом.
Действия пользователя в случае выбора других операций подчиняются описанным выше правилам, но, конечно, смысл каждой операции и их разновидности, задаваемые в меню 2-го уровня, весьма различны. Дадим краткое описание основных операций.
ПОСТРОЕНИЕ ПРЯМОЙ ЛИНИИ. При выборе этой операции в меню 2-го уровня указываются типы линий - сплошная, пунктирная и точечная. После выбора типа (по умолчанию действует сплошная линия) и нажатия клавиши "Исполнение" в рабочем поле появляется перемещающийся маркер. Пользователь должен выбрать положение одного конца линии и зафиксировать его нажатием клавиши "Исполнение", а затем точно так же зафиксировать положение второго конца линии.
ПОСТРОЕНИЕ ЛОМАНОЙ ЛИНИИ. В этом случае тип линии не уточняется, поскольку действует ранее установленный тип. Меню 2-го уровня отсутствует. Остальные действия похожи на вышеописанные. Конец построения каждого отрезка ломаной завершается нажатием клавиши "Исполнение", а завершение построения всей ломаной - нажатием клавиши "+" в правой части клавиатуры.
ПОСТРОЕНИЕ ПРЯМОУГОЛЬНИКА. После выбора этой операции Меню 2-го уровня отсутствует. Пользователь выбирает маркером место в рабочем поле экрана и нажатием клавиши "Исполнение" начинает построение прямоугольника. Клавиши со стрелками позволяют изменить размеры прямоугольника, а вторичное нажатие клавиши "Исполнение" завершает его построение. Стороны прямоугольника рисуются линиями заданного типа и текущим цветом.
ПОСТРОЕНИЕ ЭЛЛИПСА. Здесь также не задается меню 2-го уровня, и действия пользователя похожи на те, которые применяются при построении прямоугольника. Клавиши "Вправо", "Влево" позволяют менять радиус эллипса, а клавиши "Вниз", "Вверх" меняют его эксцентриситет.
ВЫБОР ЦВЕТА. В меню 2-го уровня для данной операции указываются три основных цвета и один - стирающий, совпадающий с цветом фона. Выбранный цвет действует на все последующие построения, включая все виды штриховки.
ВЫБОР ТОЛЩИНЫ ЛИНИЙ. В меню 2-го уровня для данной операции указываются 5 вариантов толщины линий. Выбранная толщина линий действует на все последующие построения.
НАНЕСЕНИЕ ТЕКСТА. Меню 2-го уровня здесь указывает на два варианта размера шрифта. После нажатия клавиши "Исполнение" и выбора маркером места на экране пользователь может вводить произвольный текст, пока не будет нажата клавиша Esc. Переключение между русским и латинским шрифтом, а также между маленькими и большими буквами может происходить по ходу ввода текста клавишами CapsLock и Shift. Клавиша Backspace вызывает последовательное стирание всех введенных за один прием букв и цифр в направлении от конца к началу.
РАБОТА С ДИСКОМ. Меню 2-го уровня в этом случае содержит следующие вторичные операции: 1 - задание имени файла, 2 - загрузка изображения из файла с заданным именем, 3 - сохранение изображения в файле с заданным именем, 4 - временный выход в ДОС (с возможностью возврата по команде EXIT), 0 - полный выход из системы.
ВЫДЕЛЕНИЕ ПРЯМОУГОЛЬНОЙ ОБЛАСТИ. Данная операция позволяет выделить на изображении произвольную прямоугольную область с целью: 1) перемещения ее на новое место, 2) перевода в негативное изображение, 3) стирания, 4) вывода на диск в качестве библиотечного элемента. Этн варианты указываются посредством меню 2-го уровня. Нажатие клавиши "Исполнение" переводит маркер в рабочее поле, где можно выделить прямоугольную область точно такими же действиями, как при построении обычного прямоугольника. Однако после вторичного нажатия клавиши "Исполнение" выделенная область подвергается указанной трансформации. Здесь следует заметить, что для управления перемещением и копированием выделенных областей используются функциональные клавиши:
F3 - изменение шага перемещения,
F4 - копирование,
F5 - переход в режим перемещения.
Все эти клавиши действуют как двоичные переключатели, причем не только в случае работы с выделенной областью, но и при построении отдельных примитивных фигур (прямых, ломаных, прямоугольников и эллипсов).
ВЫБОР РЕЖИМА ЭКРАНА. Меню 2-го уровня в данном случае позволяет менять цвет и фон изображения, стирать все изображение и переходить из цветного режима в черно-белый и обратно.
ВЫВОД ИЗОБРАЖЕНИЯ НА ПЕЧАТЬ. В данной операции меню 2-го уровня позволяет задать левое поле для печати, нормальную или-двойную плотность печати и, наконец, начать собственно вывод на принтер (типа Epson FX-80).
Таковы основные операции при построении изображений. Остается добавить, что меню 1-го уровня можно убирать с рабочего поля и вновь возвращать на место нажатием клавиши F10. Оперативная подсказка выдается после нажатия клавиши F1.
Во внешней памяти изображения, созданные с помощью процессора ВГРАФ, могут сохраняться в нескольких форматах. Каждый формат определяется типом файла при указании его имени для сохранения изображения. Возможные типы и соответствующие им форматы:
PIC - сохранение в виде копии экрана,
РАС - сохранение в упакованном виде,
LBR - сохранение выделенной области в качестве библиотечного элемента,
EPS - сохранение в упакованном виде для печати на принтере.
При сохранении в формате PIC объем файла всегда постоянен и довольно велик - около 16.4 Кбайт. В формате РАС объем файла в среднем колеблется от 2-3 до 5-8 Кбайт (зависит от заполненности экрана). Объем библиотечных элементов минимален.
При вызове процессора ВГРАФ можно в качестве параметров указать несколько заранее приготовленных изображений, для чего в качестве параметров вызова должны быть указаны их имена. После такого вызова в рабочее поле сразу выводится первое из указанных изображений, а при нажатии клавиш Ctrl+<стрелка Вправо> или Ctrl+<стрелка Влево> происходит перебор указанных изображений в режиме показа слайдов. При этом меню не выводится, чтобы не засорять экран. Такой режим удобен для демонстраций во время докладов. При загрузке изображений, сохраненных как библиотечные элементы, ранее выведенные в рабочее поле изображения не стираются; библиотечные элементы могут перемещаться и накладываться на основной рисунок. Благодаря этому в ходе демонстрации можно получать интересные зрительные эффекты.
ГРАФИЧЕСКИЙ ПРОЦЕССОР ВИКОНТ. Процессор ВИКОНТ является второй частью пакета иллюстративной графики, разработанного в ВЦ АН СССР. Эта система позволяет строить векторное графическое изображение, которое включает в себя примитивы - элементарные геометрические фигуры и сегменты - композиции примитивов.
Основными примитивами являются прямая, прямоугольник, треугольник, окружность, цветная замкнутая область, буквы и цифры алфавита. При построении изображения каждый примитив характеризуется такими параметрами, как координаты опорных точек, радиус, цвет, эксцентриситет и т.д. Над примитивами определены операции, позволяющие их преобразовывать. Для каждого примитива определен свой набор операций. Например, можно перемещать любую сторону или вершину треугольника, изменять радиус или эксцентриситет окружности, изменять длину линии, перемещать по экрану и копировать любой примитив и др. Изображение строится путем выбора нужного примитива и преобразования его до нужных размеров, формы и расположения на экране. Для выборки примитивов и операций над ними используются простые клавишные команды.
Примитивы могут объединяться в группы, называемые сегментами. Сегмент - это не просто набор независимых примитивов, а единая структура, которая, как и примитивы, может подвергаться изменениям и использоваться для построения более сложного изображения. У каждого сегмента, как и у любого примитива, есть своя опорная точка или точка привязки к общему изображению.
Реализована возможность поиска, выделения и выбора примитивов и сегментов. Поиск осуществляется с помощью маркера, который перемещается по экрану под действием управляющих клавиш и подводится к выбираемому примитиву или сегменту; после нажатия управляющей клавиши происходит выделение того примитива или сегмента, точка привязки которого ближе всего расположена к маркеру. Выделенный примитив или сегмент отображается мерцанием. Выделенный элемент "можно затем под управлением клавишных команд перемещать, копировать и удалять.
Текстовые сегменты образуются из букв русского и латинского алфавита, а также цифр и знаков. Это позволяет объединять текстовую информацию с графической.
Работа пользователя складывается из следующих этапов.
1. Создание изображения. При этом на экран выводятся образцы примитивов, осуществляется их преобразование и при необходимости объединение в сегменты.
2. Редактирование созданного изображения. Включает поиск и выборку примитивов или сегментов с целью их преобразования, преобразование изображения в целом.
3. Работа с диском. Сюда относится сохранение изображения на диске, считывание его с диска и воспроизведение на экране, объединение двух изображений, обращение к файлу - подсказке.
4. Создание твердых копий. К операциям этой группы относится подготовка и вывод изображений на принтеры нескольких типов и на плоттеры.
При создании изображений на экран под действием управляющих клавиш выводятся образцы примитивов. Используемые при этом клавиши следующие:
После вывода на экран образца примитива инициируется процедура его преобразования. Над каждым примитивом могут выполняться свои операции. Общее управление при этом осуществляется клавишами управления курсором и некоторыми другими клавишами:
Прямая линия может растягиваться и сжиматься, ее второй конец может перемещаться по экрану относительно опорного первого конца. Прямоугольник, треугольник и окружность (эллипс) также могут подвергаться различным трансформациям.
Любые фигуры, ограниченные замкнутыми линиями, могут быть закрашены изнутри заданным цветом. Особый примитив "ластик" имеет вид прямоугольника, под которым происходит стирание любого изображения. Размер этого прямоугольника и его положение на экране может быть изменено, прежде чем произойдет фактическое стирание. Следующие операции применимы ко всем примитивам:
Перемещение примитива осуществляется с помощью стрелок и клавиш Home, PgUp, End, PgDn. Находясь в этом режиме, можно скопировать примитив нажатием клавиши R. При этом текущий примитив фиксируется, а копия находится в режиме перемещения.
Переключение в режим ввода текста осуществляется клавишной командой F3. После завершения ввода можно вновь нажать F3, после чего введенный текстовый фрагмент объявляется сегментом.
Образование сегмента (т.е. объединение выведенных и преобразованных примитивов в единое целое) осуществляется нажатием клавиши F2. Текущая позиция маркера при этом становится точкой привязки данного сегмента.
На этапе редактирования можно иметь доступ как к сегментам, так и к составляющим их примитивам. Поиск примитивов осуществляется после нажатия клавиши F8. При этом на экране начинает мерцать ближайший к маркеру примитив. Его можно выбрать клавишей "Исполнение" или начать последовательный перебор примитивов с помощью стрелок "Вниз", "Вверх". Отказ от поиска происходит при нажатии клавиши Backspace. К выбранному в результате поиска примитиву можно затем применить все операции, описанные выше.
Поиск сегментов осуществляется после нажатия F7. После этого все происходит так же, как и при поиске и выделении примитивов. Над сегментами определены следующие операции:
- повороты на любой угол,
- масштабирование,
- перемещение,
- копирование,
- добавление в сегмент нового примитива,
- удаление из сегмента некоторого примитива,
- объединение двух сегментов,
- разделение сегмента на два сегмента,
- изменение последовательности рисования сегмента,
- изменение точки привязки сегмента,
- изменение цвета сегмента,
- зеркальное отображение сегмента вокруг координатных осей,
- удаление сегмента.
На рис.5.26 показаны результаты различных преобразований текстового сегмента, состоящего из слов ГРАФИЧЕСКИЙ ПРОЦЕССОР.
Рис. 5.26. Преобразование текстового сегмента в системе ВИКОНТ
Переход к работе с диском осуществляется после нажатия клавиши F10. При этом в углу экрана появляется управляющее меню со следующими позициями:
" "
Загрузить
Сохранить
Удалить
Каталог
Объединить
Подсказка
Выход F10
Первая позиция предназначена для ввода имени файла с изображением. Назначение остальных позиций понятно из их названий. Как и в системе ВГРАФ, тип файла определяет формат его хранения. Возможные типы файлов и соответствующие им форматы:
VIC - векторный формат,
PIC - копия экрана,
TXT - текстовый файл (используется только для загрузки с диска).
Основным здесь является формат VIC, однако совместимость с системой ВГРАФ обеспечивается через файлы типа PIC.
Системы иллюстративной графики предназначаются для создания машинных изображений, которые играют роль иллюстративного материала. Это могут быть условные схемы, эскизы, географические карты и др. При создании систем иллюстративной графики основные усилия направлены на то, чтобы графические объекты можно было столь же легко формировать и преобразовывать, как мы формируем и преобразуем массивы чисел с помощью электронных таблиц или тексты при помощи систем подготовки текстов.
Решение такой задачи наталкивается на ряд специфических трудностей. Если при обработке числовой информации можно опираться на хорошо разработанный математический аппарат, а при текстовой обработке - на элементарные операции ввода, сравнения и замены текстовых фрагментов, то для обработки графической информации определить набор базовых операции не так просто. Если применять методы обработки изображений на основе сложного математического аппарата, то это во многих случаях вступит в противоречие с основной целью - созданием пакетов, с которыми было бы легко и приятно работать на ПЭВМ.
С точки зрения внутреннего представления выделяются два класса объектов иллюстративной графики.
1. Изображения на основе регулярных структур. Изображения этого типа имеют вполне определенную форму, их можно однозначно определить на основе простейших геометрических понятий. Примерами могут служить прямоугольники, круги, треугольники. Все эти фигуры задаются определенными наборами параметров. Для того чтобы их копировать, перемещать, масштабировать или изменять цвет, достаточно присвоить соответствующим параметрам новые значения. Способ создания изображений на основе регулярных структур можно сопоставить со способом черчения изображения на листе бумаги с использованием линеек, циркулей и трафаретов. Данный тип изображений относят к так называемой векторной или координатной графике, поскольку каждый элементарный объект задается координатами опорных точек и некоторыми дополнительными параметрами.
2. Изображения на основе нерегулярных структур. В эту категорию попадают такие изображения, которые можно сопоставить с картинами, создаваемыми художником. На ПЭВМ такие изображения создаются методом так называемого свободного рисования, где вместо кистей и красок используются специальные функции, управляемые под действием клавишных команд или сигналов от манипулятора типа "мышь". Первая проблема состоит здесь в том, чтобы нарисовать нерегулярную структуру, а вторая - чтобы произвести в ней различные изменения. Если такие графические операции, как перемещение и копирование, сохраняют свое значение и для нерегулярных структур, то, скажем, одномерное масштабирование оказывается здесь бессмысленным, Данный тип изображений относят к растровой графике, поскольку все изображение слагается в конечном счете из множества (цветных) точек растра.
При помощи систем иллюстративной графики пользователь должен иметь возможность строить изображения путем их компоновки из других, ранее созданных изображений, объединения с текстами и числами, изменения цвета и др. С этой целью в системе иллюстративной графики должны быть реализованы функции, позволяющие:
- "резать", "склеивать" и "стирать" произвольные части изображения;
- обращаться в библиотеку заранее сформированных изображений и вставлять их во вновь создаваемые рисунки;
- применять для рисования разнообразные "кисти", "краски" и трафареты;
- запоминать сформированные иллюстративные материалы на внешних носителях, осуществлять нх поиск и воспроизведение.
Графические системы делового и иллюстративного назначения должны обеспечивать вывод информации как на экран дисплея, так и на бумагу (создание "твердой копии").
ОСНОВНЫЕ ЧЕРТЫ СИСТЕМ ИЛЛЮСТРАТИВНОЙ ГРАФИКИ. В одной из первых популярных систем иллюстративной графики Execuvision формирование изображения осуществлялось при помощи курсора, управляемого клавишами. Меняя размер курсора, пользователь как бы брал в руки рисовальную кисть другой ширины. Для того чтобы провести линию, пользователю достаточно переместить курсор в требуемом направлении или же указать начальную и конечную точки прямой, а всю остальную работу возложить на программу. В системе имеются электронные "ножницы", с помощью которых можно отрезать "части" изображений, с тем чтобы "переклеить" их на другое место экрана. Возможно "оживление" изображений на основе специального алгоритма. Для наложения текста на рисунок пользователю предоставляются десять шрифтовых комплектов с возможностью выбора размера и цвета букв. Система обеспечивает показ слайдов в двух режимах - ручном и автоматическом. Процесс взаимодействия пользователя с системой управляется посредством иерархического меню.
Другая популярная система - PC PAINT также относится к системам растровой графики. Она устроена так, что клавиатура ПЭВМ используется только для ввода имени создаваемого изображения или имени текущего каталога. Все операции, связанные с формированием изображения, управляются с помощью манипулятора "мышь". Функции представлены в позиционном меню, и их выбор осуществляется путем указания на соответствующий условный символ - пиктограмму. Для рисования можно использовать макеты геометрических фигур (прямая, прямоугольник, окружность, дуга), которые также изображены в меню. Выбранную фигуру можно разместить в рабочем поле и затем изменить ее параметры путем растягивания или сжатия отдельных элементов. Цвета выбираются из цветового меню. Имеется возможность установления шести палитр, каждая из которых содержит три цвета. Вдоль нижней границы расположены образцы для закрашивания в виде прямоугольников, заполненных точками, полосками, штрихами и другими образцами.
Меню шрифтов позволяет выбрать один из шести шрифтов и установить размер литер в тексте. Меню редактора позволяет редактировать изображение, предоставляя электронные способы, копирования, перемещения и "переклеивания" фрагментов изображения. Инструментальное меню дает возможность изменять образцы кистей. Можно выделить и увеличить часть изображения с целью тонкой корректировки небольших деталей. PC PAINT позволяет сохранять изображения на дисковом накопителе в двух различных растровых форматах и выводить изображение на матричные принтеры.
Сходными чертами обладает другая популярная система - PC PAINT BRUSH. Отличия в основном состоят в возможности формирования собственных образцов для закрашивания и собственных шрифтов.
Некоторые системы позволяют комбинировать видеоизображение, полученное с видеомагнитофона или видеоканала телевизора, и компьютерную графику. Другая возможность связана со вводом изображения, полученного с помощью фотоаппарата, которое после этого можно редактировать, преобразовать, сохранять во внешней памяти и выводить на бумагу.
Ряд систем ориентирован на создание высококачественных рисунков и иллюстраций. Как правило, в таких случаях предусматривается применение дисплея и графического адаптера с повышенной разрешающей способностью. Так, при использовании в персональном компьютере типа IBM PC усовершенствованного графического адаптера появляется возможность использования шестнадцати различных цветов при разрешающей способности 640*350 точек растра. Это позволяет создавать изображения телевизионного качества и делает системы иллюстративной графики еще более привлекательными. В системах этого типа имеется много дополнительных функций, позволяющих улучшать изображение. К ним относится, в частности, сглаживание ломаных непрерывными линиями, смешивание цветов и др.
В ВЦ АН СССР Б.Т.Сираджовым разработаны две системы иллюстративной графики - графические процессоры ВГРАФ и ВИКОНТ. Первая из этих систем обеспечивает формирование растровых изображений, вторая - векторных (координатных) изображений. Системы взаимно согласованы по формируемым графическим объектам; это означает, что изображения, полученные с помощью одной системы, могут быть введены и дополнительно преобразованы с помощью другой системы. Для создания изображений в обоих процессорах используется несколько способов:
- построение и трансформация элементарных геометрических фигур;
- формирование изображений из отрезков прямых;
- динамическое перемещение объектов из одной позиции в другую, их копирование, закраска или заштриховка;
- наложение заранее созданных библиотечных элементов на вновь создаваемые изображения.
Оба процессора ориентированы на выполнение следующих основные функций:
1) создание и редактирование изображений, с возможностью наложения текстов на изображения;
2) воспроизведение одиночных изображений или их демонстрация в режиме показа слайдов;
3) вывод изображений на устройства твердой копии;
4) взаимодействие с объектной базой и другими компонентами интегрированной системы СПЕКТР.
Ниже приведено краткое описание указанных процессоров.
ГРАФИЧЕСКИЙ ПРОЦЕССОР ВГРАФ. Процессор ВГРАФ управляется с помощью двухуровневого позиционного меню, в котором на 1-м уровне указаны основные операции, а на 2-м уровне выбранная операция может быть уточнена путем указания ее разновидности. На рис.5.25 представлена копия экрана, полученная при работе системы ВГРАФ. В верхней части экрана выводится строка меню 1-го уровня. Отдельные операции представлены в этом меню пиктограммами. Для выбора операции нужно нажать клавишу Esc и затем, нажимая стрелки "Вправо", Влево", выделить пиктограмму с соответствующей операцией. Выделенная позиция отмечена негативным изображением.
Рис.5.25. Копия экрана при работе системы ВГРАФ
Имеется и другой способ выбора операции - путем нажатия алфавитно-цифровой клавиши, соответствующей коду операции. Коды основных операций и их расшифровка приведены в нижеследующей таблице (в скобках даны английские названия операций, начальные буквы которых послужили основой для выбора мнемоничных кодов):
L - построение прямой линии (Line),
N - построение ломаной линии (N-line),
B - построение прямоугольника (Box),
E - построение эллипса (Ellipse),
F - закраска (штриховка) замкнутой области (Fill),
C - выбор цвета (Color),
W - выбор толщины линий (Width),
T - нанесение текста (Text),
D - работа с диском (Disk),
A - выделение прямоугольной области (Area),
S - выбор режима экрана (Screen),
P - вывод изображения на печать (Print).
В меню на рис.5.25 негативным изображением выделена пиктограмма, соответствующая операции закраски. Справа внизу экрана выведено сокращенное название этой операции и соответствующий ей код - буква F. Кроме того, в нижней части экрана выведено меню 2-го уровня, в котором показаны образцы закраски или штриховки. Каждая позиция этого меню имеет номер, и пользователю Для выбора образца достаточно нажать клавишу с соответствующей цифрой. Если после этого нажать клавишу "Исполнение", то система перейдет в режим движения маркера по рабочему полю экрана.
Крестообразный маркер перемещается под действием клавиш "Вправо", "Влево", "Вниз", "Вверх" или под действием сигналов от манипулятора "мышь". Шаг перемещения может быть "изменен нажатием функциональной клавиши F3.
После того как маркер будет помещен в нужную позицию (внутри некоторой области, ограниченной замкнутой линией), нажатие клавиши "Исполнение" активизирует выбранную операцию, и произойдет заштриховка данной области указанным образцом.
Действия пользователя в случае выбора других операций подчиняются описанным выше правилам, но, конечно, смысл каждой операции и их разновидности, задаваемые в меню 2-го уровня, весьма различны. Дадим краткое описание основных операций.
ПОСТРОЕНИЕ ПРЯМОЙ ЛИНИИ. При выборе этой операции в меню 2-го уровня указываются типы линий - сплошная, пунктирная и точечная. После выбора типа (по умолчанию действует сплошная линия) и нажатия клавиши "Исполнение" в рабочем поле появляется перемещающийся маркер. Пользователь должен выбрать положение одного конца линии и зафиксировать его нажатием клавиши "Исполнение", а затем точно так же зафиксировать положение второго конца линии.
ПОСТРОЕНИЕ ЛОМАНОЙ ЛИНИИ. В этом случае тип линии не уточняется, поскольку действует ранее установленный тип. Меню 2-го уровня отсутствует. Остальные действия похожи на вышеописанные. Конец построения каждого отрезка ломаной завершается нажатием клавиши "Исполнение", а завершение построения всей ломаной - нажатием клавиши "+" в правой части клавиатуры.
ПОСТРОЕНИЕ ПРЯМОУГОЛЬНИКА. После выбора этой операции Меню 2-го уровня отсутствует. Пользователь выбирает маркером место в рабочем поле экрана и нажатием клавиши "Исполнение" начинает построение прямоугольника. Клавиши со стрелками позволяют изменить размеры прямоугольника, а вторичное нажатие клавиши "Исполнение" завершает его построение. Стороны прямоугольника рисуются линиями заданного типа и текущим цветом.
ПОСТРОЕНИЕ ЭЛЛИПСА. Здесь также не задается меню 2-го уровня, и действия пользователя похожи на те, которые применяются при построении прямоугольника. Клавиши "Вправо", "Влево" позволяют менять радиус эллипса, а клавиши "Вниз", "Вверх" меняют его эксцентриситет.
ВЫБОР ЦВЕТА. В меню 2-го уровня для данной операции указываются три основных цвета и один - стирающий, совпадающий с цветом фона. Выбранный цвет действует на все последующие построения, включая все виды штриховки.
ВЫБОР ТОЛЩИНЫ ЛИНИЙ. В меню 2-го уровня для данной операции указываются 5 вариантов толщины линий. Выбранная толщина линий действует на все последующие построения.
НАНЕСЕНИЕ ТЕКСТА. Меню 2-го уровня здесь указывает на два варианта размера шрифта. После нажатия клавиши "Исполнение" и выбора маркером места на экране пользователь может вводить произвольный текст, пока не будет нажата клавиша Esc. Переключение между русским и латинским шрифтом, а также между маленькими и большими буквами может происходить по ходу ввода текста клавишами CapsLock и Shift. Клавиша Backspace вызывает последовательное стирание всех введенных за один прием букв и цифр в направлении от конца к началу.
РАБОТА С ДИСКОМ. Меню 2-го уровня в этом случае содержит следующие вторичные операции: 1 - задание имени файла, 2 - загрузка изображения из файла с заданным именем, 3 - сохранение изображения в файле с заданным именем, 4 - временный выход в ДОС (с возможностью возврата по команде EXIT), 0 - полный выход из системы.
ВЫДЕЛЕНИЕ ПРЯМОУГОЛЬНОЙ ОБЛАСТИ. Данная операция позволяет выделить на изображении произвольную прямоугольную область с целью: 1) перемещения ее на новое место, 2) перевода в негативное изображение, 3) стирания, 4) вывода на диск в качестве библиотечного элемента. Этн варианты указываются посредством меню 2-го уровня. Нажатие клавиши "Исполнение" переводит маркер в рабочее поле, где можно выделить прямоугольную область точно такими же действиями, как при построении обычного прямоугольника. Однако после вторичного нажатия клавиши "Исполнение" выделенная область подвергается указанной трансформации. Здесь следует заметить, что для управления перемещением и копированием выделенных областей используются функциональные клавиши:
F3 - изменение шага перемещения,
F4 - копирование,
F5 - переход в режим перемещения.
Все эти клавиши действуют как двоичные переключатели, причем не только в случае работы с выделенной областью, но и при построении отдельных примитивных фигур (прямых, ломаных, прямоугольников и эллипсов).
ВЫБОР РЕЖИМА ЭКРАНА. Меню 2-го уровня в данном случае позволяет менять цвет и фон изображения, стирать все изображение и переходить из цветного режима в черно-белый и обратно.
ВЫВОД ИЗОБРАЖЕНИЯ НА ПЕЧАТЬ. В данной операции меню 2-го уровня позволяет задать левое поле для печати, нормальную или-двойную плотность печати и, наконец, начать собственно вывод на принтер (типа Epson FX-80).
Таковы основные операции при построении изображений. Остается добавить, что меню 1-го уровня можно убирать с рабочего поля и вновь возвращать на место нажатием клавиши F10. Оперативная подсказка выдается после нажатия клавиши F1.
Во внешней памяти изображения, созданные с помощью процессора ВГРАФ, могут сохраняться в нескольких форматах. Каждый формат определяется типом файла при указании его имени для сохранения изображения. Возможные типы и соответствующие им форматы:
PIC - сохранение в виде копии экрана,
РАС - сохранение в упакованном виде,
LBR - сохранение выделенной области в качестве библиотечного элемента,
EPS - сохранение в упакованном виде для печати на принтере.
При сохранении в формате PIC объем файла всегда постоянен и довольно велик - около 16.4 Кбайт. В формате РАС объем файла в среднем колеблется от 2-3 до 5-8 Кбайт (зависит от заполненности экрана). Объем библиотечных элементов минимален.
При вызове процессора ВГРАФ можно в качестве параметров указать несколько заранее приготовленных изображений, для чего в качестве параметров вызова должны быть указаны их имена. После такого вызова в рабочее поле сразу выводится первое из указанных изображений, а при нажатии клавиш Ctrl+<стрелка Вправо> или Ctrl+<стрелка Влево> происходит перебор указанных изображений в режиме показа слайдов. При этом меню не выводится, чтобы не засорять экран. Такой режим удобен для демонстраций во время докладов. При загрузке изображений, сохраненных как библиотечные элементы, ранее выведенные в рабочее поле изображения не стираются; библиотечные элементы могут перемещаться и накладываться на основной рисунок. Благодаря этому в ходе демонстрации можно получать интересные зрительные эффекты.
ГРАФИЧЕСКИЙ ПРОЦЕССОР ВИКОНТ. Процессор ВИКОНТ является второй частью пакета иллюстративной графики, разработанного в ВЦ АН СССР. Эта система позволяет строить векторное графическое изображение, которое включает в себя примитивы - элементарные геометрические фигуры и сегменты - композиции примитивов.
Основными примитивами являются прямая, прямоугольник, треугольник, окружность, цветная замкнутая область, буквы и цифры алфавита. При построении изображения каждый примитив характеризуется такими параметрами, как координаты опорных точек, радиус, цвет, эксцентриситет и т.д. Над примитивами определены операции, позволяющие их преобразовывать. Для каждого примитива определен свой набор операций. Например, можно перемещать любую сторону или вершину треугольника, изменять радиус или эксцентриситет окружности, изменять длину линии, перемещать по экрану и копировать любой примитив и др. Изображение строится путем выбора нужного примитива и преобразования его до нужных размеров, формы и расположения на экране. Для выборки примитивов и операций над ними используются простые клавишные команды.
Примитивы могут объединяться в группы, называемые сегментами. Сегмент - это не просто набор независимых примитивов, а единая структура, которая, как и примитивы, может подвергаться изменениям и использоваться для построения более сложного изображения. У каждого сегмента, как и у любого примитива, есть своя опорная точка или точка привязки к общему изображению.
Реализована возможность поиска, выделения и выбора примитивов и сегментов. Поиск осуществляется с помощью маркера, который перемещается по экрану под действием управляющих клавиш и подводится к выбираемому примитиву или сегменту; после нажатия управляющей клавиши происходит выделение того примитива или сегмента, точка привязки которого ближе всего расположена к маркеру. Выделенный примитив или сегмент отображается мерцанием. Выделенный элемент "можно затем под управлением клавишных команд перемещать, копировать и удалять.
Текстовые сегменты образуются из букв русского и латинского алфавита, а также цифр и знаков. Это позволяет объединять текстовую информацию с графической.
Работа пользователя складывается из следующих этапов.
1. Создание изображения. При этом на экран выводятся образцы примитивов, осуществляется их преобразование и при необходимости объединение в сегменты.
2. Редактирование созданного изображения. Включает поиск и выборку примитивов или сегментов с целью их преобразования, преобразование изображения в целом.
3. Работа с диском. Сюда относится сохранение изображения на диске, считывание его с диска и воспроизведение на экране, объединение двух изображений, обращение к файлу - подсказке.
4. Создание твердых копий. К операциям этой группы относится подготовка и вывод изображений на принтеры нескольких типов и на плоттеры.
При создании изображений на экран под действием управляющих клавиш выводятся образцы примитивов. Используемые при этом клавиши следующие:
После вывода на экран образца примитива инициируется процедура его преобразования. Над каждым примитивом могут выполняться свои операции. Общее управление при этом осуществляется клавишами управления курсором и некоторыми другими клавишами:
Прямая линия может растягиваться и сжиматься, ее второй конец может перемещаться по экрану относительно опорного первого конца. Прямоугольник, треугольник и окружность (эллипс) также могут подвергаться различным трансформациям.
Любые фигуры, ограниченные замкнутыми линиями, могут быть закрашены изнутри заданным цветом. Особый примитив "ластик" имеет вид прямоугольника, под которым происходит стирание любого изображения. Размер этого прямоугольника и его положение на экране может быть изменено, прежде чем произойдет фактическое стирание. Следующие операции применимы ко всем примитивам:
Перемещение примитива осуществляется с помощью стрелок и клавиш Home, PgUp, End, PgDn. Находясь в этом режиме, можно скопировать примитив нажатием клавиши R. При этом текущий примитив фиксируется, а копия находится в режиме перемещения.
Переключение в режим ввода текста осуществляется клавишной командой F3. После завершения ввода можно вновь нажать F3, после чего введенный текстовый фрагмент объявляется сегментом.
Образование сегмента (т.е. объединение выведенных и преобразованных примитивов в единое целое) осуществляется нажатием клавиши F2. Текущая позиция маркера при этом становится точкой привязки данного сегмента.
На этапе редактирования можно иметь доступ как к сегментам, так и к составляющим их примитивам. Поиск примитивов осуществляется после нажатия клавиши F8. При этом на экране начинает мерцать ближайший к маркеру примитив. Его можно выбрать клавишей "Исполнение" или начать последовательный перебор примитивов с помощью стрелок "Вниз", "Вверх". Отказ от поиска происходит при нажатии клавиши Backspace. К выбранному в результате поиска примитиву можно затем применить все операции, описанные выше.
Поиск сегментов осуществляется после нажатия F7. После этого все происходит так же, как и при поиске и выделении примитивов. Над сегментами определены следующие операции:
- повороты на любой угол,
- масштабирование,
- перемещение,
- копирование,
- добавление в сегмент нового примитива,
- удаление из сегмента некоторого примитива,
- объединение двух сегментов,
- разделение сегмента на два сегмента,
- изменение последовательности рисования сегмента,
- изменение точки привязки сегмента,
- изменение цвета сегмента,
- зеркальное отображение сегмента вокруг координатных осей,
- удаление сегмента.
На рис.5.26 показаны результаты различных преобразований текстового сегмента, состоящего из слов ГРАФИЧЕСКИЙ ПРОЦЕССОР.
Рис. 5.26. Преобразование текстового сегмента в системе ВИКОНТ
Переход к работе с диском осуществляется после нажатия клавиши F10. При этом в углу экрана появляется управляющее меню со следующими позициями:
" "
Загрузить
Сохранить
Удалить
Каталог
Объединить
Подсказка
Выход F10
Первая позиция предназначена для ввода имени файла с изображением. Назначение остальных позиций понятно из их названий. Как и в системе ВГРАФ, тип файла определяет формат его хранения. Возможные типы файлов и соответствующие им форматы:
VIC - векторный формат,
PIC - копия экрана,
TXT - текстовый файл (используется только для загрузки с диска).
Основным здесь является формат VIC, однако совместимость с системой ВГРАФ обеспечивается через файлы типа PIC.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Брябрин. Программное обеспечение персональных ЭВМ. 1990
5.5.3. ИНЖЕНЕРНАЯ ГРАФИКА
Основное направление развития систем инженерной графики связано с автоматизацией чертежных и конструкторских работ. Системы автоматизации проектирования (САПР), в которых применяется инженерная графика, имеют самое разное назначение. Наиболее широко они применяются при проектировании компонентов и систем механических, электрических, электромеханических и электронных устройств, в строительстве и архитектуре. Объектами проектирования являются сложные устройства и сооружения - здания, химические и энергетические установки, кузова автомобилей, фюзеляжи самолетов и корпуса судов, их внутренние части, оптические системы, электронные устройства, печатные платы, микросхемы и др. Системы машинной графики при этом могут служить как для эскизирования, так и для создания точных чертежей. В данном разделе будут лишь кратко затронуты некоторые проблемы, связанные с построением систем инженерной графики на персональных компьютерах.
В системах инженерной графики большое внимание уделяется вопросам стандартизации. Первые стандарты на графические системы и языки начали разрабатываться задолго до появления персональных компьютеров.
Главная идея стандартизации состоит в том, чтобы основная часть программного обеспечения машинной графики была аппаратно-независимой. Она должна обеспечивать интерфейс с любым устройством ввода через специальный согласователь, который, конечно, должен быть аппаратно-зависимым. Точно так же необходим интерфейс к любому типу устройств отображения через специальные драйверы. Аппаратно-независимое программное обеспечение должно обслуживать различные аппаратные реализации. Оно должно быть переносимым с одной графической системы на другую.
Стандарты обеспечивают высокий уровень мобильности прикладного программного обеспечения, включающего в себя средства машинной графики; в то же время они способствуют облегчению изучения и использования методов машинной графики прикладными программистами. Производители оборудования для машинной графики благодаря стандартам определяют наиболее эффективное сочетание графических возможностей, подлежащих реализации.
Аппаратно-независимое программное обеспечение имеет две четко выраженные функции: конструирование объектов и манипулирование ими при генерации изображения объекта. Такое разделение привело к концепции двух координатных систем: независимой (мировой) системы координат, в которой конструируется объект, и аппаратной системы координат, в которой описывается выводимое изображение.
В 1979г. был разработан одни из известных стандартов машинной графики - CORE. К настоящему времени предложено еще несколько стандартов такого же класса. К ним, в частности, относятся:
IGES - стандартный протокол обмена графической информацией, принятый в 1981г. Американским институтом национальных стандартов. В нем предусмотрены средства для обмена графическими данными между системами автоматизированного проектирования и производства.
NAPLPS - североамериканский стандарт, принятый в Канаде и США в конце 1983г. Этот стандарт использует последовательность байтов в коде ASCII и коды расширения для описания графической и текстовой информации в отдельных кадрах изображения.
GKS - графическая корневая система. Этот наиболее распространенный стандарт определяет границу между прикладными пакетами и графическим обеспечением; в нем определяется содержимое обеспечивающего пакета. GKS является общепринятым стандартом для двумерной графики.
VDM - метафайл для виртуального устройства, который представляет собой аппаратно-независимый формат, функционирующий на уровне, следующем за драйверами устройств. Метафайл обеспечивает передачу информации об изображениях между различными графическими устройствами.
VDI - интерфейс виртуального устройства, действующий на том же уровне, что и метафайл, и определяющий протокол двусторонней связи. Этот стандарт определяет интерфейс между аппаратно-независимым программным обеспечением и аппаратно-зависимыми кодами для внешних устройств.
GKS представляет собой наиболее распространенный международный стандарт на системы машинной графики. В рамках GKS определены функции генерации, представления, сегментирования, преобразования и ввода изображений. Важным аспектом в решении задач стандартизации является то, что в рамках GKS впервые вводится методологически цельное и полное описание различных концепций машинной графики. Это описание служит основой для выработки общего понимания и общей терминологии в разработке систем машинной графики, в использовании систем машинной графики, в беседах о машинной графике, а также для обучения студентов методам, концепциям и приложениям машинной графики.
В GKS функции машинной графики выполняются на уровне, обеспечивающем их независимость от конкретных устройств ввода и вывода. В рамках GKS совокупность устройств графического ввода и вывода называется рабочей станцией. Преобразование независимого от устройств ввода/вывода представления графических функций в представление, специфическое для конкретной рабочей станции, осуществляется драйверами устройств.
К основным концепциям GKS относятся следующие понятия!
- объекты (примитивы) вывода, из которых строится выходное изображение;
- системы координат и их преобразование;
- рабочие станции, объединяющие вводные и выводные графические устройства;
- сегментация изображений и преобразование сегментов;
- метафайл как средство, обеспечивающее возможность долговременного хранения и передачи изображений;
- списки состояний графической системы;
- уровни, на которые разбито множество функций;
- окно и поле обозрения в пространстве независимых и нормализованных координат и др.
Известен ряд систем инженерной графики для ПЭВМ. Некоторые из них имеют универсальный характер, как, например, известная система Autocad; другие ориентированы на конкретные приложения. В Вычислительном центре АН СССР разработана система геометрического моделирования в трехмерном пространстве с ориентацией на технические изделия машиностроительного профиля. В рамках этой работы был создан язык геометрического моделирования ГЕОМАЛ, который позволяет создавать описание абстрактного геометрического тела, ограниченного кусочно-гладкой поверхностью. Использование такого языка поставило задачу разработки универсального графического редактора как постпроцессора системы геометрического моделирования. Такой редактор - РЕДГРАФ был реализован в ВЦ АН СССР на ПЭВМ. Эта система позволяет в интерактивном режиме формировать сложные геометрические объекты и выдавать их в виде чертежей на бумажные носители. Над внутренним представлением чертежа - графическим файлом - определен обширный набор процедур, позволяющих строить, модифицировать и отображать файл на графические устройства вывода. Архивная система в составе РЕДГРАФа позволяет накапливать большие объемы графической информации в хорошо структурированном виде.
В настоящее время все большее число систем инженерной графики, ориентированных на поддержку работ в САПР машиностроения и электроники, реализуется на персональных компьютерах. Несмотря на ограниченную разрешающую способность стандартных дисплеев ПЭВМ, многие виды графических документов могут готовиться с помощью соответствующих систем. Подключение дополнительных дисплеев с высокой разрешающей способностью (до 1024*1024 точек растра), а также использование быстродействующих микропроцессоров в составе ПЭВМ позволяет превращать их в мощные графические станции, не уступающие мини-ЭВМ.
В качестве одного из примеров широких возможностей, которые предоставляют персональные компьютеры, можно упомянуть систему моделирования объемных объектов - Modelmaker, которая позволяет формировать и анализировать модели объемных объектов для таких областей, как автоматизация проектирования, автоматизация производства, автоматизация инженерных работ и научно-технических расчетов.
5.5.4. НАУЧНАЯ ГРАФИКА. Использование средств машинной графики для научных исследований столь же широко, как и в инженерном деле. В данном разделе будет кратко рассмотрено лишь одно из возможных научных применений машинной графики на ПЭВМ. Рассматриваемая область связана с изучением географических и природных явлений. Графические системы, предназначенные для такого использования, должны обеспечивать создание и обработку географических и рельефных карт, исследовательских карт для бурения и горных работ, океанографических карт, карты погоды и изолиний и др.
Следовательно, карта является особой разновидностью графического объекта. Ее можно представить как изображение, состоящее из нескольких слоев:
- координатной сетки;
- топоосновы - (контурного) изображения некоторого района;
- графического отображения распределенных данных;
- условных знаков, нанесенных в определенные точки карты;
- легенды - объяснения смысла условных знаков;
- позиционного меню, наложенного на изображение карты.
Такая карта может служить разным целям. Во-первых, с ее помощью может изучаться характер распределения данных на фоне изображения исследуемого района, причем здесь важна привязка данных к заданной координатной сетке. Данные могут соответствовать физическим замерам или могут рассчитываться по заданным алгоритмам. Так, в частности, изучаются различные явления в геофизике, распределение биомассы в экологических исследованиях и др. На рис.5.27 приведен пример контурной карты Крыма с нанесенными изолиниями, характеризующими сейсмическую активность этого района.
Рис.5.27. Пример вывода контурной карты с изолиниями
Во-вторых, через посредство карты, играющей роль позиционного меню, может осуществляться запуск определенных расчетных процедур, зависящих от привязки к координатной сетке.
В-третьих, карты могут служить основой при расчете различных вариантов освоения территорий - при прокладке коммуникаций, размещении промышленных объектов и т.п.
При создании объекта типа "карта" часть исходного материала должна готовиться заранее. Так, топооснова обычно задается в виде массива координат, данные вводятся через электронные таблицы или рассчитываются с помощью специальных пакетов программ, условные знаки формируются в виде набора пиктограмм с соответствующими пояснениями. Пользователь при формировании карты связывает все исходные данные в один комплексный объект и наносит необходимые дополнительные пометки - устанавливает в соответствующие точки карты условные знаки, фиксирует точки позиционного меню и др. Поддержка работы с такими системами чрезвычайно важна для принятия решений по различным вопросам, связанным со строительством объектов оценкой влияния различных факторов на природу и др.
К системам научной графики можно отнести также средства формирования научной документации с использованием специальной нотации - прежде всего математических и химических формул. Математический текст - это особый вид объекта, ориентированный на поддержку работы математиков и других исследователей, использующих математическую нотацию. Обычные текстовые редакторы не дают возможности формирования математических текстов, поскольку математические формулы во многих случаях имеют двумерное графическое представление: помимо специальных букв, верхних и нижних индексов, в них могут употребляться графические символы переменной высоты, такие как знак интегрирования, суммы, ограничители матриц, многострочные скобки, дроби и др.
Проблем в данном случае несколько. Во-первых, формулы нужно иметь возможность вводить с клавиатуры, для чего необходимо разработать соответствующий командный язык и стандартизованное внутреннее представление. Во-вторых, необходимо обеспечить генерацию внешнего (экранного) представления формул из стандартизованного внутреннего представления. В-третьих, желательно обеспечить преобразование вводимых формул в такую запись, которая дала бы возможность подключить систему аналитических преобразований. При этом из одних формул могут порождаться другие, которые, в свою очередь, нужно будет выводить на экран.
Точно такие же проблемы возникают при вводе и обработке химических формул. В настоящее время разработано несколько систем для ввода и отображения математических и химических формул, однако пока еще эти системы далеки от совершенства.
Завершая рассмотрение систем машинной графики на персональных ЭВМ, назовем еще несколько областей их применения.
МОДЕЛИРОВАНИЕ И МУЛЬТИПЛИКАЦИЯ. Все большую популярность приобретает изготовление с помощью ЭВМ мультфильмов, демонстрирующих поведение различных моделируемых объектов. С помощью мультипликации можно изучать такие явления, как течение потоков жидкости и газа, ядерные и химические реакции, работу физиологических систем, деформацию конструкций под нагрузкой и другие эффекты.
ТРЕНАЖЕРЫ. Программы на ПЭВМ позволяют моделировать не только неподвижный мир, но и среду, в которой движется самолет, включая такие специальные эффекты, как облака, туман, ночные огни и др. Тренажеры могут служить для тренировки операторов сложных энергетических установок, диспетчеров аэропортов и железнодорожных узлов и др.
УПРАВЛЕНИЕ ТЕХНОЛОГИЧЕСКИМИ ПРОЦЕССАМИ. На больших предприятиях в условиях гибких автоматизированных производств графическое отображение технологических процессов позволяет следить за состоянием отдельных станков и целых цехов, информировать персонал о критических ситуациях и служить многим другим целям.
ПУБЛИКАЦИЯ ГАЗЕТ, ЖУРНАЛОВ И КНИГ. Не вызывает сомнений, что с помощью графических систем на основе ПЭВМ можно существенно упростить и ускорить подготовку и изготовление печатных материалов разного назначения. При этом на компьютере можно подбирать шрифты, компоновать страницы, вставлять в текст рисунки и в конечном счете автоматически управлять высокопроизводительными печатающими установками.
ИСКУССТВО И РЕКЛАМА. С помощью систем иллюстративной графики с успехом создаются произведения искусства и рекламы. Создатели компьютерных изображений могут пользоваться развитыми средствами для интенсификации восприятия создаваемых произведений. Одним из экономически эффективных применений машинной графики в этой области является изготовление слайдов для представления коммерческой, научной и учебной информации, а также подготовка отдельных информационных и рекламных кадров для телевидения.
Основное направление развития систем инженерной графики связано с автоматизацией чертежных и конструкторских работ. Системы автоматизации проектирования (САПР), в которых применяется инженерная графика, имеют самое разное назначение. Наиболее широко они применяются при проектировании компонентов и систем механических, электрических, электромеханических и электронных устройств, в строительстве и архитектуре. Объектами проектирования являются сложные устройства и сооружения - здания, химические и энергетические установки, кузова автомобилей, фюзеляжи самолетов и корпуса судов, их внутренние части, оптические системы, электронные устройства, печатные платы, микросхемы и др. Системы машинной графики при этом могут служить как для эскизирования, так и для создания точных чертежей. В данном разделе будут лишь кратко затронуты некоторые проблемы, связанные с построением систем инженерной графики на персональных компьютерах.
В системах инженерной графики большое внимание уделяется вопросам стандартизации. Первые стандарты на графические системы и языки начали разрабатываться задолго до появления персональных компьютеров.
Главная идея стандартизации состоит в том, чтобы основная часть программного обеспечения машинной графики была аппаратно-независимой. Она должна обеспечивать интерфейс с любым устройством ввода через специальный согласователь, который, конечно, должен быть аппаратно-зависимым. Точно так же необходим интерфейс к любому типу устройств отображения через специальные драйверы. Аппаратно-независимое программное обеспечение должно обслуживать различные аппаратные реализации. Оно должно быть переносимым с одной графической системы на другую.
Стандарты обеспечивают высокий уровень мобильности прикладного программного обеспечения, включающего в себя средства машинной графики; в то же время они способствуют облегчению изучения и использования методов машинной графики прикладными программистами. Производители оборудования для машинной графики благодаря стандартам определяют наиболее эффективное сочетание графических возможностей, подлежащих реализации.
Аппаратно-независимое программное обеспечение имеет две четко выраженные функции: конструирование объектов и манипулирование ими при генерации изображения объекта. Такое разделение привело к концепции двух координатных систем: независимой (мировой) системы координат, в которой конструируется объект, и аппаратной системы координат, в которой описывается выводимое изображение.
В 1979г. был разработан одни из известных стандартов машинной графики - CORE. К настоящему времени предложено еще несколько стандартов такого же класса. К ним, в частности, относятся:
IGES - стандартный протокол обмена графической информацией, принятый в 1981г. Американским институтом национальных стандартов. В нем предусмотрены средства для обмена графическими данными между системами автоматизированного проектирования и производства.
NAPLPS - североамериканский стандарт, принятый в Канаде и США в конце 1983г. Этот стандарт использует последовательность байтов в коде ASCII и коды расширения для описания графической и текстовой информации в отдельных кадрах изображения.
GKS - графическая корневая система. Этот наиболее распространенный стандарт определяет границу между прикладными пакетами и графическим обеспечением; в нем определяется содержимое обеспечивающего пакета. GKS является общепринятым стандартом для двумерной графики.
VDM - метафайл для виртуального устройства, который представляет собой аппаратно-независимый формат, функционирующий на уровне, следующем за драйверами устройств. Метафайл обеспечивает передачу информации об изображениях между различными графическими устройствами.
VDI - интерфейс виртуального устройства, действующий на том же уровне, что и метафайл, и определяющий протокол двусторонней связи. Этот стандарт определяет интерфейс между аппаратно-независимым программным обеспечением и аппаратно-зависимыми кодами для внешних устройств.
GKS представляет собой наиболее распространенный международный стандарт на системы машинной графики. В рамках GKS определены функции генерации, представления, сегментирования, преобразования и ввода изображений. Важным аспектом в решении задач стандартизации является то, что в рамках GKS впервые вводится методологически цельное и полное описание различных концепций машинной графики. Это описание служит основой для выработки общего понимания и общей терминологии в разработке систем машинной графики, в использовании систем машинной графики, в беседах о машинной графике, а также для обучения студентов методам, концепциям и приложениям машинной графики.
В GKS функции машинной графики выполняются на уровне, обеспечивающем их независимость от конкретных устройств ввода и вывода. В рамках GKS совокупность устройств графического ввода и вывода называется рабочей станцией. Преобразование независимого от устройств ввода/вывода представления графических функций в представление, специфическое для конкретной рабочей станции, осуществляется драйверами устройств.
К основным концепциям GKS относятся следующие понятия!
- объекты (примитивы) вывода, из которых строится выходное изображение;
- системы координат и их преобразование;
- рабочие станции, объединяющие вводные и выводные графические устройства;
- сегментация изображений и преобразование сегментов;
- метафайл как средство, обеспечивающее возможность долговременного хранения и передачи изображений;
- списки состояний графической системы;
- уровни, на которые разбито множество функций;
- окно и поле обозрения в пространстве независимых и нормализованных координат и др.
Известен ряд систем инженерной графики для ПЭВМ. Некоторые из них имеют универсальный характер, как, например, известная система Autocad; другие ориентированы на конкретные приложения. В Вычислительном центре АН СССР разработана система геометрического моделирования в трехмерном пространстве с ориентацией на технические изделия машиностроительного профиля. В рамках этой работы был создан язык геометрического моделирования ГЕОМАЛ, который позволяет создавать описание абстрактного геометрического тела, ограниченного кусочно-гладкой поверхностью. Использование такого языка поставило задачу разработки универсального графического редактора как постпроцессора системы геометрического моделирования. Такой редактор - РЕДГРАФ был реализован в ВЦ АН СССР на ПЭВМ. Эта система позволяет в интерактивном режиме формировать сложные геометрические объекты и выдавать их в виде чертежей на бумажные носители. Над внутренним представлением чертежа - графическим файлом - определен обширный набор процедур, позволяющих строить, модифицировать и отображать файл на графические устройства вывода. Архивная система в составе РЕДГРАФа позволяет накапливать большие объемы графической информации в хорошо структурированном виде.
В настоящее время все большее число систем инженерной графики, ориентированных на поддержку работ в САПР машиностроения и электроники, реализуется на персональных компьютерах. Несмотря на ограниченную разрешающую способность стандартных дисплеев ПЭВМ, многие виды графических документов могут готовиться с помощью соответствующих систем. Подключение дополнительных дисплеев с высокой разрешающей способностью (до 1024*1024 точек растра), а также использование быстродействующих микропроцессоров в составе ПЭВМ позволяет превращать их в мощные графические станции, не уступающие мини-ЭВМ.
В качестве одного из примеров широких возможностей, которые предоставляют персональные компьютеры, можно упомянуть систему моделирования объемных объектов - Modelmaker, которая позволяет формировать и анализировать модели объемных объектов для таких областей, как автоматизация проектирования, автоматизация производства, автоматизация инженерных работ и научно-технических расчетов.
5.5.4. НАУЧНАЯ ГРАФИКА. Использование средств машинной графики для научных исследований столь же широко, как и в инженерном деле. В данном разделе будет кратко рассмотрено лишь одно из возможных научных применений машинной графики на ПЭВМ. Рассматриваемая область связана с изучением географических и природных явлений. Графические системы, предназначенные для такого использования, должны обеспечивать создание и обработку географических и рельефных карт, исследовательских карт для бурения и горных работ, океанографических карт, карты погоды и изолиний и др.
Следовательно, карта является особой разновидностью графического объекта. Ее можно представить как изображение, состоящее из нескольких слоев:
- координатной сетки;
- топоосновы - (контурного) изображения некоторого района;
- графического отображения распределенных данных;
- условных знаков, нанесенных в определенные точки карты;
- легенды - объяснения смысла условных знаков;
- позиционного меню, наложенного на изображение карты.
Такая карта может служить разным целям. Во-первых, с ее помощью может изучаться характер распределения данных на фоне изображения исследуемого района, причем здесь важна привязка данных к заданной координатной сетке. Данные могут соответствовать физическим замерам или могут рассчитываться по заданным алгоритмам. Так, в частности, изучаются различные явления в геофизике, распределение биомассы в экологических исследованиях и др. На рис.5.27 приведен пример контурной карты Крыма с нанесенными изолиниями, характеризующими сейсмическую активность этого района.
Рис.5.27. Пример вывода контурной карты с изолиниями
Во-вторых, через посредство карты, играющей роль позиционного меню, может осуществляться запуск определенных расчетных процедур, зависящих от привязки к координатной сетке.
В-третьих, карты могут служить основой при расчете различных вариантов освоения территорий - при прокладке коммуникаций, размещении промышленных объектов и т.п.
При создании объекта типа "карта" часть исходного материала должна готовиться заранее. Так, топооснова обычно задается в виде массива координат, данные вводятся через электронные таблицы или рассчитываются с помощью специальных пакетов программ, условные знаки формируются в виде набора пиктограмм с соответствующими пояснениями. Пользователь при формировании карты связывает все исходные данные в один комплексный объект и наносит необходимые дополнительные пометки - устанавливает в соответствующие точки карты условные знаки, фиксирует точки позиционного меню и др. Поддержка работы с такими системами чрезвычайно важна для принятия решений по различным вопросам, связанным со строительством объектов оценкой влияния различных факторов на природу и др.
К системам научной графики можно отнести также средства формирования научной документации с использованием специальной нотации - прежде всего математических и химических формул. Математический текст - это особый вид объекта, ориентированный на поддержку работы математиков и других исследователей, использующих математическую нотацию. Обычные текстовые редакторы не дают возможности формирования математических текстов, поскольку математические формулы во многих случаях имеют двумерное графическое представление: помимо специальных букв, верхних и нижних индексов, в них могут употребляться графические символы переменной высоты, такие как знак интегрирования, суммы, ограничители матриц, многострочные скобки, дроби и др.
Проблем в данном случае несколько. Во-первых, формулы нужно иметь возможность вводить с клавиатуры, для чего необходимо разработать соответствующий командный язык и стандартизованное внутреннее представление. Во-вторых, необходимо обеспечить генерацию внешнего (экранного) представления формул из стандартизованного внутреннего представления. В-третьих, желательно обеспечить преобразование вводимых формул в такую запись, которая дала бы возможность подключить систему аналитических преобразований. При этом из одних формул могут порождаться другие, которые, в свою очередь, нужно будет выводить на экран.
Точно такие же проблемы возникают при вводе и обработке химических формул. В настоящее время разработано несколько систем для ввода и отображения математических и химических формул, однако пока еще эти системы далеки от совершенства.
Завершая рассмотрение систем машинной графики на персональных ЭВМ, назовем еще несколько областей их применения.
МОДЕЛИРОВАНИЕ И МУЛЬТИПЛИКАЦИЯ. Все большую популярность приобретает изготовление с помощью ЭВМ мультфильмов, демонстрирующих поведение различных моделируемых объектов. С помощью мультипликации можно изучать такие явления, как течение потоков жидкости и газа, ядерные и химические реакции, работу физиологических систем, деформацию конструкций под нагрузкой и другие эффекты.
ТРЕНАЖЕРЫ. Программы на ПЭВМ позволяют моделировать не только неподвижный мир, но и среду, в которой движется самолет, включая такие специальные эффекты, как облака, туман, ночные огни и др. Тренажеры могут служить для тренировки операторов сложных энергетических установок, диспетчеров аэропортов и железнодорожных узлов и др.
УПРАВЛЕНИЕ ТЕХНОЛОГИЧЕСКИМИ ПРОЦЕССАМИ. На больших предприятиях в условиях гибких автоматизированных производств графическое отображение технологических процессов позволяет следить за состоянием отдельных станков и целых цехов, информировать персонал о критических ситуациях и служить многим другим целям.
ПУБЛИКАЦИЯ ГАЗЕТ, ЖУРНАЛОВ И КНИГ. Не вызывает сомнений, что с помощью графических систем на основе ПЭВМ можно существенно упростить и ускорить подготовку и изготовление печатных материалов разного назначения. При этом на компьютере можно подбирать шрифты, компоновать страницы, вставлять в текст рисунки и в конечном счете автоматически управлять высокопроизводительными печатающими установками.
ИСКУССТВО И РЕКЛАМА. С помощью систем иллюстративной графики с успехом создаются произведения искусства и рекламы. Создатели компьютерных изображений могут пользоваться развитыми средствами для интенсификации восприятия создаваемых произведений. Одним из экономически эффективных применений машинной графики в этой области является изготовление слайдов для представления коммерческой, научной и учебной информации, а также подготовка отдельных информационных и рекламных кадров для телевидения.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Брябрин. Программное обеспечение персональных ЭВМ. 1990
5.6. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ ПРИКЛАДНЫЕ СИСТЕМЫ
Реализация конкретной прикладной автоматизированной системы на ПЭВМ может осуществляться по двум направлениям. Одно из них, более распространенное, предполагает первоочередную разработку отдельных функциональных компонентов, которые затем связываются в единую систему.
Возникающие при этом проблемы выбора внутреннего представления данных и реализации пользовательского интерфейса решаются, исходя из потребностей конкретной группы пользователей, для которых создается система. При таком подходе автоматизированная система наиболее точно соответствует исходным требованиям и, вообще говоря, наилучшим образом использует ресурсы ЭВМ. Однако процесс разработки в этом случае сильно затягивается, а возможности переноса конкретных компонентов и полученного опыта на системы других классов весьма ограниченны - новые автоматизированные системы разрабатываются обычно заново.
Другое направление предполагает создание ряда унифицированных компонентов, которые в совокупности образуют как бы обрамление для специальных функциональных подсистем. В этом случае разработчики могут воспользоваться готовыми модулями и пакетами для компоновки конкретной автоматизированной системы, дополняя их в случае необходимости специализированными пакетами. При этом, возможно, утрачивается оптимальность с точки зрения наилучшего использования ресурсов ЭВМ для решения данного класса задач, зато сроки разработки резко сокращаются. Новые классы автоматизированных систем при таком подходе могут создаваться с существенным использованием прежнего опыта.
Рассматриваемый здесь объектно-ориентированный подход, принятый в ВЦ АН СССР, направлен на поддержку разработки автоматизированной системы по второму пути. Проблема в этом случае состоит в том, чтобы сформировать типовую архитектуру прикладной системы, выбрать и реализовать компоненты, которые будут наиболее часто использоваться в конкретных разработках.
На рис.5.28 представлена в общем виде типовая архитектура прикладной системы, основанной на объектно-ориентированном подходе. Основные универсальные компоненты такой системы:
1) унифицированный интерфейс с пользователем, включающий систему управления дисплейными окнами, библиотеку программ управления меню и интерпретатор схем диалога;
2) система управления объектной базой, основанная на работе со специально организованной виртуальной памятью на основе файловой системы;
3) унифицированные функциональные процессоры, обеспечивающие работу со стандартизованными типами объектов.
Рис.5.28. Структура прикладной автоматизированной системы
Унифицированный интерфейс обеспечивает стандартизованный метод взаимодействия пользователей с ПЭВМ, что предусматривает:
- единообразное использование экрана при выводе текстовой и графической информации,
- единообразное использование управляющих клавиш клавиатуры,
- единую кодировку символьной информации и порядок подстановки специальных кодовых таблиц,
- единый способ оформления и выдачи подсказок,
- стандартный способ вывода и использования управляющих меню,
- стандартный способ оформления схем диалога.
Первые четыре функции обеспечиваются применением резидентной системы управления дисплейными окнами (администратора окон). Работа с меню и подсказками поддерживается специальной библиотекой подпрограмм (администратором меню). Управление диалогом осуществляется через интерпретатор схем диалога.
СИСТЕМА УПРАВЛЕНИЯ ОБЪЕКТНОЙ БАЗОЙ (СУОБ). Обеспечивает стандартное представление терминальных данных (целых и десятичных чисел, строк, примитивных графических элементов) и структурных объектов, состоящих из отдельных компонентов (текстов, таблиц, изображений, составных объектов).
СУОБ включает специальный пакет, обеспечивающий работу с виртуальной памятью; при этом отдельные элементы данных размещаются в общем хранилище и снабжаются уникальными внутренними именами (ключами), по которым к ним осуществляется доступ из функциональных процессоров и любых прикладных программ. Виртуальная память реализуется на обычных файлах с прямым доступом. Кроме того, стандартная файловая система ДОС используется для хранения больших текстов и некоторых специальных объектов.
Для представления информационных моделей может быть применена организация данных, основанная на фреймовом подходе, основы которого будут рассмотрены ниже.
Унифицированные функциональные процессоры обеспечивают работу с типовыми объектами - текстами, таблицами, графиками, рисунками и др.
Эти объекты могут служить носителями содержательной информации данной предметной области. Благодаря единому подходу к их реализации обеспечивается взаимное согласование представлений данных и обмен между компонентами разных объектов. Функциональные процессоры снабжаются двумя средствами доступа к обрабатываемым объектам:
- взаимодействие с пользователями осуществляется на основа унифицированного пользовательского интерфейса;
- обращение к функциональным процессорам из прикладных программ обеспечивается через процедурный интерфейс.
ИНТЕРПРЕТАТОР СХЕМ ДИАЛОГА. Взаимодействие человека и машины при решении прикладной задачи всегда протекает в рамках сценария, задуманного и реализованного создателем системы. Во многих традиционных прикладных системах подпрограммы или отдельные операторы, обеспечивающие диалог с пользователем, перемежаются с содержательной частью программы. В таком случае внесение изменений в диалог влечет за собой новую трансляцию соответствующих программ. Это препятствует удобной настройке системы для конкретных задач и пользователей.
Предлагаемый метод, в отличие от традиционного, предполагает работу с формальным описанием диалогового сценария, отделенным от содержательной части прикладной системы, что дает удобную возможность его модификации. Тем самым обеспечивается адаптивность системы, т.е. ее способность к динамической подстройке в соответствии с конкретными потребностями пользователей.
Основная информационная единица D, описывающая этап диалога, называется в соответствии с развиваемым подходом диалоговым состоянием или Д-объектом. Множество Д-объектов {D} определяет схему диалога (СД) или Д-схему. Вводится четыре основных типа Д-объектов:
(1) текстовое меню,
(2) графическое меню,
(3) запрос значения,
(4) заполнение формата.
Первые два типа Д-объектов будем относить к обобщенной категории "меню", два других типа - к категории "ввод значений". Рассмотрим способы работы пользователя с каждым из указанных типов Д-объектов.
(1) Текстовое меню обеспечивает выбор одной из нескольких заранее составленных альтернатив.. При инициации такого Д-объекта на экране дисплея появляется окно, в котором отображаются альтернативные позиции меню, представленные текстовыми строками или отдельными словами (рис.5.29). Эти строки или слова называются метками меню. Окно с метками может иметь форму столбца, строки или таблицы. Перебор позиций осуществляется перемещением манипулятора "мышь" либо нажатием клавиш со стрелками на клавиатуре,- при этом выделенная позиция меню на экране отмечается инверсией цвета или другим визуальным способом.
Рис.5.29. Вид экрана при выводе текстового меню и запросе формата
Во второе, вспомогательное, окно при нажатии специальной клавиши "Подсказка" выводится текст комментария к соответствующей позиции меню. Комментарий содержит более пространное пояснение данной позиции по сравнению с лаконичным текстом метки меню. Окно с комментарием может быть удалено с экрана повторным нажатием клавиши "Подсказка".
С каждой позицией меню связывается также действие. Действие задается текстовой строкой, которая является командой схемы диалога. В качестве команды может, в частности, фигурировать любая команда ДОС, что обеспечивает вызов произвольных служебных и прикладных программ. Кроме того, в качестве команд могут использоваться специальные операторы GOSUB, GOTO, RUN, RETURN, EXIT, позволяющие организовать структурное управление диалогом.
Действие, как и комментарий, выводится в отдельное дисплейное окно при нажатии специальной клавиши "Показать действие", и здесь его перед исполнением можно отредактировать; однако в нормальном режиме тексты команд, задающих действия, не видны пользователю. Пример оформления текстового меню:
*tmenu (1 12 10 14 4 25) /Основные показатели
Фонды/Таблица для расчета основных фондов/sp fonds
Мощности/Сводка мощностей агрегатов/sp powers
Территория/Карта-схема предприятия/vis terr
План-график/Расчет сетевого графика/pert gg
end of tmenu
Первая строка приведенного текста является заголовком: в ней содержится указатель текстового меню "tmenu, параметры дисплейного окна и текстовый комментарий. Всего в данном меню 4 позиции.
Каждая позиция включает 3 текстовых компонента, разделенных знаком /:
<метка> / <комментарий> / <действие>
При инициации данного меню на экране появляется рабочее окно с метками, а при нажатии клавиши "Подсказка" в нижней части экрана появится еще одно окно с комментарием. Картина на экране приобретает вид, показанный на рис.5.29а.
Пользователь может выбрать в рабочем окне нужную позицию, перемещая маркер с помощью управляющих стрелок на клавиатуре или манипулятора "мышь". Нажатие клавиши "Исполнение" вызывает срабатывание действия, соответствующего выбранной позиции меню. По окончании исполнения действия управление возвращается в данное состояние СД.
(2) Графическое меню, как и текстовое, служит для выбора одной из нескольких заранее описанных альтернатив. Но, в отличие от текстового меню, в данном случае на экран выводится не таблица с метками, а изображение, приготовленное с помощью графического процессора,- это может быть географическая карта,условная схема изделия,организационная структура предприятия, рекламный текст и др. На изображении заранее выделяются прямоугольные области - графические позиции, по которым перемещается управляемый пользователем маркер. В описании каждой альтернативы вместо текстовой метки стоит четверка чисел, которые задают координаты прямоугольной области, ограничивающей данную графическую позицию. Координаты указываются, исходя из разрешающей способности дисплея в графическом режиме: 320 точек по горизонтали, 200 по вертикали. Комментарии и действия оформляются точно так же, как и в текстовом меню. Пример описания графического меню:
*gmenu /WORLD.PIC
7 17 12 40 /Северная Америка/gosub NoAmer
13 20 16 35 /Центральная Америка/gosub CeAmer
17 19 22 39 /Южная Америка/gosub SoAmer
10 126 18 141 /Западная Европа/gosub WeEur
10 142 14 190 /Восточная Европа/gosub EaEur
7 150 20 290 /СССР/gosub USSR
20 135 24 185 /Африка/gosub Africa
17 180 21 215 /Ближний Восток /gosub MiEast
16 220 22 270 /Южная Азия/gosub SoAsia
14 272 20 290 /Юго-Восточная Азия/gosub SoEast
19 270 24 300/ Австралия, Океания/gosub Austr
end of gmenu
В данном примере на фоне карты мира, выводимой на экран из файла WORLD.PIC, задано 11 графических позиций, соответствующих разным географическим регионам. При перемещении из одной позиции в другую на экране выделяется соответствующий прямоугольник, ограниченный указанными координатами. Нажатие клавиши "Исполнение" означает выбор данной позиции и начало выполнения указанных действий. В приведенном примере в качестве действий во всех позициях указаны команды перехода на подсхемы, где, в свою очередь, могут быть описаны новые диалоговые состояния или заданы команды для исполнения.
(3) Запрос значения - особый вид диалогового состояния, предназначенный для запроса у пользователя некоторой величины с целью ее передачи для обработки прикладной программе. В описании данного состояния указывается:
- позиция (номер строки экрана) для выдачи текста вопроса;
- текст вопроса, в котором поясняется смысл вводимой величины;
- фильтр-предикат, с помощью которого оценивается правильность введенной величины (фильтр не обязателен);
- диалоговая переменная, в которую заносится введенное значение.
Человек должен ответить на заданный системой вопрос вводом определенной величины. Введенное значение присваивается диалоговой переменной с целью последующего использования в данной СД или в прикладных программах. При этом оно может быть подвергнуто предварительной проверке с помощью заранее определенных фильтров-предикатов. Так, например, можно проверить, является ли введенное значение символьной или числовой константой, попадает ли числовая константа в заданный диапазон и др. Пример оформления запроса в СД:
askval 24 "Коэффициент прироста?"/filter RANGE 1 9/putvar 1
При инициации данного состояния в 24 строке экрана появляется вопрос "Коэффициент прироста?". Пользователь должен ввести в ответ числовое значение, которое затем проверяется предикатом RANGE на попадание в диапазон (1..9), а затем заносится программой putvar в диалоговую переменную под номером 1. Если значение введено неправильно, то предикат RANGE выдаст диагностическое сообщение и запрос повторится. Значение диалоговой переменной может далее использоваться в прикладной программе, вызываемой из данной СД.
(4) Заполнение формата - еще одна разновидность диалогового состояния, обеспечивающего ввод значений для их последующей обработки прикладными программами. В отличие от запроса значения, здесь пользователю выдается формат - таблица, в которой определенным текстовым комментариям сопоставляются позиции для ввода требуемых величин. Пример оформления состояния данного типа:
*format (1 7 5 14 4 25)/Годовой бюджет (тыс. руб.)
Капит. затраты/Расходы на подготовку помещений / var 1
Оборудование/Затраты на приобретение оборудования/var 2
Зарплата/Общий фонд зарплаты/var 3
Экспл. расходы/Расходы на эксплуатацию/var 4
end of format
По внешнему виду описатель состояния данного типа похож на описатель текстового меню. При инициации на экран выводится таблица меток, а рядом с ней таблица для ввода значений. В отдельное окно, как и в случае текстового меню, может быть выведен комментарий к выбранной позиции. Изображение на экране приобретает вид, показанный на рис.5.29б.
В отличие от текстового меню, здесь пользователь не просто выбирает одну из позиций, а может вводить в соседнем окне значения запрашиваемых величии. Эти значения присваиваются диалоговым переменным с номерами 1..4. Как и при использовании askval, здесь можно применять предикаты для фильтрации полученных значений. Оформление фильтра-предиката выглядит так же, как и в случае askval, например:
filter range 100 150/putvar 1
Значения диалоговых переменных могут далее передаваться в качестве аргументов прикладным программам.
Схема диалога представляет собой обычный текстовый файл, который обрабатывается интерпретатором СД. Строки или фрагменты этого файла могут содержать:
1) описания диалоговых состояний,
2) обращения к встроенным командам ДОС,
3) обращения к любым внешним, программам,
4) команды управления,
5) метки.
К командам управления относятся уже упоминавшиеся выше операторы:
GOSUB - переход на подсхему данной СД,
GOTO - переход на помеченную строку в данной СД,
RUN - вызов другой (подчиненной) СД,
RETURN - возврат из подсхемы или из подчиненной СД,
EXIT - выход из интерпретатора СД.
Операторы GOSUB и GOTO используются для передач управления внутри данной СД. При этом GOSUB передает управление на помеченный фрагмент, который должен заканчиваться оператором RETURN. Такой фрагмент называется подсхемой. Подсхема может также оканчиваться оператором EXIT или же статически находиться в конце файла, содержащего СД.
Оператор GOTO передает управление на помеченный участок данной СД, и выход с этого участка может быть оформлен любым способом.
Оператор RUN, в отличие от первых двух, обеспечивает вызов по имени подчиненной СД, которая содержится в другом файле. При вызове подчиненной СД интерпретация ведущей схемы приостанавливается и возобновляется вновь после исполнения команды RETURN в подчиненной схеме.
Метки в СД оформляются так же, как в командных файлах ДОС,- это идентификаторы, префиксируемые знаком :. Благодаря этому интерпретатор СД может обрабатывать обычные командные файлы ДОС, считая их разновидностями СД.
Диалоговые переменные, вводимые в СД в состояниях типа askval и format, как указывалось, могут использоваться Для передачи значений в прикладные программы. "Взятие" значения диалоговой ггеременной, сформированной программой putvar, осуществляется с помощью программы getvar. Пример взятия значения диалоговой переменной номер 1:
getvar 1
Программа getvar считывает указанное значение из внутреннего буфера и посылает его на стандартное устройство вывода. Это позволяет передать его через механизм "каналов" ДОС любой прикладной программе, воспринимающей данные со стандартного устройства ввода, или в любой внешний файл. Примеры пересылки диалоговой переменной с номером n:
getvar n | имя_программы
getvar n > имя_файла
При обращении к getvar с аргументом -n берутся значения n диалоговых переменных и передаются в виде массива прикладной программе или во внешний файл.
Ниже приведен пример схемы диалога, включающей два текстовых меню. При инициации данной схемы сначала на экран выводится главное меню, содержащее позиции для выбора текстового или графического процессора, транслятора Бейсик или системы Альфа, а также для перехода на подчиненную схему (с именем games) или на подсхему с меткой dos. В то время как в первых трех позициях происходит прямой вызов внешних программ, в других позициях происходят переходы на подсхемы, возврат из которых осуществляется операторами RETURN. В данном примере видно, что обычные команды ДОС, например, cls, cd естественно сочетаются с описаниями диалоговых состояний:
scheme
cls
*tmenu (1 10 12 24 7 24) /Альфа-Диалог - ВЦ АН СССР
Текст/Вызов текстового процессора/lex
Графика/Вызов графического процессора/vgraf
Бейсик/Вызов интерпретатора Бейсик/basic
Альфа/Вызов системы Альфа/gosub alfa
ДОС/Некоторые команды ДОС/gosub dos
Игры/Вызов подсхемы для выбора игры/run games
Выход/Возврат в ДОС/exit
end of tmenu
:alfa
cd \alfa
sp alfa
cd ..
return
:dos
*tmenu (1 U 15 24 7 24) /Альфа-ДОС-16
Каталог/Выдача текущего каталога/dir;
Печать файла/Введите имя файла/type;
Копирование файлов/Укажите <источник> и <назначение>/сору;
Диск C:/Переход на жесткий диск/с:
Диск A:/Переход на гибкий диск/а:
Дата/Установка даты/date
Время/Установка времени/time
end of tmenu
return
end of scheme
Использование интерпретатора схем диалога особенно удобно при компоновке прикладных автоматизированных систем из разнородных компонентов. Схемы диалога создаются с помощью специального конструктора или путем применения обычного текстового редактора. Интерпретатор СД, реализованный в ВЦ АН СССР В.А.Рыжовым, базируется на использовании администратора окон и администратора меню. Благодаря этому обеспечивается унифицированный интерфейс пользователя с прикладными системами на всех уровнях взаимодействия.
ФРЕЙМОВЫЙ ПОДХОД К ОРГАНИЗАЦИИ ОБЪЕКТНОЙ БАЗЫ. Фреймы являются основой организации объектной базы в рассматриваемом подходе. Общая структура проблемно-ориентированных объектов на основе фреймов представлена на рис.5.30.
Рис.5.30. Представление объектов на основе фреймового подхода
Ядром данной структуры является ее описатель, в котором содержится:
- уникальный ключ (системное имя) данного фрейма,
- внешнее имя фрейма (комментарий),
- ссылка на список свойств,
- ссылка на список экземпляров,
- ссылка на список точек зрения,
- ссылка на список ассоциированных с данным фреймом программ.
Уникальный ключ формируется при создании фрейма и остается его постоянным идентификатором на всем протяжении жизни данного фрейма. Все остальные компоненты фрейма могут изменяться с течением времени либо под воздействием команд пользователя, либо при выполнении определенных внутрисистемных функций.
Внешнее имя фрейма - это текстовая строка, в частности, одно слою, которое служит для пояснения роли данного объекта и его содержимого. При выводе на экран списка фреймов выдаются прежде всего их внешние имена, что дает человеку возможность сориентироваться по такому списку в круге основных понятий предметной области.
Список свойств (p1 .. pm) задает типы значений в экземплярах фрейма. Каждое свойство снабжается внешним именем - комментарием и, кроме того, имеет порядковый номер, по которому к нему может осуществляться доступ с использованием процедурного интерфейса. Число свойств определяет максимальное число элементов данных в экземплярах данного фрейма.
Список экземпляров указывает на основные носители содержательной информации - экземпляры фрейма. Отдельный экземпляр может содержать набор элементов данных, удовлетворяющих описателям свойств. Элементом данных в экземпляре может быть значение одного нз следующих типов:
- число,
- текстовая строка,
- вычисляемая формула,
- дата,
- время,
- ссылка на команду ДОС, в частности, на любую программу,
- ссылка на другой информационный объект или его компоненты.
В этом перечне указаны простые значения - числовые, текстовые,
обозначения времени и дата, и ссылочные значения. Последние играют особенно важную роль, поскольку с их помощью легко организуются сложные взаимосвязи между объектами. Подчиненные объекты могут быть активными (программами и пакетами программ) и пассивными (структурами данных). Такая организация фреймового объекта ставит его в ряд с абстрактным типом данных.
В частности, рассматриваемая организация позволяет имитировать иерархические и сетевые модели данных, а при одинаковом числе элементов данных во всех экземплярах описываемая структура становится идентичной отношению реляционной базы данных.
Таким образом, фрейм с экземплярами представляет особую информационную модель, на основе которой могут имитироваться другие традиционные модели данных и абстрактные типы.
Список точек зрения представляет собой важнейший компонент пользовательского интерфейса к объектной базе. Фреймовый объект, как таковой, является лишь носителем информации; пользователем он может рассматриваться с разных точек зрения, т.е. иметь разные виды. Основные виды фреймовых объектов: базовый, табличный, трафаретный.
Базовый вид обеспечивает доступ пользователя ко всем компонентам описателя фрейма, к описателям всех свойств и ко всем экземплярам данного фрейма. Следовательно, это наиболее полный и соответственно наиболее сложный способ доступа к фреймовым объектам.
Табличный вид дает естественное представление группы экземпляров. При этом в конкретной таблице могут быть показаны лишь некоторые избранные свойства фрейма. Разные таблицы, привязанные к одному и тому же фреймовому объекту, позволяют просматривать содержимое экземпляров в разных аспектах. Таблица имеет внешнее имя, которое становится вариантом имени данного фрейма. В таблице также задается заголовок; в ней определены столбцы, отображающие свойства фрейма, а каждый экземпляр отображается в одной из строк. Таблицу можно прокручивать по горизонтали, получая доступ к невидимым на экране столбцам, или по вертикали, получая доступ к новым экземплярам.
Трафаретный вид предназначен для создания и просмотра отдельных экземпляров и для заданий образцов поиска. Трафарет аналогичен листу бумаги с надписями и прорезями, через которые видны определенные свойства экземпляров. Через такие прорези, называемые слотами, можно вводить и просматривать данные.
При поиске и отборе подмножества экземпляров трафарет используется для формирования поискового предписания. При этом в соответствующих слотах указываются ограничения на отдельные свойства. Результат поиска отображается в таблицу.
Таким образом, указанные стандартные виды фреймовых объектов дают возможность создавать и просматривать экземпляры в удобной для пользователя форме. Их сочетание используется естественным образом при поиске в объектной базе и при других операциях над фреймовыми объектами.
Список ассоциированных программ является еще одним важным компонентом рассматриваемой модели. Под программой здесь понимается произвольная прикладная программа, в которой используются обращения к компонентам данного фрейма. Эти обращения оформляются с использованием процедурного интерфейса, обеспечивающего работу с экземплярами. Программы составляются либо на внутреннем языке данной системы (типа паскаль), либо на любом другом алгоритмическом языке (си, паскаль, бейсик, фортран), для которого разработан процедурный интерфейс. Конкретная программа может запускаться либо по прямому указанию пользователя, либо неявно - ввиду срабатывания определенной формулы в процессе работы системы.
Использование ассоциированных с фреймами программ является мощным универсальным средством для организации интегрированной обработки данных в прикладных системах. При этом для конечного пользователя такие программы могут оставаться "невидимыми", в то время как производимые ими расчеты могут быть существенными компонентами данной информационной модели.
Рассмотренный подход открывает путь к построению прикладных систем разного назначения. Наиболее естественно применение данного метода при создании систем принятия решений и различных информационных систем, в частности, систем для руководства учреждений и предприятий. Для каждой предметной области может быть подобран наиболее естественный набор информационных объектов, которые связываются друг с другом через взаимные ссылки или через схемы диалога. Функциональными компонентами такой прикладной системы становятся как универсальные прикладные пакеты, так и специализированные программы.
Реализация конкретной прикладной автоматизированной системы на ПЭВМ может осуществляться по двум направлениям. Одно из них, более распространенное, предполагает первоочередную разработку отдельных функциональных компонентов, которые затем связываются в единую систему.
Возникающие при этом проблемы выбора внутреннего представления данных и реализации пользовательского интерфейса решаются, исходя из потребностей конкретной группы пользователей, для которых создается система. При таком подходе автоматизированная система наиболее точно соответствует исходным требованиям и, вообще говоря, наилучшим образом использует ресурсы ЭВМ. Однако процесс разработки в этом случае сильно затягивается, а возможности переноса конкретных компонентов и полученного опыта на системы других классов весьма ограниченны - новые автоматизированные системы разрабатываются обычно заново.
Другое направление предполагает создание ряда унифицированных компонентов, которые в совокупности образуют как бы обрамление для специальных функциональных подсистем. В этом случае разработчики могут воспользоваться готовыми модулями и пакетами для компоновки конкретной автоматизированной системы, дополняя их в случае необходимости специализированными пакетами. При этом, возможно, утрачивается оптимальность с точки зрения наилучшего использования ресурсов ЭВМ для решения данного класса задач, зато сроки разработки резко сокращаются. Новые классы автоматизированных систем при таком подходе могут создаваться с существенным использованием прежнего опыта.
Рассматриваемый здесь объектно-ориентированный подход, принятый в ВЦ АН СССР, направлен на поддержку разработки автоматизированной системы по второму пути. Проблема в этом случае состоит в том, чтобы сформировать типовую архитектуру прикладной системы, выбрать и реализовать компоненты, которые будут наиболее часто использоваться в конкретных разработках.
На рис.5.28 представлена в общем виде типовая архитектура прикладной системы, основанной на объектно-ориентированном подходе. Основные универсальные компоненты такой системы:
1) унифицированный интерфейс с пользователем, включающий систему управления дисплейными окнами, библиотеку программ управления меню и интерпретатор схем диалога;
2) система управления объектной базой, основанная на работе со специально организованной виртуальной памятью на основе файловой системы;
3) унифицированные функциональные процессоры, обеспечивающие работу со стандартизованными типами объектов.
Рис.5.28. Структура прикладной автоматизированной системы
Унифицированный интерфейс обеспечивает стандартизованный метод взаимодействия пользователей с ПЭВМ, что предусматривает:
- единообразное использование экрана при выводе текстовой и графической информации,
- единообразное использование управляющих клавиш клавиатуры,
- единую кодировку символьной информации и порядок подстановки специальных кодовых таблиц,
- единый способ оформления и выдачи подсказок,
- стандартный способ вывода и использования управляющих меню,
- стандартный способ оформления схем диалога.
Первые четыре функции обеспечиваются применением резидентной системы управления дисплейными окнами (администратора окон). Работа с меню и подсказками поддерживается специальной библиотекой подпрограмм (администратором меню). Управление диалогом осуществляется через интерпретатор схем диалога.
СИСТЕМА УПРАВЛЕНИЯ ОБЪЕКТНОЙ БАЗОЙ (СУОБ). Обеспечивает стандартное представление терминальных данных (целых и десятичных чисел, строк, примитивных графических элементов) и структурных объектов, состоящих из отдельных компонентов (текстов, таблиц, изображений, составных объектов).
СУОБ включает специальный пакет, обеспечивающий работу с виртуальной памятью; при этом отдельные элементы данных размещаются в общем хранилище и снабжаются уникальными внутренними именами (ключами), по которым к ним осуществляется доступ из функциональных процессоров и любых прикладных программ. Виртуальная память реализуется на обычных файлах с прямым доступом. Кроме того, стандартная файловая система ДОС используется для хранения больших текстов и некоторых специальных объектов.
Для представления информационных моделей может быть применена организация данных, основанная на фреймовом подходе, основы которого будут рассмотрены ниже.
Унифицированные функциональные процессоры обеспечивают работу с типовыми объектами - текстами, таблицами, графиками, рисунками и др.
Эти объекты могут служить носителями содержательной информации данной предметной области. Благодаря единому подходу к их реализации обеспечивается взаимное согласование представлений данных и обмен между компонентами разных объектов. Функциональные процессоры снабжаются двумя средствами доступа к обрабатываемым объектам:
- взаимодействие с пользователями осуществляется на основа унифицированного пользовательского интерфейса;
- обращение к функциональным процессорам из прикладных программ обеспечивается через процедурный интерфейс.
ИНТЕРПРЕТАТОР СХЕМ ДИАЛОГА. Взаимодействие человека и машины при решении прикладной задачи всегда протекает в рамках сценария, задуманного и реализованного создателем системы. Во многих традиционных прикладных системах подпрограммы или отдельные операторы, обеспечивающие диалог с пользователем, перемежаются с содержательной частью программы. В таком случае внесение изменений в диалог влечет за собой новую трансляцию соответствующих программ. Это препятствует удобной настройке системы для конкретных задач и пользователей.
Предлагаемый метод, в отличие от традиционного, предполагает работу с формальным описанием диалогового сценария, отделенным от содержательной части прикладной системы, что дает удобную возможность его модификации. Тем самым обеспечивается адаптивность системы, т.е. ее способность к динамической подстройке в соответствии с конкретными потребностями пользователей.
Основная информационная единица D, описывающая этап диалога, называется в соответствии с развиваемым подходом диалоговым состоянием или Д-объектом. Множество Д-объектов {D} определяет схему диалога (СД) или Д-схему. Вводится четыре основных типа Д-объектов:
(1) текстовое меню,
(2) графическое меню,
(3) запрос значения,
(4) заполнение формата.
Первые два типа Д-объектов будем относить к обобщенной категории "меню", два других типа - к категории "ввод значений". Рассмотрим способы работы пользователя с каждым из указанных типов Д-объектов.
(1) Текстовое меню обеспечивает выбор одной из нескольких заранее составленных альтернатив.. При инициации такого Д-объекта на экране дисплея появляется окно, в котором отображаются альтернативные позиции меню, представленные текстовыми строками или отдельными словами (рис.5.29). Эти строки или слова называются метками меню. Окно с метками может иметь форму столбца, строки или таблицы. Перебор позиций осуществляется перемещением манипулятора "мышь" либо нажатием клавиш со стрелками на клавиатуре,- при этом выделенная позиция меню на экране отмечается инверсией цвета или другим визуальным способом.
Рис.5.29. Вид экрана при выводе текстового меню и запросе формата
Во второе, вспомогательное, окно при нажатии специальной клавиши "Подсказка" выводится текст комментария к соответствующей позиции меню. Комментарий содержит более пространное пояснение данной позиции по сравнению с лаконичным текстом метки меню. Окно с комментарием может быть удалено с экрана повторным нажатием клавиши "Подсказка".
С каждой позицией меню связывается также действие. Действие задается текстовой строкой, которая является командой схемы диалога. В качестве команды может, в частности, фигурировать любая команда ДОС, что обеспечивает вызов произвольных служебных и прикладных программ. Кроме того, в качестве команд могут использоваться специальные операторы GOSUB, GOTO, RUN, RETURN, EXIT, позволяющие организовать структурное управление диалогом.
Действие, как и комментарий, выводится в отдельное дисплейное окно при нажатии специальной клавиши "Показать действие", и здесь его перед исполнением можно отредактировать; однако в нормальном режиме тексты команд, задающих действия, не видны пользователю. Пример оформления текстового меню:
*tmenu (1 12 10 14 4 25) /Основные показатели
Фонды/Таблица для расчета основных фондов/sp fonds
Мощности/Сводка мощностей агрегатов/sp powers
Территория/Карта-схема предприятия/vis terr
План-график/Расчет сетевого графика/pert gg
end of tmenu
Первая строка приведенного текста является заголовком: в ней содержится указатель текстового меню "tmenu, параметры дисплейного окна и текстовый комментарий. Всего в данном меню 4 позиции.
Каждая позиция включает 3 текстовых компонента, разделенных знаком /:
<метка> / <комментарий> / <действие>
При инициации данного меню на экране появляется рабочее окно с метками, а при нажатии клавиши "Подсказка" в нижней части экрана появится еще одно окно с комментарием. Картина на экране приобретает вид, показанный на рис.5.29а.
Пользователь может выбрать в рабочем окне нужную позицию, перемещая маркер с помощью управляющих стрелок на клавиатуре или манипулятора "мышь". Нажатие клавиши "Исполнение" вызывает срабатывание действия, соответствующего выбранной позиции меню. По окончании исполнения действия управление возвращается в данное состояние СД.
(2) Графическое меню, как и текстовое, служит для выбора одной из нескольких заранее описанных альтернатив. Но, в отличие от текстового меню, в данном случае на экран выводится не таблица с метками, а изображение, приготовленное с помощью графического процессора,- это может быть географическая карта,условная схема изделия,организационная структура предприятия, рекламный текст и др. На изображении заранее выделяются прямоугольные области - графические позиции, по которым перемещается управляемый пользователем маркер. В описании каждой альтернативы вместо текстовой метки стоит четверка чисел, которые задают координаты прямоугольной области, ограничивающей данную графическую позицию. Координаты указываются, исходя из разрешающей способности дисплея в графическом режиме: 320 точек по горизонтали, 200 по вертикали. Комментарии и действия оформляются точно так же, как и в текстовом меню. Пример описания графического меню:
*gmenu /WORLD.PIC
7 17 12 40 /Северная Америка/gosub NoAmer
13 20 16 35 /Центральная Америка/gosub CeAmer
17 19 22 39 /Южная Америка/gosub SoAmer
10 126 18 141 /Западная Европа/gosub WeEur
10 142 14 190 /Восточная Европа/gosub EaEur
7 150 20 290 /СССР/gosub USSR
20 135 24 185 /Африка/gosub Africa
17 180 21 215 /Ближний Восток /gosub MiEast
16 220 22 270 /Южная Азия/gosub SoAsia
14 272 20 290 /Юго-Восточная Азия/gosub SoEast
19 270 24 300/ Австралия, Океания/gosub Austr
end of gmenu
В данном примере на фоне карты мира, выводимой на экран из файла WORLD.PIC, задано 11 графических позиций, соответствующих разным географическим регионам. При перемещении из одной позиции в другую на экране выделяется соответствующий прямоугольник, ограниченный указанными координатами. Нажатие клавиши "Исполнение" означает выбор данной позиции и начало выполнения указанных действий. В приведенном примере в качестве действий во всех позициях указаны команды перехода на подсхемы, где, в свою очередь, могут быть описаны новые диалоговые состояния или заданы команды для исполнения.
(3) Запрос значения - особый вид диалогового состояния, предназначенный для запроса у пользователя некоторой величины с целью ее передачи для обработки прикладной программе. В описании данного состояния указывается:
- позиция (номер строки экрана) для выдачи текста вопроса;
- текст вопроса, в котором поясняется смысл вводимой величины;
- фильтр-предикат, с помощью которого оценивается правильность введенной величины (фильтр не обязателен);
- диалоговая переменная, в которую заносится введенное значение.
Человек должен ответить на заданный системой вопрос вводом определенной величины. Введенное значение присваивается диалоговой переменной с целью последующего использования в данной СД или в прикладных программах. При этом оно может быть подвергнуто предварительной проверке с помощью заранее определенных фильтров-предикатов. Так, например, можно проверить, является ли введенное значение символьной или числовой константой, попадает ли числовая константа в заданный диапазон и др. Пример оформления запроса в СД:
askval 24 "Коэффициент прироста?"/filter RANGE 1 9/putvar 1
При инициации данного состояния в 24 строке экрана появляется вопрос "Коэффициент прироста?". Пользователь должен ввести в ответ числовое значение, которое затем проверяется предикатом RANGE на попадание в диапазон (1..9), а затем заносится программой putvar в диалоговую переменную под номером 1. Если значение введено неправильно, то предикат RANGE выдаст диагностическое сообщение и запрос повторится. Значение диалоговой переменной может далее использоваться в прикладной программе, вызываемой из данной СД.
(4) Заполнение формата - еще одна разновидность диалогового состояния, обеспечивающего ввод значений для их последующей обработки прикладными программами. В отличие от запроса значения, здесь пользователю выдается формат - таблица, в которой определенным текстовым комментариям сопоставляются позиции для ввода требуемых величин. Пример оформления состояния данного типа:
*format (1 7 5 14 4 25)/Годовой бюджет (тыс. руб.)
Капит. затраты/Расходы на подготовку помещений / var 1
Оборудование/Затраты на приобретение оборудования/var 2
Зарплата/Общий фонд зарплаты/var 3
Экспл. расходы/Расходы на эксплуатацию/var 4
end of format
По внешнему виду описатель состояния данного типа похож на описатель текстового меню. При инициации на экран выводится таблица меток, а рядом с ней таблица для ввода значений. В отдельное окно, как и в случае текстового меню, может быть выведен комментарий к выбранной позиции. Изображение на экране приобретает вид, показанный на рис.5.29б.
В отличие от текстового меню, здесь пользователь не просто выбирает одну из позиций, а может вводить в соседнем окне значения запрашиваемых величии. Эти значения присваиваются диалоговым переменным с номерами 1..4. Как и при использовании askval, здесь можно применять предикаты для фильтрации полученных значений. Оформление фильтра-предиката выглядит так же, как и в случае askval, например:
filter range 100 150/putvar 1
Значения диалоговых переменных могут далее передаваться в качестве аргументов прикладным программам.
Схема диалога представляет собой обычный текстовый файл, который обрабатывается интерпретатором СД. Строки или фрагменты этого файла могут содержать:
1) описания диалоговых состояний,
2) обращения к встроенным командам ДОС,
3) обращения к любым внешним, программам,
4) команды управления,
5) метки.
К командам управления относятся уже упоминавшиеся выше операторы:
GOSUB - переход на подсхему данной СД,
GOTO - переход на помеченную строку в данной СД,
RUN - вызов другой (подчиненной) СД,
RETURN - возврат из подсхемы или из подчиненной СД,
EXIT - выход из интерпретатора СД.
Операторы GOSUB и GOTO используются для передач управления внутри данной СД. При этом GOSUB передает управление на помеченный фрагмент, который должен заканчиваться оператором RETURN. Такой фрагмент называется подсхемой. Подсхема может также оканчиваться оператором EXIT или же статически находиться в конце файла, содержащего СД.
Оператор GOTO передает управление на помеченный участок данной СД, и выход с этого участка может быть оформлен любым способом.
Оператор RUN, в отличие от первых двух, обеспечивает вызов по имени подчиненной СД, которая содержится в другом файле. При вызове подчиненной СД интерпретация ведущей схемы приостанавливается и возобновляется вновь после исполнения команды RETURN в подчиненной схеме.
Метки в СД оформляются так же, как в командных файлах ДОС,- это идентификаторы, префиксируемые знаком :. Благодаря этому интерпретатор СД может обрабатывать обычные командные файлы ДОС, считая их разновидностями СД.
Диалоговые переменные, вводимые в СД в состояниях типа askval и format, как указывалось, могут использоваться Для передачи значений в прикладные программы. "Взятие" значения диалоговой ггеременной, сформированной программой putvar, осуществляется с помощью программы getvar. Пример взятия значения диалоговой переменной номер 1:
getvar 1
Программа getvar считывает указанное значение из внутреннего буфера и посылает его на стандартное устройство вывода. Это позволяет передать его через механизм "каналов" ДОС любой прикладной программе, воспринимающей данные со стандартного устройства ввода, или в любой внешний файл. Примеры пересылки диалоговой переменной с номером n:
getvar n | имя_программы
getvar n > имя_файла
При обращении к getvar с аргументом -n берутся значения n диалоговых переменных и передаются в виде массива прикладной программе или во внешний файл.
Ниже приведен пример схемы диалога, включающей два текстовых меню. При инициации данной схемы сначала на экран выводится главное меню, содержащее позиции для выбора текстового или графического процессора, транслятора Бейсик или системы Альфа, а также для перехода на подчиненную схему (с именем games) или на подсхему с меткой dos. В то время как в первых трех позициях происходит прямой вызов внешних программ, в других позициях происходят переходы на подсхемы, возврат из которых осуществляется операторами RETURN. В данном примере видно, что обычные команды ДОС, например, cls, cd естественно сочетаются с описаниями диалоговых состояний:
scheme
cls
*tmenu (1 10 12 24 7 24) /Альфа-Диалог - ВЦ АН СССР
Текст/Вызов текстового процессора/lex
Графика/Вызов графического процессора/vgraf
Бейсик/Вызов интерпретатора Бейсик/basic
Альфа/Вызов системы Альфа/gosub alfa
ДОС/Некоторые команды ДОС/gosub dos
Игры/Вызов подсхемы для выбора игры/run games
Выход/Возврат в ДОС/exit
end of tmenu
:alfa
cd \alfa
sp alfa
cd ..
return
:dos
*tmenu (1 U 15 24 7 24) /Альфа-ДОС-16
Каталог/Выдача текущего каталога/dir;
Печать файла/Введите имя файла/type;
Копирование файлов/Укажите <источник> и <назначение>/сору;
Диск C:/Переход на жесткий диск/с:
Диск A:/Переход на гибкий диск/а:
Дата/Установка даты/date
Время/Установка времени/time
end of tmenu
return
end of scheme
Использование интерпретатора схем диалога особенно удобно при компоновке прикладных автоматизированных систем из разнородных компонентов. Схемы диалога создаются с помощью специального конструктора или путем применения обычного текстового редактора. Интерпретатор СД, реализованный в ВЦ АН СССР В.А.Рыжовым, базируется на использовании администратора окон и администратора меню. Благодаря этому обеспечивается унифицированный интерфейс пользователя с прикладными системами на всех уровнях взаимодействия.
ФРЕЙМОВЫЙ ПОДХОД К ОРГАНИЗАЦИИ ОБЪЕКТНОЙ БАЗЫ. Фреймы являются основой организации объектной базы в рассматриваемом подходе. Общая структура проблемно-ориентированных объектов на основе фреймов представлена на рис.5.30.
Рис.5.30. Представление объектов на основе фреймового подхода
Ядром данной структуры является ее описатель, в котором содержится:
- уникальный ключ (системное имя) данного фрейма,
- внешнее имя фрейма (комментарий),
- ссылка на список свойств,
- ссылка на список экземпляров,
- ссылка на список точек зрения,
- ссылка на список ассоциированных с данным фреймом программ.
Уникальный ключ формируется при создании фрейма и остается его постоянным идентификатором на всем протяжении жизни данного фрейма. Все остальные компоненты фрейма могут изменяться с течением времени либо под воздействием команд пользователя, либо при выполнении определенных внутрисистемных функций.
Внешнее имя фрейма - это текстовая строка, в частности, одно слою, которое служит для пояснения роли данного объекта и его содержимого. При выводе на экран списка фреймов выдаются прежде всего их внешние имена, что дает человеку возможность сориентироваться по такому списку в круге основных понятий предметной области.
Список свойств (p1 .. pm) задает типы значений в экземплярах фрейма. Каждое свойство снабжается внешним именем - комментарием и, кроме того, имеет порядковый номер, по которому к нему может осуществляться доступ с использованием процедурного интерфейса. Число свойств определяет максимальное число элементов данных в экземплярах данного фрейма.
Список экземпляров указывает на основные носители содержательной информации - экземпляры фрейма. Отдельный экземпляр может содержать набор элементов данных, удовлетворяющих описателям свойств. Элементом данных в экземпляре может быть значение одного нз следующих типов:
- число,
- текстовая строка,
- вычисляемая формула,
- дата,
- время,
- ссылка на команду ДОС, в частности, на любую программу,
- ссылка на другой информационный объект или его компоненты.
В этом перечне указаны простые значения - числовые, текстовые,
обозначения времени и дата, и ссылочные значения. Последние играют особенно важную роль, поскольку с их помощью легко организуются сложные взаимосвязи между объектами. Подчиненные объекты могут быть активными (программами и пакетами программ) и пассивными (структурами данных). Такая организация фреймового объекта ставит его в ряд с абстрактным типом данных.
В частности, рассматриваемая организация позволяет имитировать иерархические и сетевые модели данных, а при одинаковом числе элементов данных во всех экземплярах описываемая структура становится идентичной отношению реляционной базы данных.
Таким образом, фрейм с экземплярами представляет особую информационную модель, на основе которой могут имитироваться другие традиционные модели данных и абстрактные типы.
Список точек зрения представляет собой важнейший компонент пользовательского интерфейса к объектной базе. Фреймовый объект, как таковой, является лишь носителем информации; пользователем он может рассматриваться с разных точек зрения, т.е. иметь разные виды. Основные виды фреймовых объектов: базовый, табличный, трафаретный.
Базовый вид обеспечивает доступ пользователя ко всем компонентам описателя фрейма, к описателям всех свойств и ко всем экземплярам данного фрейма. Следовательно, это наиболее полный и соответственно наиболее сложный способ доступа к фреймовым объектам.
Табличный вид дает естественное представление группы экземпляров. При этом в конкретной таблице могут быть показаны лишь некоторые избранные свойства фрейма. Разные таблицы, привязанные к одному и тому же фреймовому объекту, позволяют просматривать содержимое экземпляров в разных аспектах. Таблица имеет внешнее имя, которое становится вариантом имени данного фрейма. В таблице также задается заголовок; в ней определены столбцы, отображающие свойства фрейма, а каждый экземпляр отображается в одной из строк. Таблицу можно прокручивать по горизонтали, получая доступ к невидимым на экране столбцам, или по вертикали, получая доступ к новым экземплярам.
Трафаретный вид предназначен для создания и просмотра отдельных экземпляров и для заданий образцов поиска. Трафарет аналогичен листу бумаги с надписями и прорезями, через которые видны определенные свойства экземпляров. Через такие прорези, называемые слотами, можно вводить и просматривать данные.
При поиске и отборе подмножества экземпляров трафарет используется для формирования поискового предписания. При этом в соответствующих слотах указываются ограничения на отдельные свойства. Результат поиска отображается в таблицу.
Таким образом, указанные стандартные виды фреймовых объектов дают возможность создавать и просматривать экземпляры в удобной для пользователя форме. Их сочетание используется естественным образом при поиске в объектной базе и при других операциях над фреймовыми объектами.
Список ассоциированных программ является еще одним важным компонентом рассматриваемой модели. Под программой здесь понимается произвольная прикладная программа, в которой используются обращения к компонентам данного фрейма. Эти обращения оформляются с использованием процедурного интерфейса, обеспечивающего работу с экземплярами. Программы составляются либо на внутреннем языке данной системы (типа паскаль), либо на любом другом алгоритмическом языке (си, паскаль, бейсик, фортран), для которого разработан процедурный интерфейс. Конкретная программа может запускаться либо по прямому указанию пользователя, либо неявно - ввиду срабатывания определенной формулы в процессе работы системы.
Использование ассоциированных с фреймами программ является мощным универсальным средством для организации интегрированной обработки данных в прикладных системах. При этом для конечного пользователя такие программы могут оставаться "невидимыми", в то время как производимые ими расчеты могут быть существенными компонентами данной информационной модели.
Рассмотренный подход открывает путь к построению прикладных систем разного назначения. Наиболее естественно применение данного метода при создании систем принятия решений и различных информационных систем, в частности, систем для руководства учреждений и предприятий. Для каждой предметной области может быть подобран наиболее естественный набор информационных объектов, которые связываются друг с другом через взаимные ссылки или через схемы диалога. Функциональными компонентами такой прикладной системы становятся как универсальные прикладные пакеты, так и специализированные программы.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Брябрин. Программное обеспечение персональных ЭВМ. 1990
5.7. ОБУЧАЮЩИЕ СИСТЕМЫ
Появление персональных компьютеров открыло огромные возможности для разработки и применения самых разнообразных обучающих систем. Диапазон таких систем чрезвычайно широк - от простейших игровых программ, которые помогают 5-7-летнему ребенку осваивать грамоту, до весьма сложных программ, ориентированных на изучение разделов физики и математики или помогающих взрослому человеку в овладении определенными знаниями и навыками.
Обучающие системы реализуют и на простых 8-разрядных ПЭВМ, и на более сложных 16- и 32-разрядных машинах. Применяемые методы обучения также весьма различны. Это может быть просто тренировка памяти и сообразительности, основанная на серии примеров и задач; иногда в ходе общения с обучающей программой человеку приходится основательно подумать. Обучающие программы могут играть роль консультантов при решении тех или иных задач; в этом случае применяются так называемые экспертные системы, работа которых базируется на использовании заранее введенных знаний о данной предметной области. Ниже будут кратко рассмотрены две обучающие системы, имеющие совершенно разное назначение. Одна из них - система Эрудит - предназначена для тренировки памяти и сообразительности, проверки приобретенных знаний, изучения иностранного языка. Важно, что эта система может быть настроена на разные сферы знания. Система Эрудит разработана на факультете вычислительной математики и кибернетики Московского государственного университета И.В.Горячей, Т.Н.Щегловой и Л.Л.Щербатюк. Другая система - Дебют, разработанная в Вычислительном центре АН СССР А.К.Дудоладовым с участием А.В.Бошкнна, служит для информационной подготовки шахматистов. В ее состав входит несколько функциональных компонентов, свойственных обучающим пакетам. Описываемые пакеты могут дать общее представление о методах построения обучающих систем и способах их использования.
ЭРУДИТ - КОНСТРУКТОР ОБУЧАЮЩИХ ИГР. Система Эрудит была разработана на основе идеи о применении методики компьютерных игр для создания учебных программ. Главное назначение системы - тренировка памяти и реакции, контроль знаний в определенной предметной области. Одновременно происходит овладение навыками обращения с клавиатурой ПЭВМ.
Задания, предъявляемые ученику, предусматривают поиск и подбор соответствий между различными элементами; при этом ученик должен переводить с иностранного языка отдельные слова и фразы, отгадывать загадки, находить синонимы или антонимы, давать ответы на численные задачи, подбирать формулы, угадывать названия, даты и др. Оценка за каждое упражнение и за весь урок зависит от правильности и скорости ответов. Обучение проходит в режиме игры, что поддерживает азарт и интерес учащегося к повторению сеансов.
Система Эрудит не является конкретной игрой или учебной программой. Это своеобразный инструмент, посредством которого преподаватель может самостоятельно определять содержание обучения, выбирая при этом игровые формы взаимодействия с учеником. Эти формы различны по сюжету и сложности, они дают возможность представить учебный материал живо и занимательно.
Система Эрудит не заменяет учителя, а, напротив, дополняет, расширяет его возможности. Учитель же, руководствуясь своей методикой преподавания, подбирает упражнения таким образом, чтобы обеспечить прогресс в освоении предмета. Еще одно возможное применение системы Эрудит - для самообучения. При этом учащийся может самостоятельно заложить необходимый учебный материал в систему и затем регулярно упражняться на этом материале, поддерживая тем самым определенные знания в активном состоянии.
В системе Эрудит упражнения задаются двумя упорядоченными множествами: M1 и M2, между элементами которых установлено соответствие. Каждое из множеств может одновременно включать элементы только одного типа: ТЕКСТ либо ОБРАЗ. Под текстом понимается любая последовательность слов или символов, отображаемая на экране дисплея внутри прямоугольной рамки. Образ - это некоторая картинка, также вмещающаяся в прямоугольную область экрана. Элементы, представляющие множество M1, составляют так называемую ОПОРНУЮ композицию. Элементы из множества M2 образуют ИГРОВУЮ композицию. Задача ученика - установить правильные соответствия между отдельными элементами M1 и M2. Тип соответствий и игровая форма предъявления упражнения ученику задаются учителем.
Для различных предметных областей множествам M1 и M2 могут соответствовать разные понятия. Приведем несколько примеров.
1) Начальное изучение языка (родного или иностранного): M1 - названия предметов, объектов; M2 - графические образы (картинки) предметов, объектов.
2) Углубленное изучение иностранного языка: M1 - слова, фразы на родном языке;
M2 - слова, фразы на иностранном языке.
3) Арифметика: M1 - математические формулы, выражения; M2 - их значения.
4) Геометрия: M1 - изображения геометрических фигур; M2 - их названия.
5) История: M1 - даты; M2 - исторические события.
6) География: M1 - названия географических объектов; M2 - их местонахождение.
7) Литература: M1 - литературные цитаты; M2 - их авторы.
8 ) Логические задачи (поиск закономерностей); M1 и M2 - абстрактные картинки.
Ясно, что такое перечисление может быть продолжено. В системе Эрудит реализуются два типа соответствий между множествами элементов:
- Простое соответствие (1:N): опорная композиция (множество M1) содержит лишь один элемент; игровая композиция (множество M2) содержит N элементов. В этом случае элементу опорной композиции соответствует единственный (первый по порядку номеров) элемент из игровой композиции.
- Взаимно однозначное соответствие (N:N): в опорной и игровой композициях содержится одинаковое число элементов. Соответствующие друг другу элементы множеств M1 и M2 идентифицируются одним и тем же порядковым номером.
В качестве упражнений первого типа (1:N) могут выступать, к примеру, следующие:
а) подобрать для слова, словосочетания или предложения на иностранном языке правильный перевод из предложенных N вариантов ответа;
б) отгадать загадку: для некоторого описываемого явления, предмета или процесса выбрать правильное название (или изображение) из нескольких вариантов;
в) дана картинка: угадать ее смысл (возможные интерпретации смысла картинки могут быть заданы в виде текстов или других картинок).
Примерами упражнений второго типа (N:N) могут служить следующие:
а) имеется некоторый набор фраз, представляющий правильный, логически связный текст на родном языке (диалог, стихотворение и т.п.) и соответствующее ему множество неупорядоченных фраз на иностранном языке; требуется расставить фразы иностранного языка в правильном порядке;
б) установить соответствия между картинками и их названиями.
Функционирование системы осуществляется в двух основных режимах: Учитель и Ученик. Перед началом работы пользователь выбирает нужный режим с помощью графического меню и особого маркера в виде человечка - Ведущего. Этот веселый человечек выполняет роль посредника между пользователем и ПЭВМ и присутствует практически на всех этапах работы системы.
Режим Учитель предназначен для ввода и последующей корректировки информации, используемой в процессе обучения. Для удобства эта информация, в зависимости от области применения, объединяется в темы (ведется специальный каталог тем). Над темами допустимы следующие операции:
- создать новую тему;
- исключить тему из каталога;
- выбрать тему для дальнейшей работы с ней.
Выбор операции и конкретной темы осуществляется путем перемещения Ведущего на ту или иную позицию графического меню. Выбрав определенную тему, преподаватель имеет возможность работать с объектами двух типов: упражнениями и уроками. На экране при этом появляется список пронумерованных упражнений (или уроков) с комментариями к ним. Пользователь может выбрать конкретный объект (упражнение или урок) для дальнейшей работы, либо начать создание нового упражнения. Выбор осуществляется с помощью Ведущего, который перемещается на экране под действием управляющих клавиш или манипулятора "мышь".
При создании нового упражнения учитель должен проделать следующее:
- объявить тип соответствия в будущем упражнении (1:N или N:N);
- задать игровую и опорную композиции, предварительно определив тип элементов в каждой из них;
- сформулировать задание (комментарий) к упражнению, т.е. смысл установленного соответствия;
- определить степень сложности упражнения (по шкале от 1 до 9)}
- выбрать игровую форму предъявления упражнения ученику. Ввод содержимого опорной и игровой композиций осуществляется с помощью двух окон, симметрично расположенных на экране дисплея; в зависимости от указанного типа соответствий окна автоматически разбиваются на соответствующее число равных частей.
При формировании композиции, содержащей текстовые элементы, преподавателю достаточно уметь работать с обычным текстовым редактором. А при задании композиции с графическими элементами их нужно выбирать из специальной, встроенной в систему библиотеки образов. В режиме Учитель имеется возможность создавать такую библиотеку. Работая с ней, пользователь может создавать, корректировать, сохранять картинки во внешней памяти или удалять некоторые из них. Использование графических элементов позволяет активизировать образное восприятие у ученика, которое часто гораздо эффективнее, чем вербальное.
Если объектом работы является созданное ранее упражнение, учитель может:
- отредактировать упражнение, т.е. изменить содержимое композиций, формулировку задания, сложность и метод предъявления упражнения (игровую форму);
- удалить упражнение;
- перейти к предыдущему или следующему по порядку упражнению;
- "пометить" упражнение для того, чтобы не забыть включить его в состав какого-либо урока.
На основе созданных упражнений учитель составляет уроки и задает комментарии к ним. Урок в системе Эрудит определяется как простая последовательность упражнений. При формировании нового урока учитель просматривает список существующих в данной теме упражнений с комментариями к ним и выбирает те из них, которые считает нужным включить в урок. Созданному уроку автоматически присваивается определенный номер. В режиме Учитель имеется также возможность редактирования выбранного урока (исключение из состава этого урока некоторых упражнений и включение других, изменение комментария). Ненужный урок можно удалить.
В режиме Ученик происходит собственно обучение. Учащемуся предстоит выполнить созданные в режиме Учитель уроки. При: этом можно либо сразу приступить к выполнению выбранного урока, либо предварительно просмотреть "десятку лучших" (она содержит список лучших учеников и количество набранных ими очков по данному уроку). Обучающийся всегда имеет шанс, повторно пройдя урок, повысить свои результаты и попасть в десятку лучших или переместиться на более высокий уровень в ней.
Перед началом сеанса обучения система запрашивает у обучающегося степень его подготовленности (по шкале от 1 до 9), и эта величина учитывается при начислении очков. Общее время на выполнение каждого упражнения ограничивается и фиксируется с помощью высвечивающихся на экране дисплея часов. В процессе выполнения упражнения ведется учет числа правильных и ошибочных ответов ученика, а также других показателей, фигурирующих при подсчете итога упражнения.
Элементы опорной и игровой композиций могут определенным образом интерпретироваться и участвовать в различных игровых ситуациях. Ученику при этом следует проявлять не только свои знания, но и соответствующую сообразительность и реакцию, чтобы успеть "поймать", "удержать", отгадать нужный объект. В системе Эрудит использованы две базовые игровые формы.
В первой из них требуется выбрать ответ из заданного множества возможных значений. Это схема облегченного типа, в ней содержится элемент подсказки. Она полезна для закрепления в памяти ученика не очень прочных ассоциативных связей, когда ответ как бы "крутится на языке", но не припоминается. Диалог с учеником при этом ведется с помощью двух человечков - помощников Ведущего. Человечки выражают свое мнение по поводу ответов ученика различными жестами - они пританцовывают, жестикулируют руками, качают головами. Каждый из человечков отвечает за свою композицию: первый - за опорную, в которой элементы выводятся на экран в порядке, заданном учителем; второй - за игровую, элементы которой располагаются в случайном порядке. При помощи управляющих клавиш ученик должен установить каждого человечка напротив соответствующих элементов и зафиксировать свой ответ. Если ответ верен, соответствующие элементы игровой и опорной композиций помещаются друг против друга, а человечки выражают свое одобрение небольшим танцем.
Другая схема предъявления упражнений дает ученику возможность ответить на заданный вопрос самостоятельно, без подсказки. Игровая форма, в которую Эрудит предлагает облечь эту схему, использует "плавающие" по экрану объекты (рыбки), за которыми закреплены элементы опорной композиции. В течение короткого промежутка времени ученик должен ввести ответ с клавиатуры. При этом он может успеть опробовать несколько вариантов, что, однако, повлечет за собой начисление штрафных очков.
В описанных методах предусматриваются поощрения за правильно выполненные упражнения. При этом используются элементы мультипликации, звуковое сопровождение и другие приемы для поддержания интереса. Разрабатываются и другие оригинальные методы предъявления упражнений ученику.
Для работы в системе Эрудит от пользователя не требуется почти никакой специальной подготовки. В случае необходимости система предоставит ему помощь. Дружественность и простота в использовании делают эту систему доступной как профессионалу, так и дилетанту.
...
Появление персональных компьютеров открыло огромные возможности для разработки и применения самых разнообразных обучающих систем. Диапазон таких систем чрезвычайно широк - от простейших игровых программ, которые помогают 5-7-летнему ребенку осваивать грамоту, до весьма сложных программ, ориентированных на изучение разделов физики и математики или помогающих взрослому человеку в овладении определенными знаниями и навыками.
Обучающие системы реализуют и на простых 8-разрядных ПЭВМ, и на более сложных 16- и 32-разрядных машинах. Применяемые методы обучения также весьма различны. Это может быть просто тренировка памяти и сообразительности, основанная на серии примеров и задач; иногда в ходе общения с обучающей программой человеку приходится основательно подумать. Обучающие программы могут играть роль консультантов при решении тех или иных задач; в этом случае применяются так называемые экспертные системы, работа которых базируется на использовании заранее введенных знаний о данной предметной области. Ниже будут кратко рассмотрены две обучающие системы, имеющие совершенно разное назначение. Одна из них - система Эрудит - предназначена для тренировки памяти и сообразительности, проверки приобретенных знаний, изучения иностранного языка. Важно, что эта система может быть настроена на разные сферы знания. Система Эрудит разработана на факультете вычислительной математики и кибернетики Московского государственного университета И.В.Горячей, Т.Н.Щегловой и Л.Л.Щербатюк. Другая система - Дебют, разработанная в Вычислительном центре АН СССР А.К.Дудоладовым с участием А.В.Бошкнна, служит для информационной подготовки шахматистов. В ее состав входит несколько функциональных компонентов, свойственных обучающим пакетам. Описываемые пакеты могут дать общее представление о методах построения обучающих систем и способах их использования.
ЭРУДИТ - КОНСТРУКТОР ОБУЧАЮЩИХ ИГР. Система Эрудит была разработана на основе идеи о применении методики компьютерных игр для создания учебных программ. Главное назначение системы - тренировка памяти и реакции, контроль знаний в определенной предметной области. Одновременно происходит овладение навыками обращения с клавиатурой ПЭВМ.
Задания, предъявляемые ученику, предусматривают поиск и подбор соответствий между различными элементами; при этом ученик должен переводить с иностранного языка отдельные слова и фразы, отгадывать загадки, находить синонимы или антонимы, давать ответы на численные задачи, подбирать формулы, угадывать названия, даты и др. Оценка за каждое упражнение и за весь урок зависит от правильности и скорости ответов. Обучение проходит в режиме игры, что поддерживает азарт и интерес учащегося к повторению сеансов.
Система Эрудит не является конкретной игрой или учебной программой. Это своеобразный инструмент, посредством которого преподаватель может самостоятельно определять содержание обучения, выбирая при этом игровые формы взаимодействия с учеником. Эти формы различны по сюжету и сложности, они дают возможность представить учебный материал живо и занимательно.
Система Эрудит не заменяет учителя, а, напротив, дополняет, расширяет его возможности. Учитель же, руководствуясь своей методикой преподавания, подбирает упражнения таким образом, чтобы обеспечить прогресс в освоении предмета. Еще одно возможное применение системы Эрудит - для самообучения. При этом учащийся может самостоятельно заложить необходимый учебный материал в систему и затем регулярно упражняться на этом материале, поддерживая тем самым определенные знания в активном состоянии.
В системе Эрудит упражнения задаются двумя упорядоченными множествами: M1 и M2, между элементами которых установлено соответствие. Каждое из множеств может одновременно включать элементы только одного типа: ТЕКСТ либо ОБРАЗ. Под текстом понимается любая последовательность слов или символов, отображаемая на экране дисплея внутри прямоугольной рамки. Образ - это некоторая картинка, также вмещающаяся в прямоугольную область экрана. Элементы, представляющие множество M1, составляют так называемую ОПОРНУЮ композицию. Элементы из множества M2 образуют ИГРОВУЮ композицию. Задача ученика - установить правильные соответствия между отдельными элементами M1 и M2. Тип соответствий и игровая форма предъявления упражнения ученику задаются учителем.
Для различных предметных областей множествам M1 и M2 могут соответствовать разные понятия. Приведем несколько примеров.
1) Начальное изучение языка (родного или иностранного): M1 - названия предметов, объектов; M2 - графические образы (картинки) предметов, объектов.
2) Углубленное изучение иностранного языка: M1 - слова, фразы на родном языке;
M2 - слова, фразы на иностранном языке.
3) Арифметика: M1 - математические формулы, выражения; M2 - их значения.
4) Геометрия: M1 - изображения геометрических фигур; M2 - их названия.
5) История: M1 - даты; M2 - исторические события.
6) География: M1 - названия географических объектов; M2 - их местонахождение.
7) Литература: M1 - литературные цитаты; M2 - их авторы.
8 ) Логические задачи (поиск закономерностей); M1 и M2 - абстрактные картинки.
Ясно, что такое перечисление может быть продолжено. В системе Эрудит реализуются два типа соответствий между множествами элементов:
- Простое соответствие (1:N): опорная композиция (множество M1) содержит лишь один элемент; игровая композиция (множество M2) содержит N элементов. В этом случае элементу опорной композиции соответствует единственный (первый по порядку номеров) элемент из игровой композиции.
- Взаимно однозначное соответствие (N:N): в опорной и игровой композициях содержится одинаковое число элементов. Соответствующие друг другу элементы множеств M1 и M2 идентифицируются одним и тем же порядковым номером.
В качестве упражнений первого типа (1:N) могут выступать, к примеру, следующие:
а) подобрать для слова, словосочетания или предложения на иностранном языке правильный перевод из предложенных N вариантов ответа;
б) отгадать загадку: для некоторого описываемого явления, предмета или процесса выбрать правильное название (или изображение) из нескольких вариантов;
в) дана картинка: угадать ее смысл (возможные интерпретации смысла картинки могут быть заданы в виде текстов или других картинок).
Примерами упражнений второго типа (N:N) могут служить следующие:
а) имеется некоторый набор фраз, представляющий правильный, логически связный текст на родном языке (диалог, стихотворение и т.п.) и соответствующее ему множество неупорядоченных фраз на иностранном языке; требуется расставить фразы иностранного языка в правильном порядке;
б) установить соответствия между картинками и их названиями.
Функционирование системы осуществляется в двух основных режимах: Учитель и Ученик. Перед началом работы пользователь выбирает нужный режим с помощью графического меню и особого маркера в виде человечка - Ведущего. Этот веселый человечек выполняет роль посредника между пользователем и ПЭВМ и присутствует практически на всех этапах работы системы.
Режим Учитель предназначен для ввода и последующей корректировки информации, используемой в процессе обучения. Для удобства эта информация, в зависимости от области применения, объединяется в темы (ведется специальный каталог тем). Над темами допустимы следующие операции:
- создать новую тему;
- исключить тему из каталога;
- выбрать тему для дальнейшей работы с ней.
Выбор операции и конкретной темы осуществляется путем перемещения Ведущего на ту или иную позицию графического меню. Выбрав определенную тему, преподаватель имеет возможность работать с объектами двух типов: упражнениями и уроками. На экране при этом появляется список пронумерованных упражнений (или уроков) с комментариями к ним. Пользователь может выбрать конкретный объект (упражнение или урок) для дальнейшей работы, либо начать создание нового упражнения. Выбор осуществляется с помощью Ведущего, который перемещается на экране под действием управляющих клавиш или манипулятора "мышь".
При создании нового упражнения учитель должен проделать следующее:
- объявить тип соответствия в будущем упражнении (1:N или N:N);
- задать игровую и опорную композиции, предварительно определив тип элементов в каждой из них;
- сформулировать задание (комментарий) к упражнению, т.е. смысл установленного соответствия;
- определить степень сложности упражнения (по шкале от 1 до 9)}
- выбрать игровую форму предъявления упражнения ученику. Ввод содержимого опорной и игровой композиций осуществляется с помощью двух окон, симметрично расположенных на экране дисплея; в зависимости от указанного типа соответствий окна автоматически разбиваются на соответствующее число равных частей.
При формировании композиции, содержащей текстовые элементы, преподавателю достаточно уметь работать с обычным текстовым редактором. А при задании композиции с графическими элементами их нужно выбирать из специальной, встроенной в систему библиотеки образов. В режиме Учитель имеется возможность создавать такую библиотеку. Работая с ней, пользователь может создавать, корректировать, сохранять картинки во внешней памяти или удалять некоторые из них. Использование графических элементов позволяет активизировать образное восприятие у ученика, которое часто гораздо эффективнее, чем вербальное.
Если объектом работы является созданное ранее упражнение, учитель может:
- отредактировать упражнение, т.е. изменить содержимое композиций, формулировку задания, сложность и метод предъявления упражнения (игровую форму);
- удалить упражнение;
- перейти к предыдущему или следующему по порядку упражнению;
- "пометить" упражнение для того, чтобы не забыть включить его в состав какого-либо урока.
На основе созданных упражнений учитель составляет уроки и задает комментарии к ним. Урок в системе Эрудит определяется как простая последовательность упражнений. При формировании нового урока учитель просматривает список существующих в данной теме упражнений с комментариями к ним и выбирает те из них, которые считает нужным включить в урок. Созданному уроку автоматически присваивается определенный номер. В режиме Учитель имеется также возможность редактирования выбранного урока (исключение из состава этого урока некоторых упражнений и включение других, изменение комментария). Ненужный урок можно удалить.
В режиме Ученик происходит собственно обучение. Учащемуся предстоит выполнить созданные в режиме Учитель уроки. При: этом можно либо сразу приступить к выполнению выбранного урока, либо предварительно просмотреть "десятку лучших" (она содержит список лучших учеников и количество набранных ими очков по данному уроку). Обучающийся всегда имеет шанс, повторно пройдя урок, повысить свои результаты и попасть в десятку лучших или переместиться на более высокий уровень в ней.
Перед началом сеанса обучения система запрашивает у обучающегося степень его подготовленности (по шкале от 1 до 9), и эта величина учитывается при начислении очков. Общее время на выполнение каждого упражнения ограничивается и фиксируется с помощью высвечивающихся на экране дисплея часов. В процессе выполнения упражнения ведется учет числа правильных и ошибочных ответов ученика, а также других показателей, фигурирующих при подсчете итога упражнения.
Элементы опорной и игровой композиций могут определенным образом интерпретироваться и участвовать в различных игровых ситуациях. Ученику при этом следует проявлять не только свои знания, но и соответствующую сообразительность и реакцию, чтобы успеть "поймать", "удержать", отгадать нужный объект. В системе Эрудит использованы две базовые игровые формы.
В первой из них требуется выбрать ответ из заданного множества возможных значений. Это схема облегченного типа, в ней содержится элемент подсказки. Она полезна для закрепления в памяти ученика не очень прочных ассоциативных связей, когда ответ как бы "крутится на языке", но не припоминается. Диалог с учеником при этом ведется с помощью двух человечков - помощников Ведущего. Человечки выражают свое мнение по поводу ответов ученика различными жестами - они пританцовывают, жестикулируют руками, качают головами. Каждый из человечков отвечает за свою композицию: первый - за опорную, в которой элементы выводятся на экран в порядке, заданном учителем; второй - за игровую, элементы которой располагаются в случайном порядке. При помощи управляющих клавиш ученик должен установить каждого человечка напротив соответствующих элементов и зафиксировать свой ответ. Если ответ верен, соответствующие элементы игровой и опорной композиций помещаются друг против друга, а человечки выражают свое одобрение небольшим танцем.
Другая схема предъявления упражнений дает ученику возможность ответить на заданный вопрос самостоятельно, без подсказки. Игровая форма, в которую Эрудит предлагает облечь эту схему, использует "плавающие" по экрану объекты (рыбки), за которыми закреплены элементы опорной композиции. В течение короткого промежутка времени ученик должен ввести ответ с клавиатуры. При этом он может успеть опробовать несколько вариантов, что, однако, повлечет за собой начисление штрафных очков.
В описанных методах предусматриваются поощрения за правильно выполненные упражнения. При этом используются элементы мультипликации, звуковое сопровождение и другие приемы для поддержания интереса. Разрабатываются и другие оригинальные методы предъявления упражнений ученику.
Для работы в системе Эрудит от пользователя не требуется почти никакой специальной подготовки. В случае необходимости система предоставит ему помощь. Дружественность и простота в использовании делают эту систему доступной как профессионалу, так и дилетанту.
...
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Страница 1 из 2 • 1, 2
Похожие темы
» Растригин. С компьютером наедине. 1990
» Броуди. Начальный курс программирования на языке ФОРТ. 1990
» Приложение. В мире науки. Занимательный компьютер. 1983-1990
» Броуди. Начальный курс программирования на языке ФОРТ. 1990
» Приложение. В мире науки. Занимательный компьютер. 1983-1990
Страница 1 из 2
Права доступа к этому форуму:
Вы не можете отвечать на сообщения