Каталоги. Каталоговые системы. Имя пути

Типы файлов. Доступ к файлам. Отображение на адресное пространство.

Типы файлов

- Регулярные файлы – все файлы содержащие инфу пользователя.

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

- Символьные специальные файлы, которые используются для моделирования последовательных устройств ввода/вывода;

- Блочные специальные файлы, которые используются для моделирования дисковых систем.

Регулярные файлы бывают либо двоичными, либо ASCII-файлами. ASCII-файлы состоят из текстовых строк, которые заканчиватся либо символом возврата каретки, либо символом перевода строки (UNIX), либо обеими символами (DOS). ASCII-файлы выводятся на экран либо на печать без какого-либо преобразования, то есть так, как они хранятся. Обмен данными при этом не становится проще, но облегчается интерпретация.

Остальные файлы называются двоичными. Они имеют некоторую внутреннюю структуру, которая интерпретируется в программах пользователя.

Все ОС должны распознавать по крайней мере один тип файлов: свои собственные исполняемые файлы.

Отображение на адресное пространство.

В большинстве современных ОС предоставлен способ отобржения файлов на адресное пространство работающего процесса. Это реализованно в виде двух системных вызовов: map и unmap.

Системный вызов map в качестве параметров использует имя файла и виртуальный адрес, по которому ОС отображает данный файл. Такой подход позволяет для работы с файлами использовать не специальные функции ввода/вывода (fread, fwrite), а обычные функции для работы с памятью. Удобнее всего использовать отображение файлов в ОС, поддерживающих сегментацию. В этом случае каждый файл может быть отображен на свой собственный сегмент. Недостатки:

- заранее невозможно узнать размер выходного файла, чтобы зарезервировать место для него;

- при одновременном доступе к одному файлу нескольких процессов может возникнуть рассогласование данных (содержимое файла не изменится, пока соответствующая страница не будет сохранена на диск);

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

В файловых системах файлы обычно организуются в каталоги или папки, которые в свою очередь, в большинстве ОС, являются специальными файлами. Виды каталоговых систем:

- одноуровневая - простейщая форма системы. Имеется всего один каталог, который называется корневым. Преимуществом такой схемы является простота и высокая скорость поиска файлов. Недостаток заключается в том, что, при наличии нескольких пользователей, могут возникнуть проблемы с именованием файлов. Такая схема используется в простейших устройствах;

- двухуровневая - первым этапом решения проблемы одинаковых имен файлов можно считать выделение каждому пользователю своего собственного каталога. Для функционирования такой системы требуется начальная регистрация пользователя. В более продвинутых системах пользователь с помощью специальных команд может работать с файлами других пользователей. Преимущества:

‡ каждый пользователь имеет свободу в именовании файлов;

‡ защита файлов от несанкционированного доступа;

Недостатки:

‡ при таком подходе все системные файлы и программы должны копироваться в каталог каждого пользователя. Можно избежать избыточного копирования, организовав один системный каталог, доступный всем пользователям;

- иерархическая - для управления большим количеством файлов как в однопользовательских, так и многопользовательских системах используют иерархическую структуру каталогов (дерево каталогов). Недостатки:

‡ так же может возникнуть проблема с общими системными файлами.

Имя пути

При организации файловой системы в виде дерева каталогов требуется некоторый способ указания файла. Обычно используются 2 различных метода:

- абсолютное имя пути - состоит из имен всех каталогов, начиная от корневого, разделенных некоторым символом (/, \, >);

- относительное имя пути - используется вместе с концепцией рабочего каталога (текущего). Рабочий каталог есть у каждого процесса и его изменение одним процессом никак не повлияет на работу других процессов.

Большинство файловых систем содержат в каждом каталоге 2 специальных элемента: '.' - текущий каталог, '..' - родительский каталог.

Операции с каталогами:

- Create

- Delete

- Opendir

- Closedir

- Readdir


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: