- •Лекции 10-11. Системы управления данными (файловые системы)
- •10.1 Файлы
- •10.1.1 Именование файлов
- •10.1.2 Структура файла
- •Три типа структур файла.
- •10.1.3 Типы файлов
- •Примеры исполняемого и не исполняемого файла
- •10.1.4 Доступ к файлам
- •10.1.5 Атрибуты файла
- •10.1.6 Операции с файлами
- •10.1.7 Файлы, отображаемые на адресное пространство памяти
- •10.2.5 Операции с каталогами
- •10.4.4 I - узлы
- •Примеры I-узла
- •10.5 Реализация каталогов
- •Варианты реализации каталогов
- •10.5.1 Реализация длинных имен файлов
- •Реализация длинных имен файлов
- •10.5.2 Ускорение поиска файлов
- •1 Использование хэш-таблицы для ускорения поиска файла.
- •2 Использование кэширования результатов поиска файлов для ускорения поиска файла.
- •10.6 Совместно используемые файлы
- •А - совместно используемый файл.
- •10.6.1 Жесткие ссылки
- •Основные два способа учета свободных блоков
- •10.7.3 Дисковые квоты
- •10.8 Надежность файловой системы
- •10.8.1 Резервное копирование
- •10.8.2 Непротиворечивость файловой системы
- •10.11 Производительность файловой системы
- •Каталоговая запись стандарта iso 9660.
- •11.1.2 Рок-ридж расширения для unix
- •11.1.3 Joliet расширения для Windows
- •11.2 Файловая система ms-dos (fat-12,16,32)
- •Каталоговая запись ms-dos, обратите внимание на пустые 10 байт, они будут задействованы в Windows 98
- •11.2.1 Fat-12
- •11.2.2 Fat-16
- •11.2.3 Fat-32
- •11.2.4 Расширение Windows 98 для fat-32
- •Формат каталогов записи с фрагментом длинного имени файла в Windows 98
- •11.3 Файловая система ntfs
- •Главная файловая таблица mft, каждая запись ссылается на файл или каталог.
- •Три записи mft для сильно фрагментированного файла. В первой записи указывается индексы на дополнительные записи.
- •Шифрование файлов в ntfs
- •11.4 Файловая система unix v7
- •Расположение файловой системы unix
- •Каталоговая запись unix v7 в 16 байт Структура I-узела
- •I-узел unix v7
- •Связь между таблицей дескрипторов файлов, таблицей открытых файлов и таблицей I-узлов.
- •11.5 Файловая система bsd
- •Каталог bsd с тремя каталоговыми записями для трех файлов и тот же каталог после удаления файла zip, увеличивается длина первой записи.
- •11.6 Файловые системы linux
- •11.6.1 Файловая система ext2
- •Размещение файловой системы ext2 на диске
- •11.6.2 Файловая система ext3
- •11.6.3 Файловая система xfs
- •11.6.4 Файловая система rfs
- •11.6.4 Файловая система jfs
- •11.7 Сравнительная таблица некоторых современных файловых систем
- •11.8 Файловая система nfs
10.8.2 Непротиворечивость файловой системы
Если в системе произойдет сбой, прежде чем модифицированный блок будет записан, файловая система может попасть в противоречивое состояние. Особенно если это блок i-узла, каталога или списка свободных блоков.
В большинстве файловых систем есть специальная программа, проверяющая непротиворечивость системы.В UNIX - fsck.В Windows - scandisk.
Если произошел сбой, то во время загрузки они проверяют файловую систему (если файловая система журналируемая, такая проверка не требуется).
Журналируемая файловая система - операции выполняются в виде транзакций, если транзакция не завершена, то во время загрузки происходит откат в системе назад.
Два типа проверки на непротиворечивость системы:
проверка блоков - проверяется дублирование блоков в файле или в списке свободных блоков. Потом проверяется, нет ли блока файла, который еще присутствует в списке свободных блоков. Если блока нет в занятых и в незанятых, то блок считается не достающем (уменьшается место на диске), такие блоки добавляются к свободным. Также блок может оказаться в двух файлах.
проверка файлов - в первую очередь проверяется каталоговая структура. Файл может оказаться; либо в нескольких каталогах, либо не в одном каталоге (уменьшается место на диске).
10.11 Производительность файловой системы
Так как дисковая память достаточно медленная. Приходится использовать методы повышающие производительность.
10.11.1 Кэширование
Блочный кэш (буферный кэш)- набор блоков хранящиеся в памяти, но логически принадлежащие диску.
Перехватываются все запросы чтения к диску, и проверяется наличие требуемых блоков в кэше.
Ситуация схожа со страничной организацией памяти, можно применять те же алгоритмы.
Нужно чтобы измененные блоки периодически записывались на диск. В UNIX это выполняет демон update (вызывая системный вызов sync). В MS-DOS модифицированные блоки сразу записываются на диск (сквозное кэширование).
10.11.2 Опережающее чтение блока
Если файлы считываются последовательно, и когда получен к-блок, можно считать блок к+1 (если его нет в памяти). Что увеличивает быстродействие.
10.11.3 Снижение времени перемещения блока головок
Если записывать, наиболее часто запрашиваемые файлы, рядом (соседние сектора или дорожки), то перемещение головок будет меньше
В случае использования i-узлов если они расположены в начале диска, то быстродействие будет уменьшено, т.к. сначала головка считает i-узел (в начале диска), а потом будет считывать данные (где-то на диске). Если располагать i-узлы поближе к данным, то можно увеличить скорость доступа.
Лекция 11. Примеры файловых систем
11.1 Файловой системы CD-дисков
11.1.1 Файловая система ISO 9660
Более подробная информация - http://ru.wikipedia.org/wiki/ISO_9660 Стандарт принят в 1988 г.
По стандарту диски могут быть разбиты на логические разделы, но мы будем рассматривать диски с одним разделом.
Как вы знаете блоки записываются последовательно; по спирали; сектора по 2352 байта.
Порядок записи информации:
Каждый CD-ROM начинается с 16 блоков (неопределенных ISO 9660), эта область может быть использована для размещения загрузчика ОС или для других целей.
Дальше один блок основного описателя тома - хранит общую информацию о CD-ROM, в нее входит:
идентификатор системы (32байта)
идентификатор тома (32байта)
идентификатор издателя (128байт)
идентификатор лица, подготовившего данные (128байт)
имена трех файлов, которые могут содержать краткий обзор, авторские права и библиографическая информация.
ключевые слова: размер логического блока (как правило, 2048, но могут быть 4096, 8192 и т.д.); количество блоков; дата создания; дата окончания срока службы диска.
описатель корневого каталога (номер блока содержащего каталог).
Могут быть дополнительные описатели тома, подобные основному.
Каталоговая запись стандарта ISO 9660.