Смекни!
smekni.com

Файловая система 4 (стр. 3 из 12)

• И, наконец, далее показаны размер файла (в байтах), время его последнего изменения и имя самого файла или каталога в самом конце строки.

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

• первые три символа (rw-) - это права владельца, которым в данном случае является queen. Следовательно, queenможет читать файл (г), изменять его содержимое (w). но не может запускать его (-).

• следующие три символа (г--) относятся к любому пользователю, кроме queen, который является членом группы users. Он будет в состоянии прочитать файл (г), но не сможет ни записать, ни выполнить его (--).

• последние три символа (—) относятся к любому пользователю, кроме queenи всех кто входит в группу users. Эти пользователи вообще не имеют никаких прав на этот файл.

Для каталога a_directoryправа выглядят так rwxr-xr--, отсюда:

• peter, как владелец каталога, может получить список находящихся в нем файлов (г), добавить или удалить файлы из этого каталога (w) и может пройти через него (х):

• Каждый пользователь, кроме peter, который входит в группу users, будет в состоянии получить список файлов в этом каталоге (г), но не сможет удалить или добавить файлы (-), а также сможет проходить его (х).

• Любой другой пользователь сможет только получить список содержимого этого каталога (г). Но поскольку у него нет прав wx, он не сможет записать файлы или войти в каталог.

Есть одно исключение из этих правил - root, rootможет изменять атрибуты (права доступа, владельца и группу) всех файлов, даже если он не является владельцем, и поэтому сможет сделать себя владельцем файла! rootможет читать файлы, для которых у него нет прав на чтение, проходить через каталоги, к которым у него* будь он обычным пользователем, не было бы доступа и т.д. И если root'yне хватает прав, ему нужно просто добавить их. rootимеет полный контроль над системой, что влечет за собой определенный уровень доверия к человеку, знающего его пароль.

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

• Имя файла может содержать любые символы, включая непечатаемые, за исключением ASCII-символа 0. который означает конец строки, и /, который является разделителем каталога. Кроме того, вследствие чувствительности к регистру в UNIX® файлы readmeи Readmeбудут разными, потому что под буквами г и Rв системах на базе UNIX® подразумеваются два разных символа.

• Имя файла не обязательно должно иметь расширение, если только вам не захочется так называть свои файлы. В GNU/Linuxрасширения файлов не определяют их содержимого, а также на большинстве операционных систем. Тем не менее, так называемые «расширения файлов» довольно удобны. В UNIX® точка (.) - это просто один из символов, но он также имеет одно специальное назначение. В UNIX® файлы с именами, начинающимися с точки, являются «скрытыми»; это также касается и каталогов, чьи имена начинаются с.

4.7. Кэширование диска

Кэш-память, или просто кэш (cache), — это способ совместного функционирования двух типов запоминающих устройств, отличающихся временем доступа и стоимостью хранения данных, который за счет динамического копирования в «быстрое» ЗУ наиболее часто используемой информации из «медленного» ЗУ позволяет, с одной стороны, уменьшить среднее время доступа к данным, а с другой стороны, экономить более дорогую быстродействующую память.

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

Кэш-памятью, или кэшем, часто называют не только способ организации работы двух типов запоминающих устройств, но и одно из устройств — «быстрое» ЗУ. Оно стоит дороже и, как правило, имеет сравнительно небольшой объем. «Медленное» ЗУ далее будем называть основной памятью, противопоставляя ее вспомогательной кэш-памяти.

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

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


4.8. Общая модель файловой системы

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

Запрос к файлу (операция, имя файла, логическая запись)

К подсистеме веода-вывода

Рис. 4.6. Общая модель файловой системы


Задачей символьного уровня является определение по символьному имени файла его уникального имени. В файловых системах, в которых каждый файл может иметь только одно символьное имя (например, MS-DOS), этот уровень отсутствует, так как символьное имя, присвоенное файлу пользователем, является одновременно уникальным и может быть использовано операционной системой. В других файловых системах, в которых один и тот же файл может иметь несколько символьных имен, на данном уровне просматривается цепочка каталогов для определения уникального имени файла. В файловой системе UNIX, например, уникальным именем является номер индексного дескриптора файла (i-node).

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

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

На логическом уровне определяются координаты запрашиваемой логической записи в файле, то есть требуется определить, на каком расстоянии (в байта4 ) от начала файла находится требуемая логическая запись. При этом абстрагируются от физического расположения файла, он представляется в виде непрерывной последовательности байт. Алгоритм работы данного уровня зависит от логической организации файла. Например, если файл организован как последовательность логических записей фиксированной длины 1, то n- ая логическая запись имеет смещение 1(п~ байт. Для определения координат логической записи в файле с индексно- последо вательной организацией выполняется чтение таблицы индексов (ключей), в которой непосредственно указывается адрес логической записи.

файл

V V V v"*4


Рис. 4.7. Функции физического уровня файловой системы

Исходные данные: