Современные операционные системы

Современные операционные системы
Что такое операционная система / Иерархии файлов

Иерархии файлов




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

Каждый файл, принадлежащий иерархии каталогов, может быть обозначен своим полным именем, с указанием пути к файлу, начиная с вершины иерархии — корневого каталога. Этот абсолютный путь состоит из списка каталогов, которые нужно пройти от корневого каталога, чтобы добраться до файла, где в качестве разделителей компонентов служат символы косой черты (слэша). На рис. 1.14 путь к файлу CS101 будет иметь вид /Faculty/Prof.Brown/Courses/CS101. Первая косая черта является признаком использования абсолютного пути, который начинается в корневом каталоге. Следует заметить, в MS-DOS и Windows в качестве разделителя вместо прямой косой черты (/) используется обратная (), поэтому показанный выше путь к файлу должен быть записан в следующем виде: Faculty Prof.BrownCoursesCS101. На страницах этой книги при указании путей к файлам будет в основном использоваться соглашение, действующее в UNIX.

В любой момент времени у каждого процесса есть текущий рабочий каталог, относительно которого рассматриваются пути файлов, не начинающиеся с косой черты. Например, на рис. 1.14, если /Faculty/Prof.Brown будет рабочим каталогом, то при использовании пути Courses/CS101 будет получен тот же самый файл, что и при указании рассмотренного выше абсолютного пути. Процесс может изменить свой рабочий каталог, воспользовавшись системным вызовом, определяющим новый рабочий каталог.

Перед тем как с файлом можно будет работать в режиме записи или чтения, он должен быть открыт. На этом этапе также происходит проверка прав доступа. Если доступ разрешен, система возвращает целое число, называемое дескриптором файла, который используется в последующих операциях. Если доступ запрещен, то возвращается код ошибки. Закуска «кораблики»



Полное описание: Иерархии файлов




С этим описанием рассматриваются следующие темы:


Разные системные вызовы
Помимо описанных выше, существуют также и другие разновидности системных вызовов. Здесь будут рассмотрены только четыре из них. Системный вызов chdir изменяет текущий рабочий каталог. После вызова chdi г С"/usr/ast/test"): при открытии файла xyz будет открыт файл /usr/ast/test/xyz. Использование понятия рабочего каталога избавляет от необходимости постоянно набирать длинные абсолютные пути файлов.

Системные вызовы для управления файлами
Многие системные вызовы имеют отношение к файловой системе. В этом разделе будут рассмотрены вызовы, работающие с отдельными файлами, а в следующем разделе — те вызовы, которые оперируют каталогами или всей файловой системой в целом. Чтобы прочитать данные из файла или записать их в файл, сначала его необходимо открыть с помощью системного вызова open. Для данного вызова необходимо указать имя открываемого файла (с указанием абсолютного пути либо пути относительно рабочего каталога) и код ORDONL ... Читать

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

Системные вызовы для управления каталогами
В этом разделе мы рассмотрим некоторые системные вызовы, относящиеся скорее к каталогам или к файловой системе в целом, чем к отдельным файлам, как в предыдущем разделе. Первые два вызова — mkdir и rmdir — соответственно создают и удаляют пустые каталоги. Следующий вызов — link. Он позволяет одному и тому же файлу появляться под двумя или более именами, зачастую в разных каталогах. Этот вызов обычно используется, когда несколько программистов, работающих в одной команде, должны совместно использ ... Читать

Иерархии процессов
В некоторых системах, когда процесс порождает другой процесс, родительский и дочерний процессы продолжают быть определенным образом связанными друг с другом. Дочерний процесс может и сам создать какие-нибудь процессы, о)юрмируя иерархию процессов. Следует заметить, что в отличие от растений и животных, использующих половую репродукцию, у процесса есть только один родитель (но нуль, один, два или более детей). В UNIX процесс, все его дочерние процессы и более отдаленные потомки образуют группу пр ... Читать