09.0 (Russian conspect)

Файловые операции || Файловая система || Как реализована файловая система

Каталоги || дерево файлов || путь к файлам || иерархия

1.png

Устройство жесткого диска - медленность физического жесткого диска в связи с его устройством.

SSD(solid-state drive) -твердотельный накопитель - компьютерное энергонезависимое немеханическое запоминающее устройство на основе микросхем памяти, альтернатива HDD.

Оптимизация файловых систем до середины 90-х занималось HDD, и после выхода SSD стала не актуальной.

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

Такая файловая система существовала, но автор этой системы убил жену. И сел в тюрьму… Жена была русская\\

Проблемы оптимизации файловой системы и решение их:

● представлять файл как непрерывную штуку а как последовательность секторов жесткого диска(FAT)(разделяем область на файловую и область метаданных(инфа о файле)) строим File allocation table в которой написано какой файл где находится с ссылками на продолжение этого файла в файловой системе.

Так же есть обозначение основного каталога.

Проблемы с FAT:

● рост объема метаданных

● приходится постоянно дефрагментировать для поддержания эффективности файловой системы

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

Каталог - в нем находится имя файла и inode - как обычный файл

Индексный дескриптор(inode)(у каждого есть свой #уникальный номер который является уникальным модификатором в большинстве современных файловых систем(внутри одной файловой системы, в двух они могут совпадать)) - отдельный сектор содержащий все метаданные(типы:каталоги,файлы;размер и тд...).

Таблица Superblock, где записаны свойства системы(размер, тип, давно ли ей пользовались, количество inode, объем свободного места, ссылка на корневой каталог).

2.png

3.png

В такой файловой системе уникальным модификатором файла становится #inode а не ссылка в системе на этот файл, что позволяет ему иметь разные имена и не иметь проблем с его определением в системе.

Проблемы такой файловой системы:

● когда слишком много файлов (поиск в таблице #inode занимает много времени - выход из ситуации - построение бинарного дерева вместо списка имен)

● когда файл очень большой (решение Extent#1)

Extent#1(длина х) - обычный блок, не единичной длины ((этакий массив блоков) работает только в файловых системах кот понимают что такое хеш. например на линуксе этого нету, им пришлось делать виртуальную файловую систему для решения этой проблемы) пример - блок1

4.png

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

Введение нового уровня косвенности - новый том/диск

Что бы мы еще хотели от файловой системе:

● шифрование

● переменный размер

● тома

● надежность

HSE/ProgrammingOS/09_Filesystems/Conspect (последним исправлял пользователь Lecture_Uploads 2020-06-08 23:28:35)