|
|
||||||||
|
Этот механизм называется «Свонинг» (SWAP) и делится на 2 этапа:
1. SWAP IN – загрузка в ОП процесса. Характеризуется выделением какого-либо участка ОП и резервированием его таким образом, чтобы другие процессы не нарушали целостности.
2. SWAP OUT – выгрузка из ОП какого-либо процесса (программы) и освобождение памяти под другие процессы.
Проблемы:
1) процессы могут быть независимыми и необходимо, чтобы при загрузки 2-х программ участки памяти не пересекались. Должен быть предусмотрен механизм, предотвращающий попадание начального адреса в область ОС.
2) процессы взаимосвязаны. Как только процесс загрузился, он может инициировать загрузку другого процесса ( здесь также необходимо, чтобы участки памяти не пересекались).
|
Когда загрузка процесса завершена и начался SWAP OUT, память должна освободится не только от основного процесса, но и от тех, загрузку которых этот процесс инициировал.
Фрагментация памяти – это явление, которое возникает при загрузке и удалении процессов, и может привести к тому, что при сильной фрагментации памяти не останется достаточно большого участка, чтобы загрузить очередной процесс.
.dll (dynamic linking library) – динамическаябиблиотека. Она всегда остается в ОП, т.к. постоянно используется разными программами.
Пр. Пусть создали exe-файл на 20 кб, но т.к. он написан на Visual Basic, он потребует WIVSVB60.dll, который "тянет" на 1.6 Мб. При запуске 2-ой такой задачи, достаточно загрузить одну только задачу, т.к. библиотека уже там есть. При завершении работы задач библиотека не исчезает, проблема в том, что остаются "дырки" в памяти.
Использует однопрограммный режим, когда с диска загружается одна программа.
Программы обычно имеют древовидную структуру:
Если мы скомпоновали программу, скомпилировали ее, то в main лежат все подпрограммы, функции и т.д.
Оверлейные структуры управления памятью
Смысл: одновременно не могут выполняться несколько подпрограмм (модулей) в одной программе, поэтому строится специальная структура загрузки этих модулей – оверлейная(перекрывающая структура).
Поначалу адресом конца программы будет максимальная точка.
|
В ОП загружается М1(main), но участок памяти выделяется под maximum(М2). Если требуется загрузить М3, то М2 удаляется и загружается М3(который меньше, чем М2). При этом оставшийся в памяти "кусок" от М2 сохраняется.
Достоинство: при построении оверлейных структур, мы экономим память за счет того, что все модели сразу в ОП - и не оказываются и появляются там в процессе выполнения (например, вызов программы или функции).
Недостаток: 1. требуется специальные методы для организации передачи данных между модулями.
2.при загрузке оверлейных модулей требуется время для работы с диском, что увеличивает время счета программ.
При загрузке, самая большая проблема – это защита памяти от других процессов или программ.
Альтернативный метод, аналогичный оверлейным структурам.
Он состоит в выделении динамической памяти только тогда, когда она нужна, и в освобождении (уничтожении) ее после использования.
Лекция №8
(продолжение)
Проблема загрузки ОП – команды, которые влияют на процессы загрузки памяти.
Этапы составления выполняемых команд:
1. написание текста (C, Pascal, Assembler)
2.
|
Ассемблер содержат операторы перехода jump
Любую программу можно создать в любом из типов этой модели.
Характеристики:
|
small
|
large
huge
1) исполняемая часть малая, данных много
2) исполняемая часть большая, но мало данных
3) и данных много, и исполняемая часть большая (huge-вариант)
Как только программирует на языке Ассемблер используется jump (метка)
Существуют различные варианты jump:
- короткие ()
- средние ()
- длинные ()
move <операнд 1>,<операнд 2>
адрес 1 адрес 2
откуда берется куда кладется
3.сборка программы. Получаем .exe или .com – модуль. Все операции лежат в .Lib.
4.загрузка. Модуль становится готовым к загрузке процессом.
В самом простом случае, если у нас грузится модуль .com, то проблема – необходимо пересчитать абсолютные адреса, используемые в .exe – модуле, в относительные адреса, используемые в ОП при выполнении программы.
Смещение относительно начала блока данных и точки входа в программу, т.е. первой выполняемой инструкции.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.