Вы находитесь на странице: 1из 45

Занятие 10

Интерфейс Файловой Системы


2

 Неразделяемое логическое адресное


пространство;
 Логическая единица хранения;
 Типы файлов:
 Данные:
▪ Числовые;
▪ Символьные;
▪ двоичные;
 Программы.
3

1. Структура отсутствует - последовательность слов, байт;


2. Простая структура записи:
 Строки;
 Фиксированная длина;
 Переменная длина;
3. Сложные Структуры:
 Форматированный документ;
 Перемещаемый файл загрузки.
 Возможно моделирование сложных и простых структур при
помощи первого метода, используя соответствующие
управляющие символы.
4

 Имя - информация, сохраненная в форме, удобно читаемой только


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

 Защита - контролирует, кто может читать, писать или выполнять


файл.
 Время, дата, и идентификация пользователя - данные для защиты,
безопасности, и контроля использования.
 Информация о файлах сохраняется в структуре
директории, обслуживаемой на диске.
5

1. Создание файла;
2. Запись в файл;
3. Чтение файла;
4. Перемещение внутри файла (поиск в файле);
5. Удаление файла;
6. Усечение файла (Truncating).

 open(Fi) - поиск в структуре директории на диске для


входа в Fi, и перемещение содержания входа в память.
 close(Fi) - перемещение содержания входа Fi из памяти
в структуру директории на диске.
6
7

 Последовательный Доступ:
▪ Читать следующий блок;
▪ Писать следующий блок;
▪ Сбросить;
— отсутствует чтение после последней записи и перезапись
 Прямой Доступ:
▪ читать блок n;
▪ писать в блок n;
▪ переместиться к блоку n;
▪ читать следующий блок;
▪ писать в следующий блок;
▪ переписать следующий n;
(n = номер блока).
8
9

 Структура Директорий — собрание узлов,


содержащих информацию обо всех файлах.
Directory

Files
F1 F2 F4
F3
Fn

Структура директорий и
расположения файлов на диске.
10
11

 Имя;
 Тип;
 Адрес;
 Текущая длина;
 Максимальная длина;
 Дата последнего обращения (для архивирования);
 Дата последнего обновления (для архивирования);
 ID Владельца;
 Информация о защите.
12

 Поиск файла;
 Создание файла;
 Удаление файла;
 Список директории (list);
 Переименование файла;
 Резервное копирование файловой системы
(дополнительная, запасная файловая таблица).
13

 Эффективность — быстрое нахождение файла.


 Именование — удобство для пользователей:
 Два пользователя могут иметь одинаковое имя для
различных файлов;
 Один файл может иметь несколько различных имен.

 Группировка — логическая группировка файлов


согласно их свойствам, (например, все
программы Ява, все игры и т.д…)
14

 Одна директория для всех пользователей;


 Проблема именования;

 Проблема группирования.
15

 Отдельные директории для каждого пользователя;

 Путь к имени;
 Может иметь одно и то же имя файла для различных
пользователей;
 Эффективный поиск;
 Отсутствие возможности группирования.
16
17

 Эффективный поиск;
 Возможности группирования;
 Текущая директория — рабочая директория:
 cd /spell/mail/prog;
 type list.
18

 Абсолютное или относительное имя пути;


 Создание нового файла происходит в текущей директории;
 Удаление файла:
 rm <имя файла>.
 Создание новой поддиректории происходит в текущей директории:
 mkdir <имя директории>.
 пример: находясь в текущем справочнике /mail:
 mkdir count.

mail

prog copy prt exp count

Deleting “mail”  удаление всех


19

 Разделяют между собой поддиректории и файлы.


20

 Два различных имени (совмещение имен, aliasing);


 Если в dict удалить list — получим потерянный
указатель;
 Решения:
1. Обратные указатели — возможно удаление всех
указателей;
2. Использование организации цепочки между обратными
указателями;
3. Решение " счетчика указателей".
21
22

 Как гарантировать отсутствие циклов?


1. Позволить связи только к файлам, но не к
поддиректориям;
2. Полное отслеживание структуры;
3. Каждый раз при добавлении новой связи
используется алгоритм обнаружения цикла, чтобы
определить, что все в порядке.
23

 Файловая система должна быть смонтирована,


прежде чем к ней можно будет обратиться.
 Не смонтированная файловая система
монтируется в точке монтирования.
24
25
26

 В многопользовательских системах желательно


предоставление файлов в общий доступ;
 Это возможно реализовать посредством схемы
защиты;
 На распределенных системах файлы могут быть
разделены по сети;
 Сетевая Файловая Система (NFS) - обычно
распространенный метод разделения файлов.
27

 Владелец/создатель файла должен иметь возможность


управлять тем:
 Что может быть сделано;
 Кем;
 Типы доступа:
 Чтение;
 Запись;
 Выполнение;
 Добавление;
 Удаление;
 Список директории.
28

 Метод доступа: чтение, запись, выполнение (read, write, execute --


RWX)
 Три класса пользователей
RWX
a) owner access  1 1 1

b) group access  1 1 0

c) public access  0 0 1

 Необходимо создание групп с уникальным именем, и добавление


пользователей в группу.
 Для конкретного файла или поддиректории определяют
соответствующий доступ.
29

 Структура файла:
 Логический модуль хранения;
 Коллекция связанной информации;

 Файловая система постоянно находится во


внешней памяти (диски).
 Файловая система, организована в уровни.
 Блок управления файлами - структура хранения,
содержащая информацию о файле.
30
31
32

(a) относится к
открытию файла.

(b) относится к чтению


файла.
33

 Виртуальные Файловые Системы (VFS)


обеспечивают объектно-ориентированный
способ реализации файловых систем.
 VFS позволяет использовать один Интерфейс
Системных Вызовов (API) для различных типов
файловых систем.
 API относится к интерфейсу VFS, а не какому-то
конкретному типу файловой системы.
34
35

1. Линейный список имен файла с указателем на


блоки данных:
 просто программировать;
 отнимает много времени при выполнении;
2. Хеш-таблица — линейный список с
хешированной структурой данных:
 уменьшает время поиска в каталоге;
 коллизии — ситуации, где два имени файла
хешируются к одному и тому же месту.
36

 Метод распределения относится к


распределению дисковых блоков файлам:
 Непрерывное распределение;
 Связанное распределение;
 Индексированное распределение.
37

 Каждый файл занимает набор непрерывных


блоков на диске.
 Прост — требуется только стартовое
местоположение (№ блока) и длина (количество
блоков).
 Произвольный доступ.
 Расточительный для пространства (проблема
динамического распределения памяти).
 Файлы не могут увеличиваться.
38
39

 Каждый файл — список связей дисковых блоков:


блоки могут быть разбросаны по всему диску.

block = pointer
40
41

 Простое — нуждается только в стартовом адресе;


 Система управления свободным пространством —
отсутствуют потери пространства;
 Нет произвольного доступа.
42
43

 Собирает все указатели в блок индексов.


 Логическое представление.

index table
44
45

 Нуждается в таблице индексов;


 Произвольный доступ;
 Динамический доступ без внешней
фрагментации, но имеет накладные расходы для
индексного блока;
 Отображение от логического к физическому
файлу неограниченной длины;
 Связанная схема — связи блоков индексной
таблицы (нет лимита на размер).

Вам также может понравиться