Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы по информационным технологиям.doc
Скачиваний:
9
Добавлен:
03.08.2019
Размер:
319.49 Кб
Скачать

16. Алгоритмы распределения памяти.

Алгоритмы распределения памяти без использования внешней памяти. Распределение памяти фиксированными разделами.

Распределение памяти динамическими разделами.

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

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

Распределение памяти перемещаемыми разделами.

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

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

Рис.11 Распределение памяти перемещаемыми разделами

Недостаток этого метода – низкая производительность.

Алгоритмы распределения памяти с использованием внешней памяти

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

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

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

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

Важно, что все действия по перемещению происходят автоматически, без участия программиста.

Для виртуализации применяются два основных подхода:

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

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

Реализация виртуальной памяти, представлена тремя классами: страничное распределение, сегментное, сегментно-страничное распределение.

Страничное распределение

При страничном распределении виртуальная память делится на части одинакового и фиксированного для данной системы размера, называемыми виртуальными страницами. Вся оперативная память также делится на части такого же размера, называемые физическими страницами. Размер страницы выбирается равным степени двойки: 512, 1024, 4096 и т.д.

Рис12. Страничное распределение

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

-номер физической таблицы;

-признак присутствия в ОЗУ (формируется аппаратно);

-признак модификации (формируется аппаратно);

-признак обращения (формируется аппаратно);

-пиртуальный адрес, который представлен парой (p, sv) преобразуется в (n, sf).

Объем страницы равен степени 2k, тогда смещение (s) можно получить отделением к разрядов.

Например. Если размер страницы = 1кб (210), то 50718 = 101 000 111 0012, 108=28 – номер страницы.

Схема обращения к физической памяти по виртуальному адресу при страничном распределении

Рис13. Схема преобразования виртуального адреса в физический при страничном распределении

Аппаратно, из регистра извлекается адрес таблицы страниц. На основании номера страницы Р и длины записи L, определяется адрес дескриптора (A=AT+P*L).

Из таблицы извлекается номер физической страницы N. К номеру N присоединяется смещение S.

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

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

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

Разбиение адресного пространства на "осмысленные" части устраняет эти недостатки и называется сегментным распределением. Примеры сегментов: код программы, массив исходных данных и пр.

На этапе создания процесса, ОС создает таблицу сегментов процесса, аналогичную таблице страниц (рис.13).

Рис.14. Распределение памяти сегментами

Рис.15. Схема преобразования виртуального адреса в физический при сегментном распределении

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

К недостаткам сегментного распределения можно отнести следующие:

Использование операции сложения при формировании физического адреса приводит к понижению производительности

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

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

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

Виртуальная память делится на сегменты, а каждый сегмент - на страницы.

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

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

17. Алгоритм распределения оперативной памяти с использованием файла подкачки.

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

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

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

18. Принципы работы Кэш-памяти.

19. Файловые системы.

  • FAT — исходно дисковая файловая система — теперь часто используется на флеш-дисках. Имеет ограничение на размер файла в 4 гигабайта.

    • exFAT — Расширенная версия FAT, используемая для флеш-дисков. Запатентована Microsoft, часто называется как FAT64 — ограничение 264 байт (16 эксабайт).

    • TFAT (англ.) — Транзакционная версия FAT файловой системы.

  • FFS2 — Продолжение файловой системы FFS1, Одна из ранних файловых систем для флеш-карт. Разработана и запатентованаMicrosoft в начале 1990х годов. U.S. Patent 5 392 427

  • JFFS — Оригинальная лог-структурированная Linux файловая система для NOR-флеш-носителей.

    • JFFS2 — Продолжение JFFS для NAND- и NOR-флеш-носителей.

  • LogFS — Предназначена для замены JFFS2, лучшая расширяемость. Находится на ранней стадии разработки.

  • Non-Volatile File System — файловая система для флеш-дисков, разработанная Palm, Inc..

  • YAFFS — Лог структурированная файловая система, предназначенная для NAND-флеш, но может использоваться в NOR-флеш-дисках.