Система адресации данных ext2 — это одна из самых важных составляющих ФС. ОНА позволяет находить нужный файл среди множества как пустых, так и занятых блоков на диске

ФС ext2 использует следующую схему адресации блоков файла. Для хранения адреса файла выделено 15 полей, каждое из которых состоит из 4 байт. Если файл умещается в 12 блоков, то номера соответствующих кластеров непосредственно перечисляются в первых двенадцати полях адреса. Если размер файла превышает 12 блоков, то следующее поле содержит адрес кластера, в котором могут быть расположены номера следующих блоков файла. Таким образом, 13-е поле используется для косвенной адресации.

После добавления журналирующей функции в ext2fs воявилась новая журналируемая система ext3fs. Основная цель журналируемых Фс обеспечить быстрое восстановление системы после сбоя. Для этого используется механизм транзакции- неделимая последовательность операций.

Система ведет журнал, в котором отображается все действия с данными. В случае сбоя на основании журнала можно вернуть систему в безошибочное состояние.

19 Базовая файловая система s5fs.

Структура ФС Юникс на примере базовой ФС s5fs. В ЮНИКС разделы выступают в качестве независимых устройств. Доступ к ним осуществляется как к различным носителям данных. Каждый раздел имеет свою ФС. ФС s5fs занимает раздел диска и состоит из 3 основных компонентов:

1) Суперблок – содержит общую информацию о ФС.

2) Массив индексных дескрипторов ilist, содержит метаданные всех файлов ФС. Индексный дескриптор inode содержит статусную информацию о файле и указывает на расположение данных этого файла. Ядро обращается к inode по индексу в массиве iList, один inode является корневым, через него обеспечивается доступ к структуре каталогов.

3) Блоки хранения данных. Занимают большую часть дискового раздела. Размер блока кратен 512 байт.

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

Суперблок содержит:

тип файловой системы; размер файловой системы в логических блоках, включая сам суперблок, массив индексных дескрипторов и блоки хранения данных; размер массива индексных дескрипторов; количество свободных блоков; количество свободных индексных дескрипторов; флаги; размер логического блока файловой системы (512, 1024, 2048, 4096, 8192). список номеров свободных индексных дескрипторов; список адресов свободных блоков.

Размер индексного дескриптора обычно составляет 128 байтов.

Индексный дескриптор содержит информацию о расположении данных файла. Поскольку дисковые блоки хранения данных, располагаются не последовательно, индексный дескриптор должен хранить физические адреса всех блоков, принадлежащих данному файлу. Каждый дескриптор содержит 13 указателей. Первые 10 указателей непосредственно ссылаются на блоки данных файла. Если файл большего размера - 11-ый указатель ссылается на первый косвенный блок (indirection block) из 128 (256) ссылок на блоки данных. Если и этого недостаточно, 12-ый указатель ссылается на дважды косвенный блок, содержащий 128 (256) ссылок на косвенные блоки. Наконец последний, 13-ый указатель ссылается на трижды косвенный блок из 128 (256) ссылок на дважды косвенные блоки. Количество элементов в косвенном блоке зависит от его размера.

20 Управление процессами в ОС Unix. Типы процессов.

1) Системные процессы - являются частью ядра и всегда располагаются в оперативной памяти. Системные процессы не имеют соответствующих им исполняемых файлов и запускаются при инициализации ядра. Выполняемые инструкции находятся в ядре ОС. К таким процессам относятся различного рода диспетчера, кроме того к системным процессам относят процесс init.

2) Демоны – Неинтерактивные процессы, которые запускаются обычным образом, т.е. путем запуска соответствуюшей программы. Выполняются они в фоновом режиме. Обычно демоны запускаются при инициализации системы, после инициализации ядра. Обеспечивают работу различных подсистем. Демоны не связаны ни с одним из пользователей и не могут им непосредственно управляться. Большую часть времени демоны ожидают пока какой либо процесс не попросит их об определенной услуге.

3) Прикладные процессы. К ним относятся все остальные процессы. Они могут работать как в интерактивном режиме и в фоновом режиме. Они порождены в рамках пользовательского сеанса работы и время жизни= сеансу работы пользователя.

Атрибуты процессов.

Процесс в UNIX имеет ряд атрибутов, позволяющих ОС управлять его работой. Основные атрибуты представлены в следующих подразделах.

1) Идентификатор процесса - Каждый процесс имеет уникальный идентификатор PID, позволяющий ядру системы различать процессы.

2) Идентификатор родительского процесса- Идентификатор процесса, породившего данный процесс. Все процессы в системе, кроме системных процессов и процесса init, являющегося прародителем остальных процессов, порождены одним из существующих или существовавших ранее процессов.

3) Приоритет процесса - Относительный приоритет процесса, учитываемый планировщиком при определении очередности запуска. Фактическое же распределение процессорных ресурсов определяется приоритетом выполнения Относительный приоритет не изменяется системой на всем протяжении жизни процесса в отличие от приоритета выполнения, который динамически обновляется ядром.

4) Терминальная линия – терминал, с которым ассоциируется данный процесс. Процессы демоны не имеют ассоциированных с ним терминалов.

5) Реальный и эффективный идентификатор пользователя - Реальным идентификатором пользователя данного процесса является идентификатор пользователя, запустившего процесс. Эффективный идентификатор служит для определения прав доступа процесса к системным ресурсам. Обычно реальный и эффективный идентификаторы совпадают, т.е. процесс имеет в системе те же права, что и пользователь, запустивший его. Однако существует возможность задать процессу более широкие права, чем права пользователя, путем установки бита SUID, когда эффективному идентификатору присваивается значение идентификатора владельца выполняемого файла (например, пользователя root).

6) Реальный и эффективный идентификатор группы -Реальный идентификатор группы равен идентификатору основной или текущей группы пользователя, запустившего процесс. Эффективный идентификатор служит для определения прав доступа к системным ресурсам от имени группы. Обычно эффективный идентификатор группы совпадает с реальным. Но если для выполняемого файла установлен бит SGID, такой файл выполняется с эффективным идентификатором группы-владельца.

Состояние процессов:

1) Процесс выполняется в режиме задачи 2) В режиме ядра

3) Процесс не выполняется но готов к запуску, он обладает всеми ресурсами кроме вычислительных.

4) Процесс находится в состоянии сна, он ожидает в данный момент ресурсов.

5) Процесс только что создан и находится в переходном состоянии, то есть он уже существует но не готов к запуску и не находится в состоянии сна.

Процесс выполнил системный вызов на завершение и перешел в состояние зомби, т.е. как такового состоянии не существует но осталась след его выполнения.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: