Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Материалы по конспектам 2011.docx
Скачиваний:
13
Добавлен:
21.04.2019
Размер:
967.53 Кб
Скачать

26. Структура фс

bin – системные команды и утилиты общего назначения;

dev – специальные файлы устройств. Группируются по типам устройств (дисплеи, диски …);

etc – информационный каталог. Системные конфигурационные файлы, утилиты, скрипты инициализации системы;

lib – библиотечные файлы /lib/lib* * - типы библиотек;

lost+found – "потерянные" файлы - те, структура и содержимое которых являются правильными, однако для которых отсутствует имя в каком-либо из каталогов;

mnt – каталог результатов монтировок гибких дисков, дисководов;

home - домашний каталог пользователя;

proc -- специальные файлы процессов;

root -- домашний каталог root'а;

sbin -- системные бинарные файлы, необходимые для запуска системы;

usr - каталоги и обычные файлы, содержащие информацию, привлекаемую при решении задач пользователя;

usr/bin – исполнительные утилиты, ориентированные на пользователя;

usr/include – заголовочные файлы;

sys -- средства для изменения конфигурации системы;

tmp - общий каталог для хранения временных файлов;

var – хранение временных файлов различных сервисных подсистем – системы печати, электронной почты и т. д.

Владельцы файлов – пользователь и группа. Права владельца – гибкие. Права доступа для 3-х классов: владелец (u), группа (g), все остальные (o). Типы прав: чтение (r), запись (w), исполнение (x). Изменение прав: добавить (+), отнять (-), присвоить (=).

Утилита изменения прав доступа – chmod. Например, chmod u+r file. Смена владельца файла – chown.

При выполнении некоторой утилиты, она может потребовать права на каталог, если мы переходим в другой каталог cd – нужно иметь право на исполнение. Для того, чтобы вывести все файлы каталога (ls), достаточно права чтения каталога. Для выяснения размера: чтение + исполнение, если script – права на исполнение и для каталога, и для файла + чтение для файла (script – сценарий). Выполнить программу – исполнение для каталога и файла. Удалить файл из каталога – запись и исполнение для каталога

27. Структура фс базовых 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) -> не ограничивается длина имени.