пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Особенности управления основной памятью ЭВМ

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

Выделение ресурсов может быть осуществлено самим программистом (особенно если он работает на языке, близком машинному), но может производиться и операционной системой.

Если выделение ресурсов производится перед выполнением программы, такой процесс называется статическим перемещением, в результате которого программа «привязывается» к определенному месту в памяти вычислительной машины. Если же ресурсы выделяются в процессе выполнения программы, это называется динамическим перемещением, в этом случае программа не привязана к определенному месту в реальной памяти. Динамический режим можно реализовать только с помощью операционной системы.

Статическое перемещение.

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

При статическом перемещении может встретиться два случая.

1.            Реальная память больше требуемого адресного пространства программы.

В этом случае загрузка программы в реальную память производится начиная с нулевого адреса.

Загружаемая программа А является абсолютной программой, так как никакого изменения адресов в адресном пространстве, подготовленном компилятором, при загрузке в основную память не происходит - программа располагается с нулевого адреса реальной памяти.

2.            Реальная память меньше требуемого адресного пространства программы.

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

В некоторых операционных системах адреса откомпилированной (с 0-го адреса) программы могут быть преобразованы в адреса реальной памяти, отличные от 0-го. При этом создается абсолютный модуль, который требует размещения его в памяти всегда с одного и того же адреса.

Тогда при мультипрограммном режиме, если имеем программы А, В и С, для которых известно, что программа А выполняется при размещении в памяти с адреса 60 Кбайт до 90 Кбайт, В - с 60 Кбайт до 90 Кбайт, С - с 50 Кбайт до 120 Кбайт, организовать их совместное выполнение невозможно, так как им необходим один и тот же участок реальной памяти. Эти программы будут ждать друг друга либо их нужно заново редактировать с другого адреса.

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

Динамическое перемещение.

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

В системах с динамическим перемещением программ перемещающий загрузчик размещает программу в свободной части памяти и допускает использование несмежных ее участков. В этом случае имеется больше возможностей для организации мультипрограммной работы, а следовательно и для более эффективного использования временных ресурсов ЭВМ.

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

В настоящее время разработано несколько способов решения: для борьбы с фрагментацией основной памяти адресное пространство программы может быть разбито на отдельные сегменты, слабо связанные между собой. Тогда программа, имеющая длину, превышающую размеры свободных участков памяти, может быть представлена в виде ряда сегментов, загружаемых в различные области ОП. Это позволяет использовать реальную память, теряемую из-за фрагментации.

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

Каждая строка таблицы сегментов содержит адрес начала сегмента в реальной памяти. Для каждого сегмента имеется одна строка таблицы.

Таблицу сегментов содержит каждая выполняемая программа.

В дополнение к таблице сегментов для динамической трансляции адреса используется специальный управляющий регистр, называемый регистром начала таблицы сегментов (РНТС, или STOR (Segment Table Origin Register)). В этот регистр занесен адрес таблицы сегментов выполняемой в данный момент программы. В МП Pentium в качестве РНТС используются 3 регистра: GDTR, LDTR и IDTR.

Использованием сегментации программ достигается уменьшение фрагментации основной памяти, но полностью фрагментация не устраняется - остаются фрагменты, длина которых меньше длины сегментов программы.

Если сегменты разделить на одну или несколько единиц, называемых страницами, которые имеют фиксированный размер, то поскольку размер страницы достаточно мал по сравнению с обычным размером сегментов, неиспользуемые фрагменты ОП значительно сокращаются в объеме - будет иметь место так называемая фрагментация внутри страниц. Следовательно, потери все-таки останутся, но они будут существенно меньше. Такая организация использования ресурсов называется сегментно-страничной.

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


02.12.2014; 19:30
хиты: 78
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь