Операционные системы

       

УПРАВЛЕНИЕ ОСНОВНОЙ ПАМЯТЬЮ


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

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

Основными задачами подсистемы управления памятью (УП) являются:

1.Эффективное размещение процессов в ОП.

2.Защита памяти процессов.

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

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

Рис.5.1. Иерархическая организация памяти ЭВМ.

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

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



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

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

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

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



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

В реальных системах вероятность попадания в кэш составляет примерно 0,9. Высокое значение вероятности нахождения данных в кэш-памяти связано с наличием у данных объективных свойств: пространственной и временной локальности.

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

Временная локальность. Если произошло обращение по некоторому адресу, то следующее обращение по этому же адресу с большой вероятностью произойдет в ближайшее время.

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

Физически ОП имеет линейную организацию и представляет собой последовательность адресуемых ячеек (байт, 1 байт = 8 бит) от 0 до N, которая делится на слова, блоки, сегменты. Номер является адресом ячейки памяти. Размер ОП определяется в килобайтах (1Кб=1024б), мегабайтах (1Мб=1024Кб), гигабайтах (1Гб=1024Мб), терабайтах (1Тб=1024 Гб) и т.д.

Слово- это единица обмена ОП с ЦП, определяемое разрядностью с ЦП.

Блок - это непрерывная область памяти с общим ключом защиты. В EC ЭВМ - размер блока 2К, поэтому процессом выдается память, кратная 2К.

Сегмент - это некоторый участок памяти (для IBM PC от 16б до 64Кб). Сегмент может содержать несколько блоков.

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

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



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

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

2. Стратегия размещения, определяющая, куда помещать поступающую программу.

а) "первый подходящий" участок (эффективность по времени размещения);

б) "наиболее подходящий" участок (эффективность по объему);

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

3. Стратегия замещения

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

Существуют 4 вида организации реальной памяти:

1.

Однопрограммная организация памяти с выделением непрерывной области одному пользователю. Это самая простая организация, которая использовалась  на первых ЭВМ и на микро-ЭВМ, а также и на первых персональных компьютерах (PC) (рис. 5.2).



Рис. 5.2. Примеры организации памяти с выделением непрерывной области одному пользователю

Достоинства: простота защиты оперативной памяти. Для защиты требуется пара регистров, определяющих границы доступа ОП.

Недостатки: простаивает ЦП, а следовательно, и ОП, и устройства ввода/вывода. Неэффективное использование ЭВМ даже при наличии потока заданий, когда задания формируются в пакеты (режим PCP для ЕС ЭВМ).

2.     Мультипрограммная организация с фиксированными разделами представлена на рис.5.3.


ОП при загрузке ОС статически разбивается на ряд разделов фиксированного размера, в каждом из которых может выполняться одно задание (режим MFT OC в ЕС ЭВМ, MP?? фирмы Digital Research для 8 и 16 – разрядных процессоров Intel 8080, 8086).

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



Рис. 5.3. Мультипрограммная организация с фиксированными разделами

Достоинства: большая загрузка ЦП и повышение пропускной способности ВС.

Недостатки:

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

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

3.Мультипрограммированная организация с переменными разделами, при которой ОП разделяется динамически между процессами по запросам заданий (программ) пользователей (рис.5.4).



Рис. 5.4. Мультипрограммная организация с переменными разделами

Области памяти выделяются непрерывные из участков свободной памяти в соответствии с реализованными стратегиями размещения. При окончании заданий соседние свободные участки ОП объединяются. Защита памяти аналогичная режиму с фиксированными разделами.

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

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

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

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


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

Недостатки

этого метода:

а) используется время ЦП на уплотнение;

б) во время уплотнения ОС прекращает выполнение процессов пользователей (неприемлемо для СРВ).

Страничная организация памяти

реализует концепцию несвязного распределения памяти ЭВМ и означает

а) разделение ОП ЭВМ на блоки фиксированной длины размером от 1 до 4 Кб;

б) разделение адресного пространства программы загрузчиком на страницы фиксированного размера, равного длине блока;

в) динамически поблочно выделяется память программам в любом месте ЭВМ;

г) аппаратная поддержка соответствия номеров блоков ОП ЭВМ и страниц процесса по соответствующей таблице отображения страниц, пример которой приведен на рис.5.5.



Рис.5.5.  Таблица отображения страниц (ТОС):

Достоинства:

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

2.Внутренняя фрагментация ограничена размером блока ОП ЭВМ < 1 -4 Кб.

Общий итог развития форм организации реальной ОП - практически полная ликвидация фрагментации.

Общие недостатки реальной ОП:

(Физический)

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

ЕC ЭВМ – 24 - разрядные адресные регистры определяют допустимое адресное пространство размером 16 Мб, реально же устанавливается объем памяти 512 Кб - 8 Мб.

Pentium может адресовать своими 32-разрядными регистрами 4 Гб ОП, реально на компьютере устанавливается значительно меньший объем памяти (32-192 Мб). Нетрудно представить, какой огромный размер виртуальной ОП будет доступен с использованием анонсированного фирмой Intel 64 - разрядного процессора Merced.

(Логический) неэффективное использование РОП ввиду необходимости загрузки в ОП задания пользователя целиком, в то время как 85% времени выполнения программ реализуется обычно 5-10% команд программ.

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


Содержание раздела