Алгоритм загрузки операционной системы следующий. Алгоритм загрузки операционной системы. Загрузчики типа «компиляция-выполнение»

Загрузчик - это системная программа, выполняющая загрузку. Многие загрузчики обеспечивают, кроме того, перемещение и связывание. В некоторых системах функция связывания отделена от функций перемещения и загрузки. Связывание выполняется специальной программой связывания (или редактором связей), перемещение и загрузка - загрузчиком.

Связывание - это связывание двух или более отдельных оттранслированных программ.

Перемещение - это модификация объектной программы так, чтобы она могла загружаться с адреса, отличного от первоначального.

Функции загрузчика:

  1. распределение ОП;
  2. перемещение программы;
  3. связывание модулей;

Распределение ОП

Перемещение программы

Если внутри модулей имеются адресные константы, которые вычисляются от начала модуля, то адреса будут корректироваться относительно Базы.

Связывание модулей

Виды загрузчиков

Загрузчики типа «компиляция-выполнение»

Одним из возможных способов выполнения функции загрузчика может быть такая организация работы ассемблера, при которой ассемблер, работая в одной части памяти, помещает машинные команды и данные по мере ассемблирования непосредственно в выделенные для них ячейки памяти. После завершения компиляции ассемблер передает управление в точку входа полученной программы. Это очень простое решение, позволяющее обойтись без каких-либо дополнительных процедур. Такая схема называется «компиляция-выполнение», а «загрузчик» состоит из одной команды, которая передает управление ассемблированной программе.

Абсолютные загрузчики просты в реализации, но имеют ряд особенностей:

  • задачу распределения ОП выполняет программист (с помощью директивы установки начального значения ОП);
  • задачу перемещения программы выполняет компилятор;
  • связывание модулей - решается программистом (call 600);
  • загрузка программ в ОП и запуск на выполнение.

Достоинства:

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

Недостатки:

Большой объем работ ложится на программиста. Нужно постоянно отслеживать изменения начальных адресов при модификации модулей, т.к. изменяется их длина.

Структура объектного файла абсолютного загрузчика

Информационная запись состоит из:

  1. признак;
  2. абсолютный адрес ОП, куда можно переносить информацию;
  3. количество информационных байтов в сообщении;
  4. байты информации;
  5. контрольные суммы;
  6. нумерация.

Управляющая запись состоит из:

  1. признак;
  2. адрес точки входа.

Работа простого абсолютного загрузчика:

  1. Проверить достаточно ли памяти для данной программы (просмотр первой записи).
  2. Последовательное считывание тела программы и помещение по указанному адресу.
  3. Передача управления по адресу для исполнения программы.

Настраивающий загрузчик

Чтобы избежать необходимости повторного ассемблирования всех подпрограмм при внесении изменения в одну из них, а также чтобы освободить программиста от задач распределения памяти и осуществления связи подпрограмм, были разработаны так называемые загрузчики. Этот загрузчик допускает наличие в программе нескольких программных сегментов и одного сегмента данных (общего сегмента). Ассемблер транслирует каждый сегмент отдельно и передает загрузчику текст и информацию, касающуюся перемещений и перекрестных ссылок между сегментами.

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

Для каждой исходной программы ассемблер в качестве выходной информации вырабатывает текст (результат трансляции), предваряемый вектором переходов, содержащим адреса имен подпрограмм, к которым имеются обращения в исходной программе. Например, если подпрограмма SQRT является первой вызываемой подпрограммой, то первая ячейка вектора переходов будет содержать символическое имя SQRT. Предложения, содержащие вызов подпрограммы SQRT, будут транслироваться в команду перехода, указывающую адрес элемента вектора переходов, связанного с SQRT. Ассемблер, кроме того, будет передавать дополнительную информацию такую, как общая длина программы и длина вектора переходов. После загрузки в память текста программы и вектора переходов загрузчик будет загружать каждую подпрограмму, указанную в векторе. Затем он в каждый элемент вектора поместит команду перехода к соответствующей подпрограмме. Таким образом, вызов подпрограммы SQRT приведет к выполнению команды перехода к первой ячейке вектора переходов, в которой будет содержаться команда перехода к вызываемой подпрограмме.

