Главная страница  Межпроцессное взаимодействие (состязание) 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 [ 143 ] 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187

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

5.1. Файлы

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

5.1.1. Именование файлов

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

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

Правила именования файлов варьируются от системы к системе, но все современные операционные системы поддерживают использование в качестве имен файлов 8-символьных текстовых строк. То есть andrea, bruce и cathy являются допустимыми именами файлов. Часто в именах файлов также разрешается употребление цифр и специальных символов, поэтому допустимы и такие имена, как 2, urgent! и Fig.2-14. Многие файловые системы поддерживают имена файлов длиной до 255 символов.

В некоторых файловых системах, например UNIX, различаются прописные и строчные буквы, тогда как в других, таких как MS-DOS, нет. Таким образом, имена maria, Maria и MARIA будут означать в системе UNIX три различных файла, и в то же время в MS-DOS все три имени будут соответствовать одному файлу.

Во многих операционных системах имя файла может состоять из двух частей, разделенных точкой, например ргод.с. Часть имени файла после точки называется расширением имени файла и обычно характеризует его тип. Так, в MS-DOS имя файла может содержать от 1 до 8 символов плюс расширение от О до 3 символов. В UNIX размер расширения файла зависит от пользователя. Кроме того,



внешне имя файла может включать несколько расширений, например prog.с.Z, где обозначением .Z обычно отмечают, что файл (prog.с) был сжат с помощью алгоритма Лемпеля-Зива. Некоторые часто встречающиеся расширения имен файлов и их смысловая нагрузка представлены в табл. 5.1.

Таблица 5.1. Некоторые типичные расширения имен файлов

Расширение Значение

file.bak Резервная копия файла

file.с Исходный текст программы на С

file.gif Изображение в формате GIF

file.hip Файл справки

file.html Документ в формате HTML (веб-страница)

file.jpg Статическое изображение стандарта JPEG

file.mpS Музыка в формате MPEG-1, уровень 3

file.mpg Фильм в формате MPEG

file.о Объектный файл (еще не скомпонованный выходной файл компилятора)

file.pdf Документ формата PDF (программы Adobe Acrobat)

file.ps Документ формата PostScript

file.tex Входной файл для программы форматирования ТЕХ

file.txt Текстовый файл общего назначения

file.zip Архив, сжатый с помощью алгоритма Лемпеля-Зива

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

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

5.1.2. Структура файла

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



Значения этим байтам присваиваются программами уровня пользователя. Такой подход характерен как для систем UNIX, так и в Windows.

1 Байт

1 Запись


Корова

Собака

КозаЦ Лев

Сова

Пони

Крыса

Червь

8 6 а

Рис. 5.1. Три типа файлов: а - последовательность байтов; б - последовательность

записей; 8 - дерево

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

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

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



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 [ 143 ] 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187

© 2000 - 2018 ULTRASONEX-AMFODENT.RU.
Копирование материалов разрешено исключительно при условии цититирования.