26. Файловая подсистема. Базовая файловая сситема System V.
Большинство данных в UNIX содержится в файлах, которые организованы в виде дерева и содержатся на носителе данных – обычно на локальном жестком диске.
Базовая файловая система System V
Суперблок Массив индексных
Дескрипторов ilist
|
s_type
s_fsize
s_isize
s_tfree
s_tinode
s_fmod
s_fronly
……. |
Каждый жесткий диск состоит из одной или нескольких логических частей которые называются разделы (partitions). В UNIX разделы выступают в качестве независимых устройств доступ к которым осуществляется как к различным носителям данных. В разделе может располагаться только одна файловая система.
s5fs - Файловая система состоит из 3 основных разделов:
Суперблок (Superblock) – Содержит общую информацию о файловой системе – ее архитектуре общем числе блоков и индексных дескрипторов, или метаданных (inode). Содержит следующую информацию:
Тип файловой системы ( s_type); Размер файловой системы в логических блоках, включая сам суперблок, ilist и блоки хранения данных ( s_fsize); Размер массива индексых дескрипторов (s_fsize); Число свободных блоков, доступных для размещения ( s_ftree); Число свободных inode , доступных для размещения (s_tinode); Флаги ( флаг модификации s_fmod, флаг режима монтирования s_fronly); Размер логического блока ( 512, 1024, 2048); Список номеров свободных inode ; Список адресов свободных блоков.
Поскольку число свободных inode и блоков хранения данных может быть значительным, хранение двух последних списков целиком в суперблоке непрактично. Для индексных дескрипторов хранится только часть списка. Когда число свободных inode в этом списке ->0 ядро просматривает ilist и вновь формирует список свободных inode – для этого ядро анализирует поле di_node которое равно 0 у свободных inode. Список адресов свободных блоков необходимо хранить целиком, он может занимать несколько блоков хранения данных, но в суперблоке содержится только один блок этого списка. Первый элемент указывает на блок хранящий продолжение списка и т д ( см рис 4.1).
Массив индексных дескрипторов – (ilist) – Содержит метаданные всех файлов файловой системы. Индексный дескриптор содержит статусную информацию о файле и указывает на расположение данных этого файла. Ядро обращается к inode по индексу в массиве ilist Один inode является корневым (root) inode файловой системы, чере него обеспечиваетсыя доступ к стуктуре каталогов и файлов после монтирования файловой системы. Размер массива ilist является фиксированным и задается при создании файловой системы -> S5fs имеет
ограничение по числу файлов независимо от размера этих файлов.
Каждый файл ассоциирован с 1 inode хотя может иметь несколько имен в файловой системе. Индексный дескриптор не содержит имени файла и содержимого файла. При открытии файла ядро помещает копию дискового inode в в память в таблицу in-core inode которая содержит нескололько дополнительных полей. Структура дискового inode:
di_mode Тип файла длополнительные атрибуты выполнения и права доступа; di_nlinks – число ссылок на файл т е количество имен которое имеет файл в файловой системе; di_uid, di_gid – идентификаторы владельца-пользователя и владельца-группы; di_size - Размер файла в байтах Для специальных файлов - старший и младший номера устройства; di_atime – время последнего доступа к файлу; di_mtime - -/- модификации; di_ctime - -/- модификации inode ( кроме модификации полец di_atime, di_mtime); di_addr[13] – массив адресов дисковых блоков хранения данных
Блоки хранения данных – Данные обычных файлов и каталогов хранятся в блоках. Обработка файла осуществляется через inode, содержащий ссылки на блоки данных. Блоки хранения данных занимают большую часть дискового раздела, и их число определяет максимальный суммарный обыем файлов данной файловой системы. Размер блока кратен 512 байт.
Достоинства: Простота,
Недостатки: Низкая надежность и производительность. Суперблок несет основную информацию о файловой системе в целом и при его повреждении файловая система не может использоваться. Компоненты файловой системы размещены на диске – Метаданные и блоки хранения данных размещены в разных местах на диске и головка диска должна перемещаться между ними -> низкая производительность. Один блок хранения данных может использоваться только одним файлом -> если блок заполнен не полностью то место теряется. Массив inpde имеет фиксированный размер -> ограничено мах число файлов на диске. Имя файла – не более 14 символов.
|