Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Отображение адресного пространства программы на основную память



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

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

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

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

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

Рис.4.2. Загрузка программы в реальную память (объем реальной памяти больше адресного пространства программы )

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

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

Рис.4.3. Загрузка программы в реальную память (объем реальной памяти меньше адресного пространства программы )

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

Реальная память  
ОС
20Кбайт
Программа А 0Кбайт Программа D 50Кбайт
10Кбайг  
Программа В
20Кбайт
Программа С

Рис. 4.4. Фрагментация реальной памяти

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

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

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

Рис.4.5. Размещение программы в свободной части ОП

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

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

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

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

 

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.