русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Абсолютная загрузка


Дата добавления: 2014-11-28; просмотров: 559; Нарушение авторских прав


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

Система может предоставить каждому процессу свое адресное простран­ство. Это возможно только на процессорах, осуществляющих трансляцию виртуального адреса в физический.

Система может исполнять в каждый момент только один процесс. Так ведет себя СР/М, так же устроено большинство загрузочных мониторов для самодельных компьютеров. Похожим образом устроена система RT-H, но о пей чуть ниже.

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

Начальное содержимое образа процесса формируется путем простого копи­рования модуля в память. В системе RT-11 такие файлы имеют расширение sav от saved — сохраненный.

В системе UNIX на 32-разрядных машинах также используется абсолютная за­грузка. Загружаемый файл формата a.out (современные версии Unix использу­ют более сложный формат загружаемого модуля и более сложную схему за­грузки. Она содержит:

- "магическое число" — признак того, что это именно загружаемый модуль,
а не что-то другое;

- число text_size — длину области кода программы (text);

- data_siz,e — длину области инициализированных данных программы (data);

- BSS_SIZE —длину области неинициализированных данных программы (BSS);

- стартовый адрес программы.

За заголовком следует содержимое областей TEXT и DATA. Затем может сле­довать отладочная информация. Она нужна символьным отладчикам, но самой программой не используется.

При загрузке система выделяет процессу TEXT_SIZE байтов виртуальной па­мяти, доступной для чтения/исполнения, и копирует туда содержимое сегмента text. Затем отсчитывается DATA_SIZE байтов памяти, доступной для чтения/ записи, и туда копируется содержимое сегмента data.



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

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

 



<== предыдущая лекция | следующая лекция ==>
Создание процессов в UNIX | Текст лекции


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.033 сек.