Организация и управление оперативной памятью

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

Используемые в операционных системах алгоритмы распределения ОП многообразны. Причинами этого многообразия являются:

· многоуровневая структура памяти (регистровая, оперативная, внешняя)

· стремление обеспечить пользователя характеристиками, отличными от реальных (виртуальная память)

· необходимость согласования распределения ОП с распределением центрального процессора

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

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

Задача распределения ОП распадается на три взаимосвязанные задачи: учета, выделения, возврата.

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

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

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

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

Блочная ОП

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

Рассмотрим пример блочной памяти с чередованием адресов по циклической схеме (рисунок 4), в котором для выбора банка используются два младших разряда адреса (А1, А0), а для выбора ячейки в банке – 7 старших разрядов (А8 – А2).

Рисунок 4 - Блочная память с чередованием адресов по циклической схеме

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

Много портовая ОП

Многопортовая память - это статическое ОЗУ с двумя или более независимыми интерфейсами, обеспечивающими доступ к пространству памяти через разделенные шины адреса, данных и управления. Структура двухпортового статического ОЗУ (рис.1.) содержит единый массив памяти (COMMON CENTRAL MEMORY) и два независимых порта (PORT_L и PORT_R) для обращения к этому массиву.

Организация и управление оперативной памятью - student2.ru
Рис.1. Структура двухпортового статического ОЗУ

В отличие от статического элемента обычного ОЗУ (рис.2,а) элементарная ячейка двухпортовой памяти реализована на шести транзисторах (рис.2,б). Основу ячейки составляет статический триггер, выполненный на транзисторах Q1, Q2. Ключевыми транзисторами Q3, Q4 триггер соединен с разрядными шинами P_L, P'_L, а ключевыми транзисторами Q5, Q6 - с разрядными шинами P_R, P'_R. По этим шинам к триггеру подводится при записи и отводится при считывании информация. Ключевые транзисторы затворами соединены с шинами выбора строки ROW SELECT_L и ROW SELECT_R соответственно. При возбуждении строки одним из сигналов выборки ключевые транзисторы открываются и подключают входы-выходы триггера к разрядным шинам.

С расслоением обращений

а рисунках 2.4-2.6 приведены варианты подключения кэш-памяти и ОП в зависимости от принципов организации памяти (расслоения обращений) и структуры магистрали данных системного интерфейса. Рассмотрим четыре варианта:

  • ОП и СОЗУ данных без расслоения обращений;
  • ОП с расслоением обращений на ширину выборки строки, СОЗУ данных без расслоения обращений;
  • ОП и СОЗУ данных с расслоением обращений на ширину выборки строки.
  • ОП с расслоением обращений на ширину выборки строки, СОЗУ данных с расслоением обращений и двусторонним доступом.

Первый вариант схемы включения представлен на рисунке 2.4. Процедура обновления ОП требует 8 обращений к СОЗУ данных и 8 обращений для записи строки в ОП, т.е. потребуется 8 х Tозу+ 8 х tсозу дан. и столько же обращений для замещения строки кэш-памяти.

Второй вариант (рисунок 2.5) требует наличия на выходах ОП RgDO с выходами с z-состоянием или мультиплексора на 8 входов, а на входах соответственно демультиплексора и регистра RgDI. Тогда процедура обновления ОП потребует 8 x tсозу для чтения строки из СОЗУ данных и записи в RgDI через DMS и одного обращения Tозу к ОП для записи строки и столько же обращений для замещения строки кэш-памяти.

Организация и управление оперативной памятью - student2.ru

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

Наши рекомендации