Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
госы / OSSO.docx
Скачиваний:
48
Добавлен:
20.05.2015
Размер:
88.15 Кб
Скачать

Сегментное распределение памяти

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

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

Достоинства сегментного распределения памяти:

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

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

Недостатки:

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

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

  • Фрагментация памяти, которая возникает из-за непредсказуемых размеров сегментов.

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

В этом методе реализуются достоинства страничного и сегментного методов распределения памяти.

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

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

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

Кэширование данных в современных операционных системах. Кэш-память [1, тема 2].

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

Кэш-память прозрачна для программ и пользователей. С ней работает только операционная система.

В современных компьютерах применяют кэширование, как оперативной памяти, так и диска.

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

  • значение элемента данных;

  • адрес, который этот элемент данных имеет в основной памяти;

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

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

  • если данные обнаруживаются в кэш-памяти (кэш-попадание), то они считываются из нее;

  • если нужные данные отсутствуют в кэш-памяти (кэш-промах), то они считываются из основной памяти и одновременно с этим копируются в кэш-память.

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

Возможны два решения проблемы: сквозная и обратная запись.

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

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

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

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

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

Детерминированный (прямой) способ отображения предполагает, что любой элемент основной памяти всегда отображается в одно и то же место кэш-памяти. Между номерами строк кэш-памяти и адресами основной памяти устанавливается соотношение «один ко многим»: одному номеру строки соответствует несколько адресов оперативной памяти.

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

Соседние файлы в папке госы