Разделы

Авто
Бизнес
Болезни
Дом
Защита
Здоровье
Интернет
Компьютеры
Медицина
Науки
Обучение
Общество
Питание
Политика
Производство
Промышленность
Спорт
Техника
Экономика

Связывание программ и данных с адресами в памяти

Основные положения размещения процессов в памяти

Введение

Лекция: Управление памятью

В лекции рассмотрены следующие вопросы: принципы управления памятью; устройство управления памятью; логическое и физическое адресные пространства; динамическая линковка; оверлейная структура программы.

Содержание

  • Введение
  • Основные положения размещения процессов в памяти
  • Связывание программ и данных с адресами в памяти
  • Многоэтапная обработка пользовательской программы
  • Логическое и физическое адресное пространство
  • Устройство управления памятью
  • Динамическая загрузка и динамическая линковка
  • Оверлейная структура программы
  • Ключевые термины
  • Краткие итоги
  • Набор для практики
    • Вопросы
    • Упражнения
    • Темы для курсовых работ, рефератов, эссе

Управление памятью, наряду с управлением процессами и ресурсами, - одна из наиболее важных функций операционной системы. Задача ОС заключается в том, чтобы размещать в памяти пользовательские процессы, их данные, обслуживать запросы процессов на области памяти заданных размеров. В данной лекции рассмотрены базовые понятия и механизмы, связанные с управлением памятью, в частности, этапы загрузки программ в память и их связывание с адресами в памяти. Две основные стратегии управления памятью – страничная организация и сегментная организация – рассмотрены в следующих двух лекциях "Страничная организация памяти" и "Сегментная организация памяти".

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

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

  • Связывание во время компиляции (compile-time).Если адрес в памяти априорно известен, компилятором может быть сгенерирован код с абсолютными адресами. При любом изменении размещения программы в памяти должна быть выполнена перекомпиляция. Данный подход более характерен для ранних компьютерных систем с небольшим объемом памяти, либо для обработки и выполнения системных модулей – частей ядра ОС, для которых характерно использование резидентных абсолютных адресов. Для пользовательских программ такой подход неудобен, так как не обеспечивает достаточной гибкости, в частности, возможности без изменений перезагрузить код в другую область памяти.
  • Связывание во время загрузки (load-time).Загрузка программы в память – стадия ее обработки системой, предшествующая выполнению программы. Чтобы начальный адрес области памяти, куда загружается программа, можно было менять, и это не привело бы к необходимости изменения кода программы, применяется следующий метод. Генерируется перемещаемый код (relocatable code)– код, в котором адресация происходит относительно значения регистра перемещения (relocation register),и адрес в памяти равен сумме значения регистра перемещения и адреса, вычисляемого в команде. Таким образом, при необходимости загрузки кода на другое место в памяти требуется изменить только значение регистра перемещения. Подобный подход широко используется для программ, написанных на традиционных языках программирования.
  • Связывание во время исполнения (runtime),или динамическое (позднее) связывание.Используется, если процесс во время выполнения может быть перемещен из одного сегмента памяти в другой. Для реализации связывания во время исполнения требуется аппаратная поддержка отображения адресов – например, регистры базы и границы. В большинстве систем для пользовательских программ используется, главным образом, именно связывание во время исполнения.

Дата публикации:2014-01-23

Просмотров:389

Вернуться в оглавление:

Комментария пока нет...


Имя* (по-русски):
Почта* (e-mail):Не публикуется
Ответить (до 1000 символов):







 

2012-2018 lekcion.ru. За поставленную ссылку спасибо.