Идея состоит в разбиении программы на части равной величины, которые называются страницами (4-8кБ). Обычно кратны размеру сектора магнитного диска. Виртуальное и физическое адресные пространства также разбиваются на страницы. Страница ОП называется страничным фреймом. Странице присваивается номер. При обращении ЦП к какой либо ячейке, ЦП выставляет виртуальный адрес, который состоит из двух частей:
1. Номер страницы.
2. Смещение относительно начала страницы.
Т.к. смещение относительно начала в виртуальном и физическом адресе одинаковое, то преобразованию подвергается только номер страницы.
PF – Page Fault – сигнал страничного сбоя ® необходимая страница подгружается из внешней памяти в оперативную.
Преобразователь адресов – часть ОС. Обычно преобразование выполняется с помощью 2-х таблиц.
N вирт. стр. | N физ. Стр. | V | R | n | A | N вирт. стр. | N сектора | N дорожки | |
Страничная таблица Карта диска
Можно объединить
Число записей = числу виртуальных страниц.
|
|
V – признак присутствия: устанавливается в 1, если в данный момент времени виртуальная страница находится в ОП, в поле Номера физ.стр. – Номер стр. ОП. Если при обращении к данной виртуальной странице V=0, то формируется сигнал PF и ОС предпринимает необходимые действия для загрузки страницы в ОП.
R – признак использования страницы. Устанавливается в случае обращения к данной странице и используется аналогично алгоритму замещения КЭШ.
n – признак модификации, устанавливается в случае, если данная страница изменялась (как в КЭШ).
A – признак прав доступа – определяет, какие права доступа разрешены на данной странице.
Недостатки страничной реализации:
- Виртуальная память понимается как непрерывный массив со сквозной нумерацией слов. Однако программа состоит из нескольких частей (код, стек, информация) и заранее неизвестной длины этих частей ® удобнее своя нумерация слов для каждой части.
Сегментная реализация.
Выделение в виртуальном пространстве независимых линейных пространств непрерывной произвольной длины, которые называются сегментами для каждой части программы. Сегмент – это отдельная логическая единица. В каждом сегменте своя независимая нумерация. Всё виртуальное пространство разбивается на сегменты с независимой адресацией слов внутри сегмента. И для каждой составляющей программы выделяется свой сегмент.
Адрес – номер сегмента и смещение внутри сегмента. Используется не страничная, а сегментная таблица.
Недостаток: Сегменты различного размера ® фрагментизация из-за разного размера сегментов при их замещении.
|
|
Сегментно-страничная реализация.
Размер сегмента выбирается кратным размеру страницы.
Свопинг.
Основной отличие в том, что программа может перемещаться между ОП и диском целиком. Swap-файл, page-файл.
Основная память
Это единственный тип памяти, который может обращаться к процессору непосредственно.
· ОЗУ (RAM) - Random Access Memory, память компьютера с постоянно обновляемым при работе программ содержимым.
· ПЗУ (ROM) - read-only memory, энергонезависимая память, используется для хранения массива неизменяемых данных (например BIOS).
Основная память реализуется на нескольких микросхемах. Их объединение образует модуль памяти. Модули памяти объединяются в банк памяти для обеспечения требуемой ёмкости памяти.
2 типа памяти:
1. Статическая (не требует регенерации, на триггерах) – КЭШи.
2. Динамическая (конденсатор + запирающий транзистор, требуется регенерация ® меньше быстродействие) – ОЗУ.
Ёмкости быстро теряют заряд, поэтому информацию приходится обновлять через определённые промежутки времени во избежание потерь данных. Этот процесс называется регенерацией памяти.
Достоверность памяти – обеспечение надёжности памяти. (в первых моделях использовался механизм проверки на чётность, т.е. был бит паритета – вместо 8-ми микросхем – 9).
Отказ ячейки памяти – потеря работоспособности, требуется замена элемента памяти.