Автор: Пользователь скрыл имя, 11 Января 2012 в 21:28, лекция
Мы не станем рассматривать самый низший уровень этой схемы – аппаратное обеспечение, а начнем на ступеньку выше – с посредника, находящегося между аппаратным обеспечением и медицинской программой, называемого операционной системой. Большинство из вас знакомо с двумя из операционных систем – Windows и MS DOS. Как вы увидите далее, это не единственные и не самые лучшие ОС, хотя и наиболее распространенные.
BAT файлы не являются выполняемыми в прямом смысле слова, это скорее сценарии выполнения последовательности обычных команд. Простейший BAT файл – это просто список команд, собранных в единый файл для удобства их выполнения, однако возможности языка BAT файлов гораздо шире. Этот язык включает операторы перехода (GOTO), цикла (FOR…IN…DO), выдачи сообщений (ECHO), работы со списком параметров (SHIFT), проверки условия (IF), обработки ошибок (ERRORLEVEL). В результате имеется возможность создания довольно сложных, разветвленных схем обработки. Дополнительные возможности дают операторы перенаправления ввода/вывода, конвейерные операции и шаблоны групповых операций с файлами. Язык BAT файлов в MS DOS является рудиментарным, однако он широко используется в других операционных системах. Например, в UNIX более половины программного обеспечения существует именно в виде скриптов, разумеется язык таких файлов в UNIX гораздо богаче.
Настройка операционной системы MS DOS под конкретное аппаратное обеспечение и нужды пользователя производится при помощи файлов AUTOEXEC.BAT и CONFIG.SYS, которые считываются при старте системы. Прежде чем мы перейдем к их рассмотрению, стоит упомянуть еще один компонент MS DOS, называемый системным окружением. Это выделенная область памяти, в которой хранятся строковые переменные, доступные для всех программ и называемые переменными окружения. Каждая строка имеет формат: переменная = значение. Часть имен переменных зарезервирована и используется системой (наиболее употребительные – это PATH, TMP, TEMP, PROMPT, COMSPEC), однако пользователь может добавлять и свои переменные. Список этих переменных может быть получен или изменен командой SET. Каждой запускаемой программе передается своя копия системного окружения, которую программа может менять как ей заблагорассудится, однако основная копия может быть изменена лишь тем командным процессором, который был загружен при старте системы, поэтому основные настройки системного окружения выносят в файл AUTOEXEC.BAT
Наиболее употребительные директивы:
BUFFERS = n, m /X – определяет количество буферов DOS, используемых при дисковых операциях ввода-вывода. Наличие буферов существенно ускоряет операции с файлами, если программа многократно обращается к одним и тем же участкам файла. m– количество буферов предввода, т.е. секторов диска, считываемых вслед за запрошенным, ускоряет операции последовательного чтения. При увеличении количества буферов быстродействие системы сначала увеличивается, а затем начинает снижаться, т.к. при любом обращении к данным DOS сначала просматривает все буферы в поисках необходимых данных, к тому же каждый буфер занимает около 500 байт памяти, снижая её общий объем. Ключ “/Х” позволяет переместить буфера из обычной памяти в расширенную.
COUNTRY=007,866,путь\
SWITCHES=… – появилась в 5.0, позволяет модифицировать поведение DOS в некоторых ситуациях: ключ /F устраняет 2х-секундную задержку после сообщения “Starting MS-DOS…”, ключ /N – запрещает пользователю вмешиваться в процесс загрузки нажатием <F5> и <F8>.
FILES = n – определяет максимальное количество открываемых файлов (файловых дескрипторов), по умолчанию равно 8, Windows требует значения не меньше 50, однако при этом дополнительно расходуется 64 байта на каждый дескриптор.
DOS=HIGH, UMB – позволяет загрузить DOS в верхнюю память (HMA) и включить возможность загрузки программ в верхние блоки памяти (UMB). Верхняя память – это почти 64К, находящиеся выше 1Мб (сегмент FFFF) и области памяти между модулями ПЗУ (сегменты C800-FE00). Загрузка DOS в HMA возможна только при загруженном драйвере HIMEM.SYS, а использование UMB – только при помощи EMM386.EXE. Данный прием позволяет предоставить дополнительно освободить около 64К оперативной памяти для прикладной программы (и довести его до 630К против обычных 570К).
LASTDRIVE=Z – определяет максимальное число доступных имен дисков, необходима при наличии CD-ROM и при работе в сети. Дополнительный расход памяти – около 90 байт на диск.
DEVICE=…, DEVICEHIGH=… – загрузка дополнительных драйверов, Последняя команда пытается загрузить драйвер в верхние блоки памяти.
Важнейшие драйвера DOS:
HIMEM.SYS – поддержка расширенной (XMS) памяти, много параметров, однако обычно они не используются.
EMM386.EXE – обеспечивает поддержку верхних блоков памяти и эмуляцию expanded памяти на компьютерах с процессором не хуже 386. У драйвера много параметров, наиболее важные: размер эмулируемой EMS, RAM–поддержка UMB, NOEMS – отключение поддержки EMS
DISPLAY.SYS con=(ega,,1) – расширение возможностей стандартного драйвера дисплея, обеспечивает возможность переключения кодовых страниц. Должен быть установлен _до_ начала установки Windows.
SETVER – позволяет обмануть программы, требующие другую версию DOS. Для этого создается специальный список программ и версий DOS, которые они требуют.
Драйвер CDROM обычно поставляется вместе с дисководом и инструкцией по установке.
Является обычным BAT-файлом, единственным отличием которого является то, что он считывается при загрузке системы. Наиболее часто здесь используются команды:
SET PATH=… – устанавливает список каталогов, в которых DOS будет производить поиск программ
SET TEMP=… – устанавливает каталог для временных файлов
MODE – устанавливает режимы работы периферийных устройств, наиболее часто используется для выбора кодовой страницы дисплея :
mode con codepage prepare=((866) путь\ega3.cpi)
mode con codepage select=866
или настройки последовательного (COM) порта.
KEYB ru,,путь\keybrd3.sys – устанавливает тип интернациональной клавиатуры и клавишу переключения
PROMPT=$p$g – устанавливает вид приглашения DOS, в данном случае – путь>
Функции MS DOS, доступные пользовательским программам, реализованы в виде программных прерываний. Программное прерывание – это ни что иное, как обычная подпрограмма, имеющая несколько особые правила вызова. Этих подпрограмм может быть не более 256, а адреса входа в каждую подпрограмму хранятся в первом килобайте оперативной памяти. Все параметры в прерывание передаются через регистры микропроцессора.
Вообще говоря, все прерывания, доступные программе, делятся на 2 класса по своему происхождению: прерывания BIOS и прерывания собственно DOS. Начнем с первой группы. BIOS – это базовая система ввода-вывода, записанная в ПЗУ материнской платы Вашего компьютера. Она реализует наиболее низкоуровневые процедуры для работы с оборудованием. Поскольку BIOS обязана обеспечить принципиальную возможность работы с различными моделями оборудования, то в ней используются лишь наиболее общие свойства и команды и не учитываются особенности конкретной модели.
Функционально BIOS разделена на 2 части: программы начального запуска, тестирования и инициализации, и систему обслуживания прерываний.
Все функции BIOS разделены по группам в соответствии с тем оборудованием. которое она обслуживает:
Прерывание | Группа функций |
5 | Печать графической копии экрана |
$10 | Видеофункции |
$11 | Список присоединенного оборудования |
$12 | Запрос объема физической памяти |
$13 | Функции управления диском |
$14 | Функции управления последовательным портом RS-232 |
$16 | Функции управления клавиатурой |
$17 | Функции управления принтером |
$18 | Обращение к встроенной системе ROM-BASIC |
$19 | Перезапуск системы |
$20 - $2F | Функции MS DOS |
Функции DOS содержатся в прерывании с номером $21. Одна часть этих функций нацелена на реализацию основного предназначения DOS – работы с дисками и файлами, другая – фактически дублирует функции BIOS для работы с оборудованием. Это дублирование было сделано с целью унификации обращения к различному оборудованию, однако результат был не всегда удачен, т.к. разное оборудование обладает разными возможностями. Самый горький пример – вывод на экран. В DOS фактически отсутствуют средства работы с цветом символов и вывода в определенную точку экрана.