Такая схема загрузки с двухступенчатой передачей управления часто используется в вычислительных машинах с фиксированным форматом команд и непосредственной адресацией.

Такой загрузчик имеет ряд недостатков:

  • вектор переходов не вполне удобен для загрузки и сохранения внешних данных (расположенных в другом программном сегменте);
  • вектор переходов увеличивает длину объектной программы;
  • загрузчик работает с программными сегментами, но не облегчает доступ к сегментам данных, которые могут совместно использоваться несколькими подпрограммами.

Непосредственно связывающий загрузчик

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

Ассемблер (транслятор) должен передать загрузчику следующую информацию с каждым сегментом программы и данных:

  1. длину сегмента;
  2. список всех символов сегмента, к которым возможно обращение из других сегментов, и их относительные адреса;
  3. список всех символов, не определенных в данном сегменте, к которым есть обращение в данном сегменте;
  4. информацию о расположении адресных констант в сегменте и описание того, каким образом должны изменяться их значения;
  5. машинные коды, полученные в результате трансляции, и приписанные относительные адреса.

Одним из недостатков непосредственно связывающего загрузчика в простейшем виде является необходимость при каждом выполнении программы повторно выполнять функции распределения памяти, перемещения, связывания и загрузки всех необходимых подпрограмм. Эти проблемы можно устранить путем выполнения загрузки с помощью двух отдельных программ: объединителя и загрузчика модуля. Выходом объединителя является набор данных в формате, допускающем загрузку программы в память, и называется загрузочным модулем. Существует несколько типов объединителей. Один из них, так называемый, редактор связей, который сохраняет информацию, необходимую для перемещения модуля, в памяти, так что модуль как единое целое может затем настраиваться и загружаться в произвольное место памяти. В этом случае загрузчик модуля должен выполнять функции распределения памяти и перемещения, но остается свободным от решения сложной задачи связывания объектных модулей и подпрограмм.

Динамический загрузчик

В каждой из рассмотренных схем предполагалось, что все необходимые подпрограммы загружаются в память одновременно. Если общее количество памяти, требуемое для подпрограмм меньше доступной памяти машины, возникают затруднения. Эти трудности преодолеваются применением схемы динамической загрузки с последовательным использованием объединителя и загрузчика. Эта схема основывается на том, что обычно разные подпрограммы требуются в разное время и могут взаимно исключать себя. Используя явное определение того, какая подпрограмма содержит обращения к другим подпрограммам, можно задать, так называемую, структуру с перекрытием (оверлейную структуру), которая указывает взаимоисключающие подпрограммы.

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

Динамическое связывание

Бывают случаи, когда для эффективности использования памяти машины осуществляется динамическое связывание подпрограмм, проводимое уже при выполнении программы. То есть подпрограммы загружаются в память только по мере их вызова. Это может быть выгодно, т.к. при определенных условиях в программе некоторые подпрограммы могут вообще не понадобиться. Рассмотрим пример:

if (условие 1)
вызов подпрограммы 1
if (условие 2)
вызов подпрограммы 2
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
if (условие m)
вызов подпрограммы m

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

Операционная система хранится во внешней памяти обычно на жестком диске, реже – на гибком. Для нормальной работы компьютера необходимо, чтобы основные модули операционной системы находились в оперативной памяти. Поэтому после включения компьютера организована автоматическая перезапись (загрузка) операционной системы с диска в оперативную память. Наиболее важные аспекты этой загрузки отражены в виде алгоритма на рис. 9.13.

Рис. 9.13. Алгоритм загрузки операционной системы с диска в оперативную память

