Модель дисковой памяти с точки зрения операционной системы
Функции операционной системы по управлению дисковой памятью выполняет ее часть, которая называется файловой системой.
Основные функции файловой системы:
обеспечить удобный интерфейс для работы программиста с дисковой памятью. Программист не должен знать, как же в действительности устроена и работает реальная дисковая память.
эффективно распоряжаться ресурсами дисковой памяти.
Как представляет себе дисковую память файловая система?
Дисковая память это ресурс файловой системы. Размеры дисковой памяти в настоящее время огромны и имеют устойчивую тенденцию к увеличению. Сейчас обычный персональный компьютер имеет дисковую память объемом сотни и тысячи Гбайт. Этим ресурсом и должна эффективно распоряжаться файловая система.
Файловая система это:
совокупность всех файлов в дисковой памяти;
наборы структур, которые используются для управления файлами, такие как каталоги, дескрипторы файлов, таблицы свободного и занятого пространства в дисковой памяти и т. п.
комплекс системных программ, с помощью которых выполняются различные операции над файлами, ведется учет и распределение пространства в дисковой памяти, поиск запрашиваемых объектов и т. п.
Одной из задач файловой системы является распределение и учет пространства в дисковой памяти. Если файловая система будет вести учет и распределение дисковой памяти с разрешающей способностью в один байт, то для управляющих структур будет мало всего объема дисковой памяти. Следовательно, учет и распределение дисковой памяти должны вестись с такой разрешающей способностью, чтобы:
не существенно замедлялась работа файловой системы;
управляющие структуры файловой системы занимали единицы процентов от объема дисковой памяти;
обеспечивалось эффективное использование дисковой памяти.
Для программиста дисковая память это хранилище файлов произвольного размера, обращение к которым происходит по символьным именам. Каждый файл представляется как непрерывная последовательность байтов.
Для файловой системы такое представление дисковой памяти неприемлемо. Ей очень неудобно работать с символьными именами. Файловой системе удобно представлять дисковую память как хранилище некоторых объектов, которые:
имеют фиксированный размер;
обращение к таким объектам происходит удобным образом (по числовым именам);
размеры объектов достаточно большие.
В современных файловых системах объекты хранения называются кластерами. Кластер – это минимальная область дискового пространства, которая может быть прочитана или записана за одно обращение к файловой системе.
Размер кластера зависит от операционной системы и может задаваться при ее конфигурировании. В настоящее время распространенным является размер кластера в 4К байт. Чем больше размер кластера, тем легче работать файловой системе, тем меньше размеры различных управляющих структур, тем быстрее выполняется работа файловой системы. Но с другой стороны, чем больше размер кластера, тем неэффективней используется дисковая память. Например, программа запросила создать файл размером 5К байт, а размер кластера 16К байт. Тогда программе будет выделен один кластер размером 16К байт, но полезно будет использовано только 5К байт из выделенных 16К байт.
В среднем неэффективно используется половина размера кластера из всех выделенных для файла кластеров. Если в файловой системе принята работа с кластерами большого размера, например, определен кластер размером 32К байт или 64К байт, а в компьютере много маленьких файлов размером в единицы К байт, то эффективность использования дисковой памяти будет очень маленькой.
Рассмотрим пример дисковой памяти размером в один Тбайт, т.е. 1000Г байт. При размере кластера в 4К байт всего в распоряжении файловой системы будет 256 миллионов кластеров. Для каждого кластера должен существовать его описатель (дескриптор), в котором должна быть информация о состоянии кластера (свободен, занят, «плохой»). Каждый кластер должен иметь адрес в 24 разряда и т.п. Естественно, что вся эта информация ввиду ее огромного размера может храниться только в дисковой памяти. Например, при условии, что для каждого кластера надо хранить 32 байта, размер управляющих структур может составить 8Г байт, что составит порядка 1,25% дискового пространства. Это незначительная величина.
Итак, для файловой системы, как и для программиста, дисковая память это хранилище произвольного числа файлов произвольного размера.
Количество файлов и их размер ограничиваются только объемом дискового пространства, и может быть очень большим. В тоже время, число активно используемых файлов в каждый момент времени ограничено, прежде всего, числом активно работающих программ пользователей, а также числом файлов, используемых в каждой программе.
Если файловая система заменит символьные имена файлов числами, размером, например, 32 разряда, то это позволит ей работать с 232 файлами, чего вполне достаточно.
Каждый файл для файловой системы это непрерывная последовательность кластеров фиксированного размера. Каждый кластер имеет имя – номер, например 32-х или 64-х разрядный.
Адрес каждого файла в файловой системе задается номером его первого кластера и количеством кластеров (возможно номером последнего кластера файла).
В этом случае дисковое пространство для файловой системы это непрерывная последовательность физических кластеров.
При создании очередного файла файловая система выделяет запрошенное число физических кластеров и изменяет их состояние со «свободен» на «занят», а в соответствующей управляющей структуре фиксирует перечень выделенных файлу кластеров.
В случае если файловая система не может найти для файла непрерывную последовательность физических кластеров, то она выделяет кластеры исходя из имеющихся свободных последовательностей физических кластеров. Это означает, что физически любой файл в дисковой памяти может занимать как непрерывную, так и случайную последовательность физических кластеров. В предельном случае все кластеры файла могут располагаться в произвольных физических кластерах, которые оказались свободными в момент выделения физических кластеров создаваемому файлу. Конечно, такое событие достаточно редкое, но возможное.
Эта ситуация напоминает ситуацию с виртуальной оперативной памятью, где каждая виртуальная страница (ее аналог виртуальный кластер файла) может быть отображен на любую физическую страницу оперативной памяти (ее аналог в дисковой памяти физический кластер дисковой памяти).
Отсюда следует, что при, например, чтении файла расположенного в n не последовательно расположенных участках дисковой памяти, файловая система должна выдать в контроллер диска nкоманд на чтение каждого отдельно расположенного участка.
В файловой системе NTFS для сокращения единиц адресуемой информации в дисковой памяти распределение дискового пространства при его выделении осуществляется не кластерами, а их непрерывной последовательностью, называемой экстент (или отрезок). Минимальный размер экстента равен одному кластеру, максимальный – все кластеры файла.
Таким образом, в файловой системе NTFS каждый файл представляется как последовательность экстентов. Адрес экстента это номер его первого кластера и количество кластеров в нем.
Контрольные вопросы
1. С использованием каких типов устройств может быть реализована внешняя память?
2. Какие основные отличия дисковой памяти от оперативной памяти?
3. Что такое файл?
4. Как адресуются файлы?
5. Что такое каталог?
6. Какие операции выполняются над файлами?
7. Как представляет себе операционная система внешнюю память?
8. Что такое кластер?
9. Какой размер кластера?
Дата добавления: 2015-09-28; просмотров: 1392;