Файловые системы и структуры
Файл ( file) —область данных на носителе информации, имеющая свое имя. Имена файлов состоят из двух частей, «основного имени» и «дополнительного имени» (последнее существует как расширение имени файла).
Файловая система — способ хранения данных на внешних запоминающих устройствах.Диск разбит на сектора и дорожки. С точки зрения операционной системы, весь диск представляет собой набор кластеров(как правило, размером 512 байт и больше). Кластер - это наименьшее место на диске, которое может быть выделено для хранения файла и это также логическая единица для хранения данных в таблице размещения файлов. Он объединят группу секторов. Например, на дисках с размером секторов в 256 байт, 256-байтный кластер содержит один сектор, тогда как 2-килобайтный кластер содержит восемь секторов.
Структура диска:(A) дорожка(B) геометрический сектор(C) сектор дорожки(D) кластер
Лекция 4.Понятие кластер используется в файловых системах FAT, NTFS, a так же HFS Plus. Другие файловые системы оперируют схожими понятиями (зоны в Minix, блоки в Unix).
Драйверы файловой системы организуют кластеры в файлы и каталоги (реально являющиеся файлами, содержащими список файлов в этом каталоге). Эти же драйверы отслеживают, какие из кластеров в настоящее время используются, какие свободны, какие помечены как неисправные.
С файлом связан хэндлер файла, или дескриптор (описатель). При открытии файла операционная система возвращает указатель на структуру, с помощью которого выполняются все остальные файловые операции. Также имеется Файловый указатель- число, являющееся смещением относительно нулевого байта в файле. По этому адресу осуществляется чтение/запись, в случае, если вызов операции чтения/записи не предусматривает указание адреса. При выполнении операций чтения/записи файловый указатель смещается на число прочитанных/записанных байт. Последовательный вызов операций чтения таким образом позволяет прочитать весь файл, не заботясь о его размере.
4.2 Типы файловРегулярные - содержат информацию пользователя. Используются в Windows и UNIX. Каталоги - системные файлы, обеспечивающие поддержку структуры файловой системы. Используются в Windows и UNIX.
Основные типы регулярных файлов: ASCII файлы - состоят из текстовых строк. Каждая строка завершается возвратом каретки (Windows), символом перевода строки (UNIX) и используются оба варианта (MS-DOS). Поэтому если открыть текстовый файл, написанный в UNIX, в Windows, то все строки сольются в одну большую строку, но под MS-DOS они не сольются (это достаточно частая ситуация). Основные преимущества ASCII файлов:
- могут отображаться на экране, и выводится на принтер без преобразований
- могут редактироваться почти любым редактором Двоичные файлы - остальные файлы (не ASCII). Как правило, имеют внутреннею структуру.
Основные типы двоичных файлов: Исполняемые - программы, их может обрабатывать сама операционная система, хотя они записаны в виде последовательности байт. Неисполняемые - все остальные.
Примеры исполняемого и не исполняемого файла
«Магическое число» - идентифицирующее файл как исполняющий.
Структура файла для операционной системы предстваляется как последовательность байтов - ОС не интересуется содержимым файла, она видит только байты. Основное преимущество такой системы, это гибкость использования. Используются в Windows и UNIX.Такая система обаспечивает Произвольныйдоступ- файл можно читать с произвольной точки –с начала любого байта. Основное преимущество возникает, когда используются большие файлы и надо считать только часть данных из файла. Все современные ОС используют этот доступ.
Основные атрибуты файла:
o Защита - кто, и каким образом может получить доступ к файлу (пользователи, группы, чтение/запись). Используются в Windows и UNIX. Это также Пароль к файлу иСоздатель - кто создал файл . Владелец - текущий владелец файла. Флаг "только чтение" - 0 - для чтения/записи, 1 - только для чтения. Используются в Windows. Флаг "скрытый" - 0 - виден, 1 - невиден в перечне файлов каталога (по умолчанию). Используются в Windows. Флаг "системный" - 0 - нормальный, 1 - системный. Используются в Windows. Флаг "архивный" - готов или нет для архивации (не путать сжатием). Используются в Windows. Флаг "сжатый" - файл сжимается (подобие zip архивов). Используются в Windows. Флаг "шифрованный" - используется алгоритм шифрования. Если кто-то попытается прочесть файл, не имеющий на это прав, он не сможет его прочесть. Используются в Windows. Флаг ASCII/двоичный - 0 - ASCII, 1 – двоичный. Флаг произвольного доступа - 0 - только последовательный, 1 - произвольный доступ. Флаг "временный"- 0 - норм, 1 - для удаления файла по окончании работыпроцесса. Флаг блокировки - блокировка доступа к файлу. Если он занят для редактирования. Время последнего доступа - дата и время последнего доступа. Время последнего изменения - дата и время последнего изменения. Используются в Windows и UNIX. Текущий размер - размер файла. Используются в Windows и UNIX.
Имя путик файлу.Для организации дерева пути нужен некоторый способ указания файла.
Два основных метода указания файла:
o абсолютное имя пути - указывает путь от корневого каталога, например:- для Windows \usr\ast\mailbox
относительное имя пути - путь указывается от текущего каталога (рабочего каталога), например:
- если текущий каталог /usr/, то абсолютный путь /usr/ast/mailbox перепишется в ast/mailbox
- если текущий каталог /usr/ast/, то абсолютный путь /usr/ast/mailbox перепишется в mailbox
Операционная система также осуществляет файловые операции в специальном устройстве памяти - кэш. Кэш — это память с большой скоростью доступа, предназначенная для ускорения обращения к данным, содержащимся постоянно в памяти ОЗУ с меньшей скоростью доступа. Кэш-память может давать значительный выигрыш в производительности. Если в кэше не найдена запись, содержащая затребованный элемент данных, то он читается из основной памяти в кэш, и становится доступным для последующих обращений.При закрытии файла Кэш-буфер сбрасывается.