:: Статистика ::

 
Індекс цитування

 

 

 

 

 

Абсолютне завантаження

Перший, найпростіший, варіант полягає в тому, що ми завжди завантажуватимемо програму з однієї і тієї ж адреси. Це можливо в наступних випадках.

  • Система може надати кожному процесу свій адресний простір. Це можливо лише на процесорах, що здійснюють трансляцію віртуальної адреси у фізичний.
  • Система може виконувати в кожен момент лише один процес. Так поводиться Ср/м, так само влаштована більшість завантажувальних моніторів для саморобних комп'ютерів. Схожим чином влаштована система RT-11, але про неї ледве нижче.

Завантажувальний файл, використовуваний при такому способі завантаження, називається абсолютним завантажувальним модулем.
Початковий вміст образу процесу формується шляхом простого копіювання модуля в пам'ять. У системі RT-11 такі файли мають розширення sav від saved — збережений.

Формат завантажувального модуля а.out
У системі UNIX на 32-розрядних машинах також використовується абсолютне завантаження. Завантажуваний файл формату а.out (сучасні версії Unix використовують складніший формат завантажуваного модуля і складнішу схему завантаження, яке обговорюватиметься в разд. Бібліотеки, що розділяються) починається із заголовка (мал. 3.1), який містить:
• "магічне число" — ознака того, що це саме завантажуваний модуль, а не щось інше;
• число TEXT_SIZE — довжину області коди програми (TEXT);
• DATA_SIZE —длину області инициализованных даних програми (DATA);
• BSS_SIZE —длину області неинициализованных даних програми (BSS);
• стартова адреса програми.
За заголовком слідує вміст областей TEXT і DATA. Потім може слідувати налагоджувальна інформація. Вона потрібна символьним відладчикам, але самою програмою не використовується.
При завантаженні система виділяє процесу TEXT_SIZE байтів віртуальної пам'яті, доступної для чтения/исполнения, і копіює туди вміст сегменту TEXT. Потім відлічується DATA_SIZE байтів пам'яті, доступної для чтения/ запису, і туди копіюється вміст сегменту DATA. Потім відлічується
ще BSS_SIZE байтів пам'яті, доступної для чтения/записи, які прописуються нулями.
Очищення пам'яті, що виділяється, потрібне не стільки для зручності програміста, скільки з міркувань безпеки: перед знов завантажуваним процесом цю пам'ять могли займати (а при скільки-небудь тривалій роботі системи майже напевно займали) інші процеси, які могли використовувати цю пам'ять для зберігання важливих і секретних даних, наприклад паролів або ключів шифрування.
Після цього виділяється простір під стек, в стек поміщаються позиційні аргументи і середовище виконання (environment), і управління передається на стартову адресу. Процес починає виконуватися.

Мал. З.1. Завантажувальний модуль а.out

 

рекламодавці:

/ ml lfppюн

::  Меню ::

ГОЛОВНА

Введення

Представлення даних в обчислювальних системах 

Машинні мови

Завантаження програм 

Управління оперативною пам'яттю

Сегментна і сторінкова віртуальна пам'ять

Комп'ютер і зовнішні події

Паралелізм з точки зору програміста 

Реалізація багатозадачності на однопроцесорних комп'ютерах 

Зовнішні пристрої

Драйвери зовнішніх пристроїв 

Файлові системи 

Додаток. Огляд архітектури сучасних ОС

 


:: Навігація ::

Головна

Додати у вишукане  

 

 

 


Copyright © Asentli, 2008