Операционные системы
Организация ФС UNIX. Виды файлов
Права доступа
Логическая структура каталогов
Модель версии System V
Структура суперблока
Работа с массивами номеров свободных блоков
Работа с массивом свободных ИД
Структура Индексного дескриптора
Адресация блоков файла
Файл каталог
Установление связей
Достоинства ФС модели версии System V
Недостатки ФС модели версии System V
Модель версии FFS BSD
Модель версии FFS BSD
Стратегия размещения (1)
Стратегия размещения (2)
Внутренняя организация блоков
Выделение пространства для файла
Предопределенные номера индексных дескрипторов
836.50K
Категория: ИнформатикаИнформатика

Операционные системы. Файловые системы (часть 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. Установление связей

dir
dir 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
English     Русский Правила