Классификация методов распределения памяти

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

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид реферат
Язык русский
Дата добавления 06.10.2010
Размер файла 103,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

КЛАССИФИКАЦИЯ МЕТОДОВ РАСПРЕДЕЛЕНИЯ ПАМЯТИ

Введение

Следует ли назначать каждому процессу одну непрерывную область физической памяти или можно выделять память "кусками"? Должны ли сегменты программы, загруженные в намять, находиться на одном месте в течение всего периода выполнения процесса пли можно ее время от времени сдвигать? Что делать, если сегменты программы не помещаются в имеющуюся память? Разные ОС по-разному отвечают на эти и другие базовые вопросы управления памятью.

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

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

1. РАСПРЕДЕЛЕНИЕ ПАМЯТИ ФИКСИРОВАННЫМИ РАЗДЕЛАМИ

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

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

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

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

2. РАСПРЕДЕЛЕНИЕ ПАМЯТИ ДИНАМИЧЕСКИМИ РАЗДЕЛАМИ

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

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

На рис.3 показано состояние памяти в различные моменты времени при использовании динамического распределения. Так, в момент T1 в памяти находится только ОС, а к моменту T3 память разделена между 4 процессами.

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

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

3. РАСПРЕДЕЛЕНИЕ ПАМЯТИ ПЕРЕМЕЩАЕМЫМИ РАЗДЕЛАМИ

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

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

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

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

4. ВИРТУАЛЬНАЯ ПАМЯТЬ

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

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

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

Компонент исполнительной системы Windows, отвечающий за виртуальную память называется диспетчером виртуальной памяти (Virtual Memory Manager) - это базовая система управления памятью в Windows.

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

? символьные имена присваивает пользователь при написании программы на алгоритмическом языке или ассемблере.

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

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

Совокупность виртуальных адресов процесса называется виртуальным адресным пространством. Диапазон возможных адресов виртуального пространства у всех процессов является одним и тем же. Например, при использовании 32-разрядных виртуальных адресов этот диапазон задается границами 000000016 и FFFFFFFF16. Тем не менее каждый процесс имеет собственное виртуальное адресное пространство - транслятор присваивает виртуальные адреса переменных и кодам каждой программе независимо (рис.6).

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

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

В одних ОС виртуальное адресное пространство процесса подобно физической памяти представлено в виде непрерывной линейной последовательности виртуальных адресов. Такую структуру адресного пространства принято называть плоской (flat). При этом виртуальным адресом является единственное число, представляющее собой смещение относительно начала (обычно это значение 000…000) виртуального адресного пространства (рис. 7,а). Адрес такого типа называют линейным виртуальным адресом.

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

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

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

1. Свопинг (swapping) - образы процессов выгружаются на диск и возвращаются и оперативную память целиком.

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

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

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

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

- Сегментная виртуальная память предусматривает перемещение данных сегментами -- частями виртуального адресного пространства произвольного размера, полученными с учетом смыслового значения данных.

- Сегментно-страничная виртуальная память использует двухуровневое деление: виртуальное адресное пространство делится на сегменты, а затем сегменты делятся на страницы. Единицей перемещения данных здесь является страница. Этот способ управления памятью объединяет в себе элементы обоих предыдущих подходов.

5. СТРАНИЧНОЕ РАСПРЕДЕЛЕНИЕ ПАМЯТИ

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

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

Размер страницы выбирается равным степеням двойки: 1 Кбайт, 4 Кбайт, 8 Кбайт или 16 Кбайт. Это позволяет упростить механизм преобразования адресов.

При создании процесса ОС загружает в оперативную память несколько его виртуальных страниц:

? начальные страницы кодового сегмента;

? начальные страницы сегмента данных.

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

Запись таблицы, называемая дескриптором страницы, включает следующую информацию (рис.9):

- номер физической страницы, в которую загружена данная виртуальная страница;

- признак присутствия, устанавливаемый в единицу, если виртуальная страница находится в оперативной памяти;

- признак изменения страницы, который устанавливается в единицу всякий раз, когда производится запись по адресу, относящемуся к данной странице;

- признак обращения к странице, который устанавливается в единицу при каждом обращении по адресу, относящемуся к данной странице. Если не было обращений к странице, то это лучший кандидат на освобождение из памяти;

