Similar presentations:
Операционные системы. Файловые системы (часть 2)
1. Операционные системы
Файловые системы (часть 2)2. Организация ФС UNIX. Виды файлов
Файл UNIX — это специальным образом именованныйнабор данных, размещенный в системе.
Виды файлов
• Обычный файл (regular file)
• Каталог (directory)
• Специальный файл устройств (special device file)
• Именованный канал (FIFO)
• Ссылка (link)
• Сокет (socket)
3. Права доступа
Категории пользователей• Пользователь
• Группа
• Все пользователи системы
• На чтение
• На запись
• На исполнение
Права
Права на доступ к каталогу:
• Открытие и чтение
• Создание и удаление
• Поиск
/name1/ name2/ ...nameI/.../ nameN/
4. Логическая структура каталогов
/unix
bin
etc
lib
sys
tmp
mnt
include
bin
…
dev
usr
user
…
5. Модель версии System V
Структура ФССуперблок
Область индексных
дескрипторов
Блоки
Суперблок файловой системы содержит оперативную
информацию о текущем состоянии файловой системы, а
также данные о параметрах настройки.
Индексный дескриптор — специальная структура
данных ФС, которая ставится во взаимнооднозначное
соответствие с каждым файлом.
Блоки — свободные, занятые под системную
информацию, занятые файлами.
6. Структура суперблока
• Тип файловой системы• Размер файловой системы в логических блоках,
включая сам суперблок, массив индексных
дескрипторов (i-node), и блоки хранения данных
• Размер Области индексных дескрипторов
• Число свободных блоков, доступных для размещения
• Число свободных индексных дескрипторов, доступных
для размещения
• Флаги (флаг модификации, флаг режима
монтирования)
• Размер логического блока (512, 1024, 2048,…..)
• Массив номеров свободных индексных дескрипторов
• Массив номеров свободных блоков
7. Работа с массивами номеров свободных блоков
N свободно≠0
≠0
Выделение
свободных
блоков
0
8. Работа с массивом свободных ИД
• Освобождение ИД• Есть свободное место — номер элемент массива
• Нет свободного места — номер «забывается»
• Запрос ИД
• Поиск в массиве
Массив пустой — обновление массива
Массив не пустой — OK
9. Структура Индексного дескриптора
тип файла;•права доступа к файлу;
•количество жестких ссылок из каталогов;
•идентификатор пользователя и группы-владельца;
•размер файла в байтах;
•время последнего доступа к файлу;
•время последнего изменения файла;
•время последнего изменения индексного дескриптора файла;
•адресация блоков файлов.
10. Адресация блоков файла
Модельный пример: блок 512b; ссылка на блок 4b(10+128+1282+1283) х 512
1
10
10 11 12 13
…
…
1
128
128
…
1
1282
…
…
…
128 …
1
…
128
1
…
128
…
11. Файл каталог
Индексные дескрипторыroot
text
prog.c
usr
bin
unix
peter
…
1
bin
a.out
dev
17
…
21
1
.
17 .
1
..
1
..
21 text
25 peter
17 usr
19 bin
3
34 a.out
unix
76 bin
14 dev
Запись – 16 байтов:
• 2 – номер индексного дескриптора;
• 14 - имя
21 prog.c
12. Установление связей
dirdir 1
name 1
name 2
name 3
жёсткая связь
ИД 17577
символическая связь
ИД 17755
…/dir/name 1
13. Достоинства ФС модели версии System V
• Оптимизация в работе со списками номеровсвободных индексных дескрипторов и блоков
• Организация косвенной адресации блоков файлов
14. Недостатки ФС модели версии System V
• Концентрация важной информации в суперблоке• Проблема надежности
• Фрагментация файла по диску
• Ограничения на возможную длину имени файла
15. Модель версии FFS BSD
• Стратегия размещения• Внутренняя организация блоков
• Выделение пространства для файла
• Структура каталога FFS
• Квотирование блоков файлов и индексных
дескрипторов
16. Модель версии FFS BSD
СуперблокСуперблок
Суперблок
• копия суперблока
• информация о свободных блоках (битовый массив) и о
свободных индексных дескрипторах
• массив индексных дескрипторов (ИД)
• блоки файлов
17. Стратегия размещения (1)
• Размещение каталога:– поиск кластеров имеющих количество свободных
индексных дескрипторов превосходящую среднее
значение заполнения;
– среди найденных кластеров поиск кластера с
минимальным количеством каталогов – в нем создается
новый каталог.
• Равномерность использования блоков данных при
размещении файла:
– первые 10 блоков по возможности размещаются в том же
кластере, где расположен индексный дескриптор;
– оставшиеся блоки делятся на равные части (подряд
идущих блоков) и размещаются в разных кластерах.
18. Стратегия размещения (2)
• Размещение последовательных блоков файлов1
t
2
19. Внутренняя организация блоков
Блоки0
…
1
Фрагменты
0
1
2
3
4
5
6
7
…
Маска
0
0
0
0
0
1
1
1
…
N
20. Выделение пространства для файла
Дескриптор petya.txt…. Размер
…
5120
Дескриптор vasya.txt
Фрагмент
… Размер
08
….
00
16
4608
Фрагмент
04
12
18
Блоки данных, разделённые на фрагменты
0
1
2
3
4
5
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Дескриптор petya.txt
Дескриптор vasya.txt
…. Размер
Фрагмент
…. Размер
08
….
….
5632
00
20
4608
Фрагмент
04
12
18
Блоки данных, разделённые на фрагменты
0
1
2
3
4
5
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23
21. Предопределенные номера индексных дескрипторов
Зарезервированные номера ИД (на примере Ext4 Linux):0 - несуществующий ИД
1 - список повреждённых блоков
2 - корневой каталог
3 - квоты пользователей
4 – групповые квоты
…
8 - журнал
…
11 - первый незарезервированный ИД
Алгоритм доступа к содержимому файла на примере /dir/filename:
1) считываем ИД №2 (корневой каталог «/») из области индексных дескрипторов
2) считываем содержимое этого файла-каталога согласно секции адресации
содержимого файла в данном ИД
3) перебираем элементы (записи каталога) до момента пока не обнаружится запись с
именем dir (её ИД = ИД_a)
4-6) считываем ИД_a, содержимое этого файла-каталога и перебираем записи пока не
встретится имя filename (её ИД=ИД_b)
7-8) считываем ИД_b и содержимое целевого файла согласно секции адресации
содержимого в ИД_b