Процедура запуска прикладных программ.
Для запуска прикладной программы нужна ОС (DOS), находящаяся в оперативной памяти компьютера, но если компьютер был выключен, то нужно предварительно загрузить в ОЗУ саму операционную систему. Это происходит следующим образом:
1. После включения питания PC, схемы контроля уровня питающих напряжений, находящиеся в БП (Hard Ware) выдают сигнал Power OK (Power Good).
2. По сигналу Power OK, ИМС интервального таймера (или СБИС чип-сета с этим таймером) вырабатывает сигнал RESET (приведение АПС в исходное состояние).
3. Сигнал RESET, после сброса CPU, FPU, контроллеров, кэш, регистров и т. д., своим задним фронтом запускает в работу CPU.
4. CPU вырабатывает обращение к ROM BIOS по адресу 0FFFh (первый адрес POST-программы); больше он самостоятельно ничего делать не может, кроме как выполнять инструкции (машинные команды), содержащиеся в объектном модуле исполняемой программы.
5. Проверив флаг рестарта ("холодный" старт или "теплый" рестарт), BIOS запускает всю (при "холодном" старте) или только некоторую (при "теплом" рестарте) часть POST-программы самоконтроля Hard Ware РС.
6. Если POST-программа выполняется неверно, то BIOS формирует и выводит на монитор видео-код обнаруженной ошибки (если видеоподсистема исправна) или аудио-код ошибки, если вывести код ошибки на дисплей нельзя из-за того, что видеосистема еще не проверена или неисправна.
7. Если POST-программа выполнилась, BIOS формирует для CPU команду чтения загрузочного сектора с FD (дисковод А:), привода CD или HD (дисковод С:).
8. Если в дисководе А: или на CD-дисководе находится системная дискета или компакт диск (первый сектор – загрузочный) и дисковод готов, то загрузочная запись с дискеты переписывается в ОЗУ и управление передается программе начальной загрузки DOS (IPL2), находящейся в BOOT-секторе загрузочной дискеты или CD-диска.
9. Если дисковод А: и CD-дисковод не активны, то формируется обращение к диску С: (HDD), откуда считываться Master Boot Record аналогично FD, и управление передается программе начальной загрузки DOS – IPL1. Впрочем, порядок опроса дисководов для загрузки операционной системы может быть по желанию пользователя изменен в настройках BIOS, с помощью утилиты SetUp.
10. Программа IPL загружает ядро DOS (ее резидентную часть) с диска – в ОЗУ и передает ей управление. Это ядро составляют файлы IBMBIO.COM и IBMDOS.COM (если DOS версии IBM) или IO.SYS и MSDOS.SYS (если DOS версии Microsoft), или два других аналогичных по функциям файла для других версий DOS, а также файл командного процессора – COMMAND.COM. Назначение последнего – дешифрация и исполнение системных команд, вводимых оператором в командной строке или записанных в конфигурационных файлах CONFIG.SYS и AUTOEXEC.BAT и других пакетных командных файлах.
11. Теперь управление передается самой операционной системе, точнее ее файлу IBMDOS.COM. Файл IBMDOS.COM отыскивает в корневом каталоге системного диска конфигурационные файлы CONFIG.SYS и AUTOEXEC.BAT и, используя имеющиеся в них системные команды и параметры, настраивает универсальную BIOS под ее требуемую программную конфигурацию. При дальнейшей работе, файл IBMDOS.COM обслуживает периферийные устройства, не поддерживаемые стандартной ROM BIOS. Если файлов CONFIG.SYS или AUTOEXEC.BAT нет, или в них не заданы параметры настройки универсальной DOS, то IBMBIO.COM оставляет настройки, имеющиеся в BIOS по умолчанию.
12. IBMDOS.COM реализует основные функции DOS, поддерживая промежуточный уровень обслуживания операций ввода-вывода, большая часть которых используется программами более высокого уровня.
13. Файл COMMAND.COM обрабатывает вводимые команды DOS, определяя дальнейшие действия компьютера.
14. Только теперь DOS выдает на дисплей системное приглашение и готова выполнять команды DOS, вводимые пользователем, в том числе команды ввода, загрузки, запуска прикладных, пользовательских программ.
15. Если в корневом каталоге имеется файл AUTOEXEC.BAT, то исполняются по-очереди все содержащиеся в нем системные команды запуска прописанных здесь служебных (в том числе и диагностических, если они прописаны в AUTOEXEC.BAT) программ. Среди них могут быть, например, русификаторы UniScreen, Keyrus, детектор вирусов AIDSTEST, программа поддержки нестандартного формата НГМД – 800, TSR-программы, например поддержки манипулятора "мышь" (MOUSE.COM), кэширования жесткого диска (SMARTDRV), формирования сжатых дисков (DUBLSPACE) и т. п. Наконец, обычно самой последней, прописывается команда запуска оболочки ОС, например, NC, VC, DN и т. п. Оболочка должна быть прописана последней строкой файла AUTOEXEC.BAT, иначе, после того, как ей будет передано управление, все последующие команды этого файла во время загрузки системы выполнены не будут. Они выполнятся только после выхода из оболочки (обычно – нажатием клавиши F10).
16. Если запуск оболочки DOS не был прописан в конфигурационном файле, то DОS выдает на дисплей системное приглашение, позволяющее из командной строкизадавать на исполнение системные команды. Если же управление было передано оболочке, то сама оболочка формирует экран дисплея и предоставляет пользователю кроме функций ОС еще ряд дополнительных средств пользовательского интерфейса с использованием функциональных, "горячих" клавишей и т. п.
17. Только теперь пользовательская, в том числе и диагностическая, программа может быть запущена на исполнение командой, записываемой в командную строку, или, если работа производится, скажем, в оболочке NC, выбором соответствующей строки с именем этой программы, в текущем каталоге.
Обобщенный алгоритм работы POST-программы и загрузки операционной системы:
включение питания
│
БП: сигнал PG (питание в норме) ─> ГТИ, таймер
│
сигнал RESET ─> CPU:
сброс Рг DS, ES, SS, IP
CS:= 0FFFh (адрес первой команды POST)
│
CPU выполняет первую команду JMP POST
│
Блокировка NMI.
│
│
Установка флагов CPU.
│
Тест Зп/Чт регистров CPU:
запись сегмента, верификация записанного.
│
Тест выполнен успешно? ─ нет ────────────┐
│ │
Тест ПЗУ ROM BIOS: │
подсчет контрольной суммы. │
│ │
Тест выполнен успешно? ─ нет ────────────>│
│ │
Инициализация DMA: │
│ │
- проверка временных операций │
│ │
Тест выполнен успешно? ─ нет ───────────>│
│ │
- инициализация таймера, │
- инициализация регистров DMA, │
- начало регенерации RAM. │
│ │
┌──── да ───── “Теплый” старт? │
│ │ │
│ тест первых 16К ОЗУ: │
│ запись и верификация │
│ фрагментов в RAM. │
│ │ │
│ Тест выполнен успешно? ─────── нет ────────>│
│ │ │
└────────────────────>│ │
│ │
Инициализация контроллера прерываний: │
- установка векторов прерываний, │
- тест контроллера, │
- проверка зп/чт в регистр масок прерываний, │
- маскирование прерываний, │
- проверка, что прерывания замаскированы. │
│ │
Тест выполнен успешно? ─────── нет ─────────>│
│ │
Тест таймера и правильности его счета. │
│ │
Тест выполнен успешно? ─────── нет ─────────>│
│ │
│ │
┌─ нет ─ Видеоконтроллер инсталлирован в CMOS? │
│ │ │
│ Инициализация и запуск видеоконтроллера: │
│ - считывание из CMOS-памяти типа дисплея, │
│ - установка режима видеосистемы, │
│ - тест записи/чтения видео-RAM. │
│ │ │
│ Тест выполнен успешно? ─────── нет ─────────>│
└────────────────────────>│ │
На экране монитора отображается курсор │
│ │
Проверка слотов на установку карт: │
если установлены, то │
- тест записи/чтения на шинах XA и XD │
│ │
Тест выполнен успешно? ─────── нет ─────────>│
│ формирование
│ аудиосигнала
┌──── да ───── “Теплый” рестарт? ошибки SB,
│ │ останов системы.
│ Тест базовой RAM:
│ запись/чтение и верификация фрагментов.
│ │
│ Тест выполнен успешно? ── нет ─────────────┐
│ │ │
│ Тест расширенной RAM: │
│ запись/чтение и верификация фрагментов. │
│ │ │
│ Тест выполнен успешно? ── нет ────────────>│
│ │ формирование
└─────────────────────>│ сообщения типа 200
│
┌──── нет ───── Клавиатура инсталлирована в CMOS?
│ │
│ │
│ Тест KBD:
│ - программа сброса клавиатуры,
│ - разблокировка клавиатуры,
│ - проверка кода сканирования 0AAh,
│ - очистка буфера клавиатуры,
│ - проверка отсутствия нажатых клавишей.
│ │
│ тест выполнился успешно? ── нет ────────────┐
│ │ формирование
└─────────────────────>│ сообщения
│ типа 300
Установка таблицы векторов прерываний.
│
┌──── нет ───── “Теплый” старт?
│|
│ ┌── Дополнительная память установлена?
│ │ │
│ нет Тест дополнительной памяти.
│ │ │
│ │ Тест выполнен успешно? ── нет ────────────┐
│ │ │ формирование
│ └───────────────────>│ сообщения
└──────────────────────>│ типа 201
│
Тестирование контроллера HDD:
- проверка инсталляции HDD в CMOS,
- инициализация контроллера HDD,
- проверка состояния перемычек MASTER-SLAVE на HDD.
│
тест выполнился успешно? ── нет ────────────┐
│ формирование
Тестирование LPT и COM-портов: сообщения
│ типа 700
- тест записи/чтения в регистры LPT-порта,
- тест записи/чтения в регистры СОМ-порта,
- запоминание адресов действующих портов,
- установка времени ожидания для LPT и COM-портов.
│
тест выполнился успешно? ── нет ────────────┐
│ формирование
Разрешение прерываний. сообщения
│ типа 500
Выдача звукового сигнала (один короткий)
│
выход из POST-программы и переход к загрузке DOS
|
Обработка прерывания 19h от дисковода А:
│
┌── нет ── Дисковод А: готов?<────────────────────────────┐
│ │ │
│ Чтение BOOT-RECORD с дисковода А │
│ (цилиндр 0, головка 0, сектор 1) │
│ │ │
│ BOOT-RECORD прочитан? ── нет ─────┐ │
│ │ Сообщение: │
│ Передача управления на IPL2. ОШИБКА ЧТЕНИЯ, ИЛИ │
│ │ НЕСИСТЕМНЫЙ ДИСК. │
┌──│─────────────────────────┘ УСТАНОВИТЕ ДИСКЕТУ │
│ │ В ДИСКОВОД А: И НАЖМИТЕ│
│ └─────────────────────────┐ ЛЮБУЮ КЛАВИШУ │
│ Чтение MASTER-BOOT-RECORD c дисковода С: │ │
│ (цилиндр 0, головка 0, сектор 1) └───────────┘
│ │
│ MBR прочитан? ─── нет ─────────┐
│ │ Сообщение:
│ Передача управления на IPL1. ОШИБКА ЧТЕНИЯ или
│ │ НЕСИСТЕМНЫЙ ДИСК.
└───────────────────────────>│ УСТАНОВИТЕ СИСТЕМНУЮ ДИСЕТУ
│
Загрузка DOS
Дата добавления: 2015-07-18; просмотров: 885;