Управление физической памятью в OC WINDOWS Vista

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

Структура этой базы представляет собой таблицу, индексированную по номеру физического блока. Элементы таблицы имеют фиксированную длину. Название столбцов: «Состояние» (что из себя представляет данная страница), «Счетчик» (сколько таблиц страниц указывает на данную страницу, если счетчик равен 0, то страница не используется), «Рабочий набор» (страницы рабочих наборов указывают в каком элементе на них есть ссылки). «Таблица страниц» (указывает на таблицу страниц процесса), «Ссылка на следующую страницу» .

Страницы перемещаются из рабочих наборов в списки диспетчеромрабочих наборов и прочими системными потоками.

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

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

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

Следующие переходы связаны с системными потоками.

Существует два системных потока:

1. Поток записи отображенных страниц.

2. Поток записи модифицированных страниц.

4. Эти потоки периодически проверяют количество чистых страниц. Если их мало, то потоки берут модифицированные страницы из верхней части списка. Записывают их на диск и переносят в список резервных страниц.

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

6. Данный переход происходит тогда, когда требуется страница.

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

8. Требуется обнуленная страница.

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




Файловая система FAT. Загрузочный сектор.

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

1. Блок параметров диска;

2. Программа начальной загрузки ОС;

Первые два байта загрузочной записи – это команда безусловного перехода на системный загрузчик; Далее идет восьми байтовый системный идентификатор (Здесь находится фирма разработчик и версия ОС); Затем следуют параметры диска, а после него - загрузчик ОС;

Блок параметров диска содержит следующую информацию:

1. Размер сектора;

2. Число секторов в кластере;

3. Число зарезервированных секторов;

4. Количество копий FAT;

5. Максимальное количество элементов root;

6. Количество секторов в таблице FAT;

7. Число секторов на дорожке;

8. Метка тома;

9. Имя ФС;

10. Другие параметры;

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


Файловая система FAT. Таблица размещения файлов.

FAT – карта области данных. Область данных разбивается на кластеры.

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

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

Разбиение области данных на кластеры вместо использования секторов позволяет:

- уменьшить размер таблицы FAT:

- уменьшить фрагментацию файлов;

- сокращение длины цепочек фалов;

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

- свободен

- занят

- сбойный

Если кластер распределен к какому-либо файлу, то соответствующий элемент таблицы FAT содержит номер следующего кластера FAT. Последний кластер файла отмечается числом в диапазоне от 0xff8h до 0xfffh (FAT16) (0xfff8h до 0xffffh (FAT32)). Если кластер является свободным, то он содержит нулевое значение (0х000h(FAT16), 0х0000h(FAT32)). Кластер, непригодный для использования, отмечается числом 0xff7h(FAT16) , 0xfff7h(FAT32). Таким образом, таблица FAT кластеры, принадлежащие одному файлу, связываются в цепочки. Таблица FAT хранится сразу после загрузочной записи логического диска, ее точное расположение описано в специальном поле в загрузочном секторе, она храниться в двух идентичных экземплярах, которые следуют друг за другом и при разрушении первой копии используется вторая.

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

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