Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОперационныеСистемы, общие понятия.docx
Скачиваний:
140
Добавлен:
08.02.2015
Размер:
366.4 Кб
Скачать

Последние изменения в файловой системе ос unix

  1. Поиск файлов в каталогах производится линейно. Для увеличения производительности системы было добавлено кэширование имен. Прежде чем искать имя в каталоге система проверяет его наличие в кэше, если есть в кэше – в каталоге можно не искать.

  2. Разбиение диска на группы цилиндров (на группы блоков). У каждой группы создается супер-блок, индексные дескрипторы и блоки данных. Суть: хранить индексные дескрипторы и данные ближе друг к другу, чтобы снизить время, затрачиваемое жестким диском на перемещение головок.

  3. Использование не одного, а двух размеров блоков. Для файлов большого размера – блоки 1024 байт; для файлов маленького размера – 512 байт. Наличие блоков двух размеров позволяет обеспечивать эффективность операций чтения\записи для больших файлов и эффективное использование дискового пространства для небольших файлов.

Индексный дескриптор файла в ос unix. Таблица файлов. (6-2)

С каждым файлом в ОС UNIX связан индексный дескриптор. Это структура данных (64 байта), которая имеет следующие атрибуты:

  • права доступа к файлу для владельца, группы и прочих;

  • количество (счетчик) жестких ссылок;

  • идентификатор владельца ;

  • идентификатор группы;

  • размер файла в байтах;

  • время последнего доступа к файлу;

  • время последней модификации файла;

  • время последнего изменения прав доступа;

  • системный номер индексного дескриптора файла;

  • идентификатор файловой системы, в которой находится файл;

  • тип файла;

  • тип организации файла;

  • физический адрес на диске (обычно указатель на начало);

  • диспозиция файла.

Для каждой файловой системы формируются идентификаторы, и создается таблица индексных дескрипторов, в которой хранится информация обо всех файлах.

Каждая запись в таблице индексных дескрипторов содержит все перечисленные атрибуты файла и определяется по идентификатору файловой системы и номеру индексного дескриптора. Идентификатор присваивается файловой системе при выполнении команды mount.

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

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

(Здесь же рассказать весь следующий вопрос!)

Поддержка файлов ядром ос unix . (4-2)

(Здесь обязательно рассказать про три момента: таблица файлов, таблица пользовательских дескрипторов, таблица индексных дескрипторов)

Ядро ОС UNIX ведет также таблицы файлов, в которых отслеживаются все открытые в системе файлы. И каждый вновь создаваемый процесс содержит таблицу пользовательских дескрипторов файлов, где регистрируются все файлы, открытые процессом (таблица содержится в контексте процесса).

Когда процесс вызывает системный вызов open/creat чтобы открыть файл для чтения/записи, ядро преобразует имя файла в индексный дескриптор файла.

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

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

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

Значение счетчика ссылок индексного дескриптора файла увеличивается на единицу.

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

Затем ядро проверяет данные записи в таблице файлов, чтобы убедиться в том, что файл открыт в соответствии с режимом доступа. Ядро использует указатель из записи в таблице файлов для доступа к записи индексного дескриптора файлов. Оно использует указатель чтения/записи файла из таблицы файлов, чтобы определить с какого элемента должны происходить чтение или запись.

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