После включения компьютера вы наблюдаете за сменой цифр на экране. Эти цифры отображают процесс тестирования оперативной памяти программой BIOS. При обнаружении неисправности в ячейках оперативной памяти будет выдано сообщение.

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

Начинается считывание в оперативную память 0-го сектора 0-й стороны диска, в котором находится загрузчик (BOOT RECORD). Управление передается загрузчику, который проверяет наличие на системном диске модуля расширения IO.SYS и базового модуля MSDOS.SYS. Если они находятся в отведенном для них месте (см. рис. 9.10), то он загружает их в оперативную память, в противном случае будет выдано сообщение об их отсутствии. В этом случае рекомендуется произвести повторную загрузку. Сигнал повторной загрузки передает управление постоянному модулю BIOS, который снова переписывает с диска в оперативную память блок начальной загрузки и т.д.

Запомните! Для повторной загрузки операционной системы в память нажать одновременно клавиши .

После успешно выполненной загрузки в оперативную память модуля расширения IO.SYS и базового модуля MSDOS.SYS загружается командный процессор СОМMAND.COM и обрабатывается файл конфигурации CONFIG.SYS, который содержит команды подключения необходимых драйверов. Этот файл может отсутствовать, если вас устраивает базовый вариант операционной системы.



Затем выполняется обработка командного файла AUTOEXEC.BAT. С помощью этого файла вы можете произвести настройку параметров операционной среды. Например, создать виртуальный диск, обеспечить смену режимов печати, загрузить вспомогательные программы и т.д.

Внимание! Файлы с расширением.ВАТ играют при работе в системной среде особую роль. Они содержат совокупность команд операционной системы или имен исполняемых файлов. После запуска файла с расширением.ВАТ все записанные в нем команды выполняются автоматически одна за другой.

Файл со стандартным именем AUTOEXEC.BAT отличается от других файлов типа.ВАТ тем, что выполнение помещенных в него команд начинается автоматически сразу после загрузки операционной системы.

В случае отсутствия файла AUTOEXEC.BAT вам будет предложено ввести дату и время:

если вы нажмете клавишу ввода, то в качестве текущих даты и времени будут приняты так называемые системные параметры, которые определяет компьютерный таймер;

если вы хотите сделать переустановки системных даты и времени, то в ответ на приглашение введите значения в одной из предусмотренных форм, например:

10-25-1997 (месяц день год)

7:30:10.00р (часы:минуты:секунды)

После окончания работы файла AUTOEXEC.BAT, а также если этот файл не обнаружен, на экран дисплея будет выдано приглашение системного диска, например C:\>. Это является свидетельством нормального завершения процесса загрузки, и вы можете приступить к работе, введя имя прикладной программы или команду операционной системы.

Примечание. Файлы CONFIG.SYS и AUTOEXEC.BAT могут отсутствовать. В этом случае параметры операционной среды будут установлены по умолчанию.

Запомните! На жестком диске необходимо обеспечить постоянное хранение операционной системы.

При включении компьютера все дисководы для гибких дисков должны быть открыты.

Вставлять гибкий диск с прикладными программами в дисковод надо после окончания загрузки.



ТЕХНОЛОГИЯ РАБОТЫ В MS DOS

§ Общие сведения о командах

§ Основные команды для работы с каталогами

§ Основные команды для работы с файлами

§ Основные команды для работы с дисками

§ Создание и использование командного файла

§ Командный файл автонастройки операционной системы AUTOEXEC.BAT

§ Настройка операционной системы с помощью файла конфигурации CONFIG.SYS

ОБЩИЕ СВЕДЕНИЯ О КОМАНДАХ

Алгоритм загрузки операционной системы

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

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

- перезапись операционной системы с диска (жесткого или гибкого) в оперативную память.

После включения компьютера на экране наблюдается смена цифр. Эти цифры отображают процесс тестирования оперативной памяти программой ВIOS. При обнаружении неисправности в ячейках оперативной памяти будет выдано сообщение.

