09.0 (Russian conspect)
Файловые операции || Файловая система || Как реализована файловая система
Каталоги || дерево файлов || путь к файлам || иерархия
Устройство жесткого диска - медленность физического жесткого диска в связи с его устройством.
SSD(solid-state drive) -твердотельный накопитель - компьютерное энергонезависимое немеханическое запоминающее устройство на основе микросхем памяти, альтернатива HDD.
Оптимизация файловых систем до середины 90-х занималось HDD, и после выхода SSD стала не актуальной.
Было бы классно если файловая система была как в базе данных: возможность искать по ключу.
Такая файловая система существовала, но автор этой системы убил жену. И сел в тюрьму… Жена была русская\\
Проблемы оптимизации файловой системы и решение их:
● представлять файл как непрерывную штуку а как последовательность секторов жесткого диска(FAT)(разделяем область на файловую и область метаданных(инфа о файле)) строим File allocation table в которой написано какой файл где находится с ссылками на продолжение этого файла в файловой системе.
Так же есть обозначение основного каталога.
Проблемы с FAT:
● рост объема метаданных
● приходится постоянно дефрагментировать для поддержания эффективности файловой системы
● уникальный модификатор файла - его путь, в случае изменения имени файла, мы не можем поставить обозначения что это все еще тот же файл.
Каталог - в нем находится имя файла и inode - как обычный файл
Индексный дескриптор(inode)(у каждого есть свой #уникальный номер который является уникальным модификатором в большинстве современных файловых систем(внутри одной файловой системы, в двух они могут совпадать)) - отдельный сектор содержащий все метаданные(типы:каталоги,файлы;размер и тд...).
Таблица Superblock, где записаны свойства системы(размер, тип, давно ли ей пользовались, количество inode, объем свободного места, ссылка на корневой каталог).
- Битовая шкала - количество запланированных #inode для файлов. (занимает около 1% от объема носителя памяти).
В такой файловой системе уникальным модификатором файла становится #inode а не ссылка в системе на этот файл, что позволяет ему иметь разные имена и не иметь проблем с его определением в системе.
Проблемы такой файловой системы:
● когда слишком много файлов (поиск в таблице #inode занимает много времени - выход из ситуации - построение бинарного дерева вместо списка имен)
● когда файл очень большой (решение Extent#1)
Extent#1(длина х) - обычный блок, не единичной длины ((этакий массив блоков) работает только в файловых системах кот понимают что такое хеш. например на линуксе этого нету, им пришлось делать виртуальную файловую систему для решения этой проблемы) пример - блок1
Быстродействие - группы цилиндров(блок секторов) - когда мы рассматриваем жесткий диск как несколько дисков, тк диск читают сразу несколько головок, то можно расположить так файл, что все головки будут заняты чтением этого файла => увеличение в разы скорости чтения.
Введение нового уровня косвенности - новый том/диск
Что бы мы еще хотели от файловой системе:
● шифрование
● переменный размер
● тома
● надежность