- признак защиты - виды доступа, например, чтение/запись.

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

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

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

Отсюда следует простая схема преобразования виртуального адреса в физический (рис.10).

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

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

Итак, пусть произошло обращение к памяти по некоторому виртуальному адресу. Аппаратными схемами процессора выполняются следующие действия:

1. Из специального регистра процессора извлекается адрес AT таблицы страниц активного процесса. На основании начального адреса таблицы страниц, номера виртуальной страницы р (старшие разряды виртуального адреса) и длины отдельной записи в таблице страниц L (системная константа) определяется адрес нужного дескриптора в таблице страниц:

a = AT + (p * L).

2. Из этого дескриптора извлекается номер соответствующей физической страницы - n.

3. К номеру физической страницы присоединяется смещение s (младшие разряды виртуального адреса).

Использование в пункте (3) того факта, что размер страницы равен степени 2, позволяет применить операцию конкатенации (присоединения) вместо более длительной операции сложения, что уменьшает время получения физического адреса, а значит повышает производительность компьютера.

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

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

Типичный размер страницы наиболее распространенных процессоров Pentium фирмы Intel составляет 4 Кбайт. Учитывая, что в современных процессорах максимальный объем виртуального адресного пространства процесса, как правило, не меньше 4 Гбайт (232 байт), то при размере страницы 4 Кбайт и длине записи 4 байта (32 бита) для хранения таблицы страниц может потребоваться 4 Мбайт памяти. Выходом в такой ситуации является хранение в памяти только той части таблицы страниц, которая активно используется в данный период времени - так как сама таблица страниц хранится в таких же страницах физической памяти, что и описываемые ею страницы, то принципиально возможно временно вытеснять часть таблиц страниц из оперативной памяти.

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

Если размер страницы (2k) и количество страниц в каталоге (2n) выбрать равным степени двойки, то принадлежность виртуального адреса к разделу, а также смещение внутри страницы можно определить просто:

- младшие k разрядов дают смещение (s);

- следующие n разрядов представляют собой номер виртуальной страницы;

- оставшиеся m разрядов содержат номер раздела.

Для каждого раздела строится своя собственная таблица страниц. Так в процессоре Pentium при размере страницы в 4 Кбайта и длине дескриптора страниц в 4 байта, максимальное число записей в таблице страниц будет 1024.

Каждая таблица страниц описывается дескриптором, структура которого полностью совпадает со структурой дескриптора обычной страницы. Эти дескрипторы сведены в таблицу разделов, называемую также каталогом страниц. Физический адрес таблицы разделов активного процесса содержится в специальном регистре процессора и поэтому всегда известен операционной системе.

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

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

1. Путем отбрасывания k + n младших разрядов в виртуальном адресе определяется номер раздела, к которому принадлежит данный виртуальный адрес.

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

3. Далее из это таблицы извлекается дескриптор виртуальной страницы, номер которой содержится в средних n разрядах преобразуемого виртуального адреса. Снова выполняется проверка наличия данной страницы в памяти и при необходимости ее загрузка.

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

6. СЕГМЕНТНОЕ РАСПРЕДЕЛЕНИЕ ПАМЯТИ

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

Кроме того, разбиение программы на "осмысленные" части делает принципиально возможным разделение одного сегмента несколькими процессами. Например, если два процесса используют одну и ту же математическую подпрограмму, то в оперативную память может быть загружена только одна копия этой подпрограммы (рис.12).

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

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

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

? базовый физический адрес сегмента в оперативной памяти,

? размер сегмента,

? правила доступа,

? признак изменения, признак обращения к данному сегменту за последний интервал времени и др.

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

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

Виртуальный адрес при сегментной организации памяти может быть представлен парой (g, s), где g - номер сегмента, а s - смещение в сегменте. Физический адрес получается путем сложения начального физического адреса сегмента, найденного в таблице сегментов по номеру g, и смещения s (рис.13).

Недостатком данного метода распределения памяти является фрагментация на уровне сегментов и более медленное по сравнению со страничной организацией преобразование адреса.

7. СЕГМЕНТНО-СТРАНИЧНОЕ РАСПРЕДЕЛЕНИЕ ПАМЯТИ

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

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

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