После успешного окончания тестирования аппаратуры производится обращение к дисководу с гибким диском А, и рядом с ним загорается лампочка индикации. В случае если загружается операционная система с гибкого диска, то нужно до или во время тестирования вставить системный диск в дисковод А. В противном случае при отсутствии на диске А опе­рационной системы осуществляется обращение к жесткому диску, о чем свидетельствует засветившаяся рядом с ним лампочка индикации.

Начинается считывание в оперативную память 0-го сектора 0-й стороны диска, в котором находится загрузчик (ВООТ RECORD). Управление передается загрузчику, который проверяет наличие на системном диске модуля расширения IO.SYS и базового модуля MSDOS.SYS. В случае если они находятся в отведенном для них месте, то он загружает их в оперативную память, в противном случае будет выдано сообщение об их отсутствии. В этом случае рекомендуется произвести повторную загрузку. Сигнал повторной загрузки передает управление постоянному модулю BIOS, который снова переписывает с диска в оперативную память блок начальной загрузки и т.д.

ПРИМЕЧАНИЕ! Для повторной загрузки операционной системы в память нажать одновременно клавиши <Сtгl> <АLT> .

После успешно выполненной загрузки в оперативную память модуля расширения IO.SYS и базового модуля MSDOS.SYS загружается командный процессор СОММАND.СОМ и обрабатывается файл конфигурации CONFIG.SYS, который содержит команды подключения необходимых драйверов. Этот файл может отсутствовать, если пользователя устраивает базовый вариант операционной системы.

Затем выполняется обработка командного файла AUTOEXEC.ВАТ. С помощью этого файла производится настройка параметров операционной среды. К примеру, создать виртуальный диск, обеспечить смену режимов печати, загрузить вспомогательные программы и т.д.

Примечание! Файлы с расширением.ВАТ играют при работе в системной среде особую роль. Οʜᴎ содержат совокупность команд операционной системы или имен исполняемых файлов. После запуска файла с расширением.ВАТ всœе записанные в нем команды выполняются автоматически одна за другой.

Файл со стандартным именем AUTOEXEC.ВАТ отличается от других файлов типа.ВАТ тем, что выполнение помещенных в него команд начинается автоматически сразу после загрузки операционной системы.

В случае отсутствия файла AUTOEXEC.ВАТ будет предложено ввести дату и время:

если вы нажмете клавишу ввода, то в качестве текущих даты и времени будут приня­ты так называемые системные параметры, которые определяет компьютерный таймер;

если вы хотите сделать переустановки системных даты и времени, то в ответ на приглашение введите значения в одной из предусмотренных форм, к примеру:

10-25-1997 (месяц день год)

7:30:10.00р (часы: минуты: секунды)

После окончания работы файла AUTOEXEC.ВАТ, а также если данный файл не обнаружен, на экран дисплея будет выдано приглашение системного диска, к примеру С:\>. Это является свидетельством нормального завершения процесса загрузки, и можно приступить к работе, введя имя прикладной программы или команду операционной системы.

Примечание. Файлы CONFIG.SYS и AUTOEXEC.ВАТ могут отсутствовать. В этом случае параметры операционной среды будут установлены по умолчанию.

Запомните! На жестком диске крайне важно обеспечить постоянное хранение операционной системы. При включении компьютера всœе дисководы для гибких дисков должны быть открыты.

Вставлять гибкий диск с прикладными программами в дисковод нужно после окончания загрузки.

Тестирован программой

Загр. Нет Загр.

на гибком жестком нет

диске диске

Считыв. с гибкого диска Считыв. с жест. диска

IO.SYS, MSDOS.SYS в загрузочном секторе»

Загр. Нет Сообщение

правильна? «Нет системных файлов»

Command. Com «Нет системных файлов»

и файла CONFIG.SYS