Алгоритм завантаження ОС наступний. Алгоритм завантаження операційної системи. Завантажувачі типу «компіляція-виконання»

Завантажувач – це системна програма, яка виконує завантаження.Багато завантажувачів забезпечують, крім того, переміщення та зв'язування. У деяких системах функція зв'язування відокремлена від функцій переміщення та завантаження. Зв'язування виконується спеціальною програмою зв'язування (або редактором зв'язків), переміщення та завантаження – завантажувачем.

Зв'язування - це зв'язування двох або більше окремих програм, що відтранслюються.

Переміщення - це модифікація об'єктної програми так, щоб вона могла завантажуватися з адреси, відмінної від початкової.

Функції завантажувача:

  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