.:Методы увеличения адресного пространства:.
Метод окна.
Идея метода состоит в отображении на большом отрезке лишь части «малоrо» отрезка, эта часть соответствует свободным адресам микроЭВМ и называется окном
(рис. Метод окна.jpg), Схемное решение приведено на этом же рисунке. Емкость rлавиой памяти V=2^(d+g) ячеек. Если, например, d = 8, g = 12, то V =2^20 = 1М
ячеек. Главную память можно рассматривать как состоящую из 2^d страниц, каждая из которых имеет размер 2^g ячеек, совпадающий с размером окна,
Таким образом, можно считать, что 2^d - число проекций окна, которые, примыкая вплотную дpyг к другу, заполняют собой всю «ось» rлавной памяти.
Существенно, что адресная шина расщепляется на две части: одна поступает в главную память, а друrая "поглощается" дешифратором. Система работает
следующим образом:
1. Процессор загружает в проrраммно-доступный реrистр старших разрядов адреса с шины данных, задавая положение проекции окна в адресном пространстве
главной памяти.
2. Процессор обращается по некоторому адресу, лежащему внутри окна.
3. Дешифратор опознает принадлежность текущеrо адреса фиксироваванному окну и разрешает передачу в главную память сигнала сопровождения адреса MSYN.
В главную память выдается полный адрес (d+g бит), определяющий одну из ее ячеек. При этом 16 - g разрядов адреса поглощаются дешифратором.
4. Выбранная ячейка rлавной памяти выдает или приннмает информацию в зависимости от сиrнала на линии управления режимом работы и посылает снгнал по
линии передачи ответа.

Поскольку окно выбрано в зоне неиспользуемых адресов внутpeннeгo адресного пространства микроЭВМ, то конфликты, связанные с одновременным выбором двух
адресуемых элементов (внутри и вне микроЭВМ), исключаются.

Метод базовых реrистров.
Базовые реrистры - это реrистры старших разрядов, Метод базовых реrистров является обобщением метода окна. В адресном пространстве выделяется не одно,
а несколько окон. При каждом обращении в главную память, используется лишь одно окно. Проекции окон на «ось» rлавной памяти могут лежать в произвольных
местах этой оси (с дискретом,равным размеру окна) и, в частности, мoгут совпадать. Положение окон в адресном пространстве задается жестко - с помощью де-
шифратора. Уrлы наклона лучей задаются содержимым базовых реrистров(положение окна в основной памяти). Размеры окон для простоты будем считать одина-
ковым. Принцип формирования адресов главной памяти тот же, что и по методу окна.

Метод базовых реrистров позволяет переносить в адресное пространство одновременно нескопько различных страниц главной памяти, например одну страницу из
области проrрамм и две страницы из области данных. Схемная реализация метода базовых реrистров близка к реализации метода окна и показана на
рис. Метод базовых регистров.jpg. Процессор sаrружает в базовые реrистры с шины данных исходную информацию, определяющую yглы наклона лучей
из каждоrо окна. При обращении в rлавную память через одно из m окон дешифратор формирует сигнал выдачи старших разрядов с соответствующеrо базовоrо
perиcтpa через мультиплексор.

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

В процессе работы такой системы процессор микроЭВМ через програмно-доступный регистр открывает нужный банк использует информацию, которая в нем
содержится. Остальиые банки лоrически отключены от маrистрали. В данном методе существенно то,что микроЭВМ может вообще не содержать собственной
оперативной или постоянной памяти. Она может вставлять в свое адресное пространство емкостью, например, 64К банки емкостью 56 К, оставляя последние 8К
ячеек для собственных нужд, в частности для адресации показанноrо на рис. реrистра. Такая подстановка окaзывается удобной для быстроrо переключеиия
микроЭВМ с решения одной задачи на решение друrой. Каждой задаче в этом случае можеr соответствовать свой баик. При этом, однако, в каждом банке
должны храниться одни и те же резидентные проrраммы операционноЙ системы, что снижает эффективность использования памяти в целом.

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

При включении напряжения питания peгистpы устанавливается в исходное состояние, соответствующее подключению к микроЭВМ едннственноrо (вполне
определепноrо) банка. Реrистр может содержать дополнительные разряды, которые уточняют правила работы с каждым банком: доступен ли банк по записи или/и
по чтению, включить или выключить ero схемы контроля и т. д.

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

В настоящее время эта технология имеет аппаратную поддержку на всех современных процессорах.

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

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

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

Страничная организация виртуальной памяти
В большинстве современных операционных систем виртуальная память организуется с помощью страничной адресации. Оперативная память делится на страницы:
области памяти фиксированной длины (например, 4096 байт), которые являются минимальной единицей выделяемой памяти (то есть даже запрос на 1 байт от
приложения приведёт к выделению ему страницы памяти). Процесс обращается к памяти с помощью адреса виртуальной памяти, который содержит в себе номер
страницы и смещение внутри страницы. Операционная система преобразует виртуальный адрес в физический, при необходимости подгружая страницу с жёсткого
диска в оперативную память. При запросе на выделение памяти операционная система может «сбросить» на жёсткий диск страницы, к которым давно не было
обращений. Критические данные (например, код запущенных и работающих программ, код и память ядра системы) обычно находятся в оперативной памяти (
исключения существуют, однако они не касаются той части, которая отвечает за использование файла подкачки). Для контроля наличия страницы в памяти
вводится специальный бит присутствия, входящий в состав атрибутов страницы в таблице страниц.

В семействе операционных систем Microsoft Windows место для хранения страниц на жёстких дисках должно быть выделено заранее. Пользователь может
положиться на автоматический механизм или самостоятельно указать размер области виртуальной памяти на каждом из разделов диска. На указанных разделах
операционной системой создаётся файл pagefile.sys требуемого размера, который и хранит «сброшенные» из оперативной памяти страницы.

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

Алгоритмы определения устаревших страниц
При выделении места для новой страницы бывает необходимо удалить какую-либо страницу, в данный момент находящуюся в памяти. Правила замещения страниц
служат для принятия решения о том, какую именно страницу следует удалить из памяти. Идеальным кандидатом является «мёртвая» страница, которая больше не
потребуется кому-либо (например, относится к завершённому процессу). Если же таких страниц нет в памяти (или их количества недостаточно), используется
правило локального или глобального замещения страниц:
* Правило локального замещения выделяет каждому процессу или группе взаимосвязанных процессов определённое количество страниц. Если процессу нужна
новая страница, он должен заменить одну из собственных.
* Правило глобального замещения страниц позволяет брать страницы любого процесса, используя глобальные критерии выбора. Для реализации данного
подхода необходимо выбрать критерий, по которому будет приниматься решение о страницах, хранимых в памяти.
Наиболее часто используемые критерии поиска:
* Less Recently Used. Удаляются те страницы, доступ к которым производился наиболее давно. Считается, что в последующем к таким страницам будет
происходить минимум обращений.
* Last Recently Used. Удаляются недавно освободившиеся страницы. Подразумеваются страницы только что завершившихся процессов.

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



<------ Назад

 

Hosted by uCoz