Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 11.Управление внешней памятью.doc
Скачиваний:
20
Добавлен:
18.05.2015
Размер:
110.08 Кб
Скачать

Файловая система

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

Функции файловой системы

  • предоставление возможности создавать, модифицировать, уничтожать файлы;

  • контролируемое разделение файлов несколькими пользователями;

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

  • в системе должны быть предусмотрены средства обеспечения сохранности и восстановления информации в файлах;

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

  • система должна предоставлять защиту информации в файлах от несанкционированнного доступа (возможность шифрования и дешифрования данных);

  • файловая система должна иметь “дружественный” интерфейс по отношению к пользователю.

Состав файловой системы

Файловая система, входящая в состав ядра ОС, как правило, содержит следующие средства:

  • Методы доступа, которые определяют конкретную организацию доступа к данным, хранящимся в файлах.

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

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

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

Файловая система UNIX

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

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

В UNIX имеется три вида файлов, доступ к которым идентичен:

  • обычные дисковые файлы;

  • каталоги;

  • специальные файлы

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

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

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

Внутренняя структура каталога весьма простая: для каждого файла или другого каталога нижнего уровня создается запись. Организованная в структуру следующего содержания:

Struct {

Int inodе; /*индексный дескриптор*/

Char name;/*имя файла*/

}

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

Структура каталогов

2 байта 14 байт

Номер индексного дескриптора Имя файла Структура записи каталога UNIX

(16 байт)

8 3 1 4

Имя файла Расширение Атрибуты Резервные Структура записи каталога

MS DOS (32 байта)

Резервные Время Дата Номер первого Размер

блока

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

Логическая организация файловой системы

Одноуровневая Дерево (иерархия MS DOS)

Сеть (иерархия UNIX)

Дескриптор файла

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

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

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

Индексные дескрипторы

1 13 22

root

p2 1 . 13

prog1 bin 1 .. 1