Управление файлами

Файл (file)– совокупность логически взаимосвязанной информации, расположенная во внешней памяти. Как правило, файлы представляют программы (в виде исходного текста или в двоичной форме) или данные.

Другой термин, использованный для обозначения файлов фирмой IBM в ее операционной системе – IBM 360/370, - набор данных (data set).

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

Создание и удаление файлов. Отображение файлов на внешнюю память.ОС выделяет внешнюю память при создании нового файла. Файл в большинстве файловых систем состоит из заголовкаи памяти. В заголовке хранятся атрибутыфайла, например, его длина, тип, ссылка на элементы файла во внешней памяти. Память файла может быть организована по-разному – как список смежных областей (блоковили записей),одна смежная область, список индексных узлов, ссылающихся на блоки файла и т.д. В курсе подробно рассмотрены некоторые файловые системы. Кроме создания и удаления файла, основные операции над ним – открытиеи закрытие. Открытие файла – это считывание в основную память его заголовка и, возможно, одного или нескольких соседних блоков. Оно должно быть выполнено перед выполнением операций чтения из файла или записи в файл. Закрытие файла – это обратная операция: сброс всех копий блоков на внешнюю память и освобождение областей основной памяти, занятых открытым файлом. ОС закрывает файлы процесса при его завершении, если процесс не сделал этого явно (последнее рекомендуется). При отображении файлов на внешнюю память возникают проблемы, аналогичные проблемам распределения основной памяти, - фрагментация, возможность исчерпания внешней памяти или ее раздела (partition)– смежной области внешней памяти, имеющей определенное символьное обозначение.

Создание и удаление директорий. Поддержка примитивов (пользовательских команд и библиотечных вызовов) для управления файлами и директориями. Директория (directory)– это каталог (справочник) ссылок на группу файлов или других директорий, каждый (каждая) из которых имеет в данной директории свое уникальное символьное имя. Иерархия директорий позволяет организовать поискфайла по его символьному пути(path),например, в Windows: c:docplan.txt– текстовый документ, содержащий план моих текущих действий, ссылка на который находится на диске C: , в директории doc. ОС управляет созданием и удалением директорий и поиском в них файлов по их путям. Следует иметь в виду, что на файл возможно несколько ссылок из разных директорий (хотя это и не рекомендуется), так что удаление элемента директории не означает и удаления файла – сам файл сохраняется, пока на него есть хотя бы одна ссылка. Более того, в некоторых файловых системах (например, FAT в Windows) ошибочно удаленный файл можно восстановить, хотя и под другим именем. В других же файловых системах (например, в UNIX, где используются индексные блоки, хранящие адреса блоков файла) удаление файла – фатальная операция, от ошибок в которой может спасти только вовремя сделанная резервная копия файловой системы на диске или флэшке.

Сброс, или резервное копирование (backup)файлов на устойчивые носители (флэш-память, компакт-диск, ленточный стример и др.), с целью их последующего восстановления при сбое или при ошибке пользователя. Значение резервного копирования для пользователей ОС трудно переоценить. Все наиболее важные документы, директории, файловые системы должны регулярно копироваться на внешнюю память (желательно делать не одну, а несколько копий на разные носители). Это должно стать непреложным правилом для каждого пользователя. Трудно даже вспомнить, сколько раз автору приходилось выслушивать сетования и жалобы студентов, аспирантов, сотрудников на то, что у них в самый ответственный момент "полетел винчестер", из-за чего они не могут показать свою программу или отчет. Рецепт очень простой: необходимо регулярно копировать важную информацию на устойчивые носители.Если Вы работаете в локальной сети фирмы, исследовательской лаборатории и т.д., то в ней должен быть системный администратор, который должен заботиться о регулярном резервном копировании всех важных файловых систем. Возможности ОС позволяют выполнять такое копирование автоматически, в определенное время, - например, ночью, когда в офисе никого нет, но компьютеры локальной сети работают.

В некоторых ОС реализованы файловые системы с криптованиемданных при записи в файл (например, система ZFS в Solaris). Такой подход позволяет решить проблему сохранения конфиденциальности информации (privacy) .