T
В· A: file1.txt - файл file1.txt в кореневому каталозі дискети, що знаходиться в даний момент в відповідному пристрої
Оскільки файли розпізнаються операційною системою по повним іменам, то файли у різних підкаталогах можуть мати однакові імена, залишаючись тим не менш різними файлами для ОС, оскільки їх повні імена будуть різними. Наприклад, файли C: RAB file1.txt і C: DOKUM file1.txt є для ОС різними, хоча і мають однакові імена. p align="justify"> 1.
2.
.
.
5. У чому полягають функції завантажувача?
Завантажувач - програма, яка готує об'єктну програму до виконання і ініціює її виконання.
Більш детально функції завантажувач наступні:
В· виділення місця для програм в пам'яті (розподіл);
В· фактичне розміщення команд і даних у пам'яті (завантаження);
В· дозвіл символічних посилань між об'єктами (зв'язування);
В· налаштування всіх величин в модулі, що залежать від фізичних адрес відповідно до виділеної пам'яттю (переміщення);
В· передача керування на вхідну точку програми (ініціалізація).
Не обов'язково функції завантажувач повинні виконуватися саме в тій послідовності, в якій вони описані. Опишемо ці функції більш докладно. p align="justify"> Функція розподілу, мабуть зрозуміла з її назви. Для розміщення програми в оперативній пам'яті повинно бути знайдено і виділено вільне місце в пам'яті. Для виконання цієї функції Завантажувач зазвичай звертається до операційної системи, яка виконує його запит на виділення пам'яті в рамках загального механізму управління пам'яттю. p align="justify"> Функція завантаження зводиться до зчитування образу програми з диска (або іншого зовнішнього носія) в оперативну пам'ять.
Функція зв'язування полягає в компонування програми з багатьох об'єктних модулів. Оскільки кожен з об'єктних модулів у складі програми був отриманий в результаті окремого процесу трансляції, який працює тільки з одним конкретним модулем, звернення до процедур і даних, розташованим в інших модулях, в об'єктних модулях не містять актуальних адрес. Завантажувач ж "бачить" все об'єктні модулі, що входять до складу програми, і він може вкласти в звернення до зовнішніх точкам правильні адреси. Завантажувачі, які виконують функцію зв'язування разом з іншими функціями, називаються Зв'язуючими завантажувач. Виконання функції зв'язування може бути перекладене на окрему програму, звану Редактором зв'язків або компонувальник. Редактор зв'язків виконує тільки функцію зв'язування - збірки програми з багатьох об'єктних модулів і формування адрес у зверненнях до зовнішніх точкам. На виході Редактора зв'язків ми отримуємо завантажувальний модуль. p align="justify"> Функція переміщення необхідно тому, що програма на будь-якій мові розробляється в деякому віртуальному адресному просторі, в якому адресація ведеться відносно початку програмної секції. При написанні програми і при її трансляції, як правило, невідомо, за якою адресою пам'яті буде розміщена програма (де система знайде вільну ділянку пам'яті для її розміщення). Тому в більшості випадків в командах використовується саме адреси міток і даних. Проте, в деяких випадках в програмі виникає необхідність використовувати реальні адреси, які визначатися тільки після завантаження. Всі величини в програмі, які повинні бути прив'язані до реальних адресами, повинні бути налаштовані з урахуванням адреси, за якою програма завантажена. p align="justify"> Існують програми, які при написанні розраховуються на розміщення в певних адресах пам'яті, так звані, абсолютні програми. Підготовка таких програм до виконання значно простіше і виконується вона Абсолютним завантажувачем. Функції такого завантажувач набагато простіше:
В· функція розподілу не виконується, так як реальне адресний простір, в якому розміщується програма передбачається вільним;
В· функція завантаження, звичайно, виконується, але вона гранично проста;
В· функція зв'язування може бути виключена з Абсолютного завантажувач: оскільки всі адреси програми відомі заздалегідь, адреси, за якими відбуваються звернення до зовнішніх точкам, можуть бути визначені заздалегідь; span>
В·