Адресная структура команд и планирование ресурсов
Адресная структура команд и планирование ресурсов.
Адреса в каждом сегменте начинаются с 0. При статическом перемещении программы в процессе загрузки ее в основную память адреса должны быть привязаны к конкретному месту в памяти, на что уходит много времени и отвлекаются вычислительные ресурсы. Более эффективной является динамическая трансляция адресов (ДТА), которая заключается в том, что сегменты загружаются в основную память без трансляции адресного пространства (т.е. без изменения адресов в программе с учетом физического размещения в памяти команд и данных), а трансляция адресов каждой команды производится в процессе ее выполнения. Этот тип трансляции называется динамическим перемещением и осуществляется специальными аппаратными средствами ДТА.
Каждый сегмент программы должен иметь свое имя. Форма имени сегмента может быть любой. При таком представлении адрес будет состоять из двух частей: s, i, где s — имя сегмента, / — адрес внутри сегмента.
Если ЭВМ имеет 32-битовую адресную структуру, максимальная длина адреса в единственном сегменте будет 32 разряда.
Структура адресов накладывает два важных ограничения:
• ограничивается максимальное число сегментов, которое может существовать в адресном пространстве программы;
• ограничивается максимальное смещение любого адреса в сегменте.
Для динамической трансляции адресов (т.е. при определении абсолютных адресов по известным относительным, содержащим номер сегмента и смещение) операционная система строит специальные таблицы, устанавливающие соответствие между сегментируемым адресным пространством программы и действительными адресами сегментов в реальной памяти (рис. 4.8).
Рекомендуемые материалы
Каждая строка таблицы сегментов содержит адрес начала сегмента в реальной памяти. Для каждого сегмента имеется одна строка таблицы.
Таблицу сегментов содержит каждая выполняемая программа.
Ещё посмотрите лекцию "5 - Гребное устройство" по этой теме.
Если сегменты разделить на одну или несколько единиц, называемых страницами, которые имеют фиксированный размер, то, поскольку размер страницы достаточно мал по сравнению с обычным размером сегментов, неиспользуемые фрагменты ОП значительно сокращаются в объеме — будет иметь место так называемая фрагментация внутри страниц. Следовательно, потери все-таки останутся, но они будут существенно меньше.
Сегментно-страничная организация добавляет еще один уровень в структуре адресного пространства программы. Теперь адресное пространство программы дробится на сегменты, внутри сегментов — на страницы, а внутри страниц — на адреса байтов. Структура адреса: (S, Р, i) — рис. 4.10, где S — имя сегмента внутри адресного пространства программы; Р — имя внутри страницы; i — адрес внутри страницы.
Рис. 4.10. Адресная структура при сегментно-страничной организации памяти
Формирование сегментно-страничной структуры выполняется автоматически с помощью операционной системы.
Все преимущества динамического перемещения с использованием сегментации и страничной организации достигаются благодаря аппаратуре и программному обеспечению, а не пользователям системы. Специальные программы во время загрузки разбивают адресное пространство программы на сегменты и страницы, строят таблицы сегментов и страниц. Средства ДТА автоматически транслируют адрес в процессе выполнения программы.