Смекни!
smekni.com

Курс лекций Операционным системам и среды (стр. 18 из 21)

&bsol; /:*?«<>|

В имени разрешается использовать пробелы и несколько точек. Расширением имени считаются все символы, идущие после последней точки, их может быть и больше трех.

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

Подобные соглашения особенно полезны, когда одна и та же программа должна управлять различными типами файлов. Например, компилятору языка С может быть предоставлен список файлов, которые он должен откомпилировать и скомпоновать, причем некоторые из этих файлов могут содержать программы на языке С, тогда как другие — являться ассемблерными файлами. В таком случае компилятор сможет отличить одни файлы от других именно по их расширениям.

Система Windows, напротив, знает о расширениях имен файлов и назначает каждому расширению вполне определенное значение. Пользователи (или процессы) могут регистрировать расширения в операционной системе, указывая программу, которая станет их «владельцем». При двойном щелчке мыши на имени файла запускается программа, назначенная этому расширению, с именем файла в качестве параметра. Например, двойной щелчок мыши на имени file.doc запускает Microsoft Word, который открывает файл file.doc в качестве исходного файла для редактирования.

Для обозначения группы файлов используют шаблоны - это специаль­ные записи, в которых применяют символы * и ?.

* заменяет любое число любых символов в имени или расширении файла;

? заменяет один символ в данной позиции.

Примеры:

*.* — все файлы.

*.ехе - файлы с расширением ехе.

ргоg.* - файлы с именем ргоg, расширение любое.

???gruppa.txt - три первых символа любые, затем символы gruppa, расширение txt.

Типы файлов

Многие операционные системы поддерживают несколько типов файлов.

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

Текстовые файлы состоят из строк символов, представленных в ASCII-коде. Это могут быть документы, исходные тексты программ и т.п. Текстовые файлы можно прочитать на экране и распечатать на принтере.

Двоичные файлы не используют ASCII-коды, они часто имеют сложную внутреннюю структуру, например, объектный код программы или архивный файл.

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

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

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

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

Каждая операционная система должна распознавать по крайней мере один тип файла — свой собственный исполняемый файл.

Метаданные

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

Список метаданных существенно варьируется от системы к системе. В табл. показаны некоторые из возможных метаданных, но кроме них существуют также и другие метаданные. Ни одна из существующих систем не имеет всех этих метаданных, но каждый из них присутствует в какой-либо системе.

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

Атрибуты и флаги представляют собой биты или небольшие поля, с помощью которых происходит управление некоторыми конкретными свойствами или разрешение их применения. Например, скрытые файлы не появляются в листинге файлов. Атрибут архивации представляет собой бит, с помощью которого отслеживается, была ли недавно сделана резервная копия файла. Этот атрибут сбрасывается программой архивирования и устанавливается операционной системой при внесении в файл изменений. Таким образом, программа архивирования может определить, какие файлы следует архивировать. Флаг «временный» позволяет автоматически удалять помеченный им файл по окончании работы создавшего его процесса.

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

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

Метаданное Значение
Защита Кто и каким образом может получить доступ к файлу
Пароль Пароль для получения доступа к файлу
Создатель Идентификатор создателя файла
Владелец Текущий владелец
Атрибут «только для чтения» О — для чтения-записи; 1 — только для чтения
Атрибут «скрытый» О — обычный; 1 — не предназначенный для отображения в перечне файлов
Атрибут «системный» 0 — обычный; 1 — системный
Атрибут «архивный» 0 — прошедший резервное копирование; 1 — нуждающийся в резервном копировании
Флаг ASCII-двоичный 0 —ASCII; 1 —двоичный
Флаг произвольного доступа 0 — только последовательный доступ; 1 — произвольный доступ
Флаг «временный» 0 — обычный; 1 — удаляемый по окончании процесса
Флаги блокировки 0 — незаблокированный; ненулевое значение — заблокированный
Время создания Дата и время создания файла
Время последнего доступа Дата и время последнего доступа к файлу
Время внесения последних изменений Дата и время внесения в файл последних изменений
Текущий размер Количество байтов в файле
Максимальный размер Кол-во байт, до которого файл может увеличиваться

Размещение файлов на диске

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

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

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

Каталоги. Имена файлов регистрируются на дисках в каталогах (или директориях). В Windows каталоги называются также папками. Каталог – это специальное место на диске, в котором хранятся имена файлов, сведения о размере файлов, времени их последнего обновления, атрибуты (свойства) файлов и т. д. Если в каталоге хранится имя файла, то говорят, что этот файл находится в данном каталоге. На каждом диске может быть несколько каталогов. В каждом каталоге может быть много файлов, но каждый файл всегда регистрируется только в одном каталоге.

Имена каталогов. Требования к именам каталогов те же, что и к именам файлов. Как правило, расширение имени для каталогов не используется, хотя делать этого никто не запрещает.

Корневой каталог. На каждом диске имеется один главный, или корневой, каталог (он создается после форматирования). Для его обозначения используют символ &bsol;. В нем регистрируются файлы и подкаталоги (каталоги 1-го уровня). В каталогах 1-го уровня регистрируются файлы и каталоги 2-го уровня и т. д. Получается иерархическая древообразная структура каталогов на диске. Эту структуру часто называют деревом.