В большинстве современных реализаций сегментно-страничной организации памяти в отличие от набора виртуальных диапазонов адресов при сегментной организации памяти (рис.14, а) все виртуальные сегменты образуют одно непрерывное линейное виртуальное адресное пространство (рис.14, б).

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

Во-первых, линейным виртуальным адресом, который равен сдвигу данного байта относительно границы чего линейного виртуального пространства.

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

Первый способ сегментно-страничного распределения памяти.

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

Отличие. В поле базового адреса указывается не начальный физический адрес сегмента, отведенный ему в результате загрузки в оперативную память, а начальный линейный виртуальный адрес сегмента н пространстве виртуальных адресов (на рис.14 базовые физические адреса обозначены S1, S2, S3, а базовые виртуальные адреса -- f1, f2, f3).

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

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

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

Преобразование виртуального адреса в физический происходит в два этапа (рис. 15):

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

2. На втором этапе работает страничный механизм. Полученный линейный виртуальный адрес преобразуется в искомый физический адрес. В результате преобразования линейный виртуальный адрес представляется в том виде, в котором он используется при страничной организации памяти, а именно в виде пары (номер страницы, смещение в странице). Благодаря тому, что размер страницы выбран равным степени двойки, эта задача решается простым отделением некоторого количества младших двоичных разрядов. При этом в старших разрядах содержится номер виртуальной страницы, а в младших -- смещение искомого элемента относительно начала страницы. Так, если размер страницы равен 2k, то смещением является содержимое младших k разрядов, а остальные, старшие разряды содержат номер виртуальной страницы, которой принадлежит искомый адрес.

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

Второй способ сегментно-страничного распределения памяти.

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

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

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

Таким образом схема преобразования виртуального адреса в физический для данного способа будет таким (рис.16).

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

По номеру виртуальной страницы, заданному в виртуальном адресе, из таблицы страниц извлекается дескриптор, в котором указан номер физической страницы.

К номеру физической страницы пристыковывается младшая часть виртуального адреса -- смещение.


Подобные документы

  • Коды без памяти - простейшие коды, на основе которых выполняется сжатие данных. Статистическое кодирование с использованием префиксных множеств. Статистический анализ кодируемых данных. Недостатки кодов Хаффмена. Блочные коды и коды с конечной памятью.

    реферат [26,1 K], добавлен 11.02.2009

  • Выбор типа микросхем памяти и расчет их количества в модулях. Выбор дешифратора адреса. Распределение адресного пространства. Распределение модулей программ. Расчет нагрузочной способности модуля памяти. Генератор тактовых импульсов микропроцессора.

    дипломная работа [1,7 M], добавлен 08.01.2017

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

    контрольная работа [1,3 M], добавлен 07.07.2013

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

    лабораторная работа [65,6 K], добавлен 08.11.2011

  • Выполнение элементов динамической памяти для персональных компьютеров в виде микросхем. Матричная структура микросхем памяти на модуле. DIP - микросхема с двумя рядами контактов по обе стороны корпуса. Специальные обозначения на корпусе модуля памяти.

    презентация [954,7 K], добавлен 29.11.2014

  • Характеристика проектирования устройства вычислительной техники. Расчёт количества микросхем памяти, распределение адресного пространства, построение структурной и принципиальной электрической схемы управления оперативного запоминающего устройства.

    контрольная работа [848,1 K], добавлен 23.11.2010

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

    доклад [900,0 K], добавлен 12.03.2015

  • Понятие о микропроцессорах и микроконтроллерах. Блок управления и его функции. Структура разряда порта микроконтроллера. Структура внутренней памяти данных. Работа с внешней памятью данных и подключение внешней памяти. Принцип работы и настройка таймера.

    презентация [665,8 K], добавлен 06.02.2012

  • Компоненты компьютера. Анализ операций доступа к объекту сети передачи данных с целью обеспечения информационной безопасности сети. Характеристики оперативной памяти компьютера. Внешняя дисковая память компьютера. Прозрачность и управляемость сети.

    контрольная работа [255,9 K], добавлен 25.03.2009

  • Этапы разработки компонентов инфраструктуры сервисного обслуживания кристалла памяти ГАС. Общие представления системы на кристалле. Характеристика номенклатуры выпускаемой памяти на кристалле. Принципы создания сервисного обслуживания систем на кристалле.

    дипломная работа [2,3 M], добавлен 06.06.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.