Спонсор: Microsoft
Опубликован: 13.11.2010 | Уровень: для всех | Доступ: платный | ВУЗ: Санкт-Петербургский государственный университет
Лекция 15:

Управление памятью

< Лекция 14 || Лекция 15: 123 || Лекция 16 >

Краткие итоги

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

Связывание команд и данных с адресами в памяти может выполняться во время компиляции, во время загрузки или во время выполнения.

Пользовательская программа проходит следующие фазы обработки: из исходного кода – компиляция в объектный модуль, затем – генерация из нескольких объектных модулей загрузочного модуля (редактором связей); генерация из загрузочного модуля и библиотек загрузчиком двоичного образа программы в памяти (линковка).

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

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

Динамическая загрузказагрузка вызываемой подпрограммы в память при первом ее вызове, при исполнении пользовательской программы. Динамическая линковка – линковка во время выполнения программы. Библиотеки подразделяются на статически и динамически линкуемые. Для динамической линковки в бинарном коде хранится заглушка, которая вызывает ОС для поиска и загрузки динамически линкуемой библиотеки, с последующей заменой кода заглушки на код обращения к библиотеке.

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

Набор для практики

Вопросы

  1. В чем заключается задача управления памятью?
  2. Что такое входная очередь заданий?
  3. Что такое связывание адресов и на каких этапах обработки программы оно может выполняться?
  4. Какие этапы обработки проходит программа на пути от исходного кода к двоичному образу в памяти?
  5. Что такое компиляция?
  6. Что такое редактирование связей?
  7. Что такое загрузка?
  8. Что такое линковка?
  9. Что такое объектный модуль?
  10. Что такое таблица символов?
  11. Что такое загрузочный модуль?
  12. Что такое библиотека?
  13. Что такое бинарный образ программы в памяти?
  14. Что такое редактор связей?
  15. Что такое загрузчик?
  16. Что такое ассемблер?
  17. Что такое логический адрес и какой компонентой системы он генерируется?
  18. Что такое физический адрес и какой компонентой системы он генерируется?
  19. Что такое устройство управления памятью?
  20. Что такое регистр перемещения?
  21. Что такое перемещаемый код?
  22. Что такое динамическая загрузка?
  23. Что такое динамическая линковка?
  24. Что такое статически линкуемая библиотека?
  25. Что такое динамически линкуемая библиотека?
  26. Что такое оверлейная структура программы?
  27. Что такое драйвер оверлея?

Упражнения

  1. Проанализируйте структуру бинарного кода для используемого Вами компьютера и классифицируйте используемую схему адресации (связывание во время компиляции, во время загрузки или во время выполнения).
  2. Разработайте и выполните в системах UNIX (Linux) и Windows последовательность команд, реализующую на командном языке последовательность фаз обработки программы от исходного кода до двоичного образа исполняемого кода в памяти.
  3. Используйте статически и динамически линкуемые библиотеки в коде Вашей программы и проанализируйте ассемблерный (бинарный) код обращения к ним в коде Вашей программы.
  4. Организуйте с помощью используемой вами системы программирования и интегрированной среды программу с оверлейной структурой.

Темы для курсовых работ, рефератов, эссе

  1. Методы управления памятью в операционных системах (реферат).
  2. Методы адресации в компьютерных системах (реферат).
  3. Этапы обработки программы от исходного кода к исполняемому в операционных системах (реферат).
  4. Физическая и логическая адресация в компьютерных системах (реферат).
  5. Организация оверлейной структуры программ (реферат).
< Лекция 14 || Лекция 15: 123 || Лекция 16 >
Василий Четвертаков
Василий Четвертаков
Владислав Нагорный
Владислав Нагорный

Подскажите, пожалуйста, планируете ли вы возобновление программ высшего образования? Если да, есть ли какие-то примерные сроки?

Спасибо!

Константин Леденев
Константин Леденев
Россия
Олег Равков
Олег Равков
Россия