Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Структура ФС базовых UNIX-подобных ОС




· Классический вариант: S5FS

Суперблок Массив индексных дескрипторов ilist Блоки хранения данных

 

В суперблоке хранятся:

stype – тип ФС

s_fsize – размер ФС

s_isize – размер массива индексных дескрипторов

s_tfree – число свободных блоков

s_tinode – число свободных индекс блоков Inode

s_fmod – флаги модификации

s_fronly – флаг режима

размер логического блока

размер в логических блоках (512, 1024, …)

список используемых/свободных inode

список адресов свободных блоков

Inode (индексные дескрипторы) – метаданные файла. Хранят информацию о файле, необходимую для обработки данных.

Массив индексных дескрипторов – содержит информацию о файле необходимую для обработки (при открытии файла ядро переписывает структуру данных в ОЗУ и размещает в таблице in_core inode (в ОЗУ)) dinode -> in_core inode (в ОЗУ)

Структура dinode: включает тип файла, доп атрибуты

di_mode – тип файла, доп атрибуты

di_nlinks – число ссылок на файл

di_uid, di_gid – id пользователя и группы

di_size – размер файла в байтах

di_atime, di_ctime – время последнего доступа/модификации

di_mtime – время последней модификации/доступа

di_addr[13] - адрес

di_inod – указатель наличия флага SUID. Чтобы прочитать файл др. польз-ля, не имея права чтения.

IFREG, IFDIR, IFBLK/IFCHR – константы, с помощью которых задаётся тип файла.

di_addr[13] – массив адресов дисковых блоков хранящихся данных.

di_addr[0] - di_addr[9] – непосредственная адресация по номеру блока (10 блоков)

di_addr[10] – косвенная адресация – указатель на блок (блок блоков)

di_addr[11] – двукратная косвенная адресация и т.д.

 

· Система FFS = ufs

Суперблок Массив свободных блоков и inode ilist Блоки хранения данных   Суперблок

 

Отличия от S5FS: предусмотрено логическое деление дискового разделения на 1 или несколько групп цилиндров (последовательно расположенных цилиндров).

На группу цилиндров отводится фиксированное число inode. Управляющая информация размешается с различным смещением от начала групп цилиндров (на одной пластине информация о всех группах). Смещение = один сектор относительно предыдущей группы. Для соседних групп информация размещается на различных пластинах диска. Это повышение надежности т.к. потеря одного сектора, цилиндра или пластины не приводит к потере всех копий суперблока.

Производительность ФС зависит от:

- размеров блока информации

- алгоритмов размещения свободных блоков на носителях и inode

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

Max размер фрагмента – 0,5 размера блока. Min – min единица адресации диска (= сектор)

Алгоритмы размешения зависят от ФС. Правила выбора алгоритма для повышения производительности:

- файл размещается в блоках хранения данных, принадлежащих одной группе цилиндров там, где его метаданные (это снижает tобращения);

- все файлы каталога находятся в одной группе цилиндров (это повышает vпослед. доступа);

- следующий подкаталог находится в группе цилиндров, отличной от родительского каталога (для равномерного распределения по диску);

- последующие блоки размещаются исходя из оптимизации физического доступа к диску (с некоторым смещением друг относительно друга в зависимости от скорости перемещения головки винчестера).

КПД ФС нормальное функционирование при > 10 % свободного места на диске

Запись каталога – структура данных.

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

d_ino - номер inode (индекс в массиве ilist)

d_reclen - длина записи

d_namlen - длина имени

d_name[] - имя файла

Здесь имя файла дополняется нулями до четырёх байтов. При удалении имени запись не удаляется, а присоединяется к предыдущей записи. В предыдущей записи меняется reclen (на длину удаляемого файла). Удаление первой записи (d_ino = NULL) -> не ограничивается длина имени.

 





Поделиться с друзьями:


Дата добавления: 2016-11-02; Мы поможем в написании ваших работ!; просмотров: 477 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Начинайте делать все, что вы можете сделать – и даже то, о чем можете хотя бы мечтать. В смелости гений, сила и магия. © Иоганн Вольфганг Гете
==> читать все изречения...

2286 - | 2070 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.