Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LekOS.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
1.56 Mб
Скачать

Файловые системы vfat и fat32

Важная характеристика FAT – использование имен файлов в формате 8.3. К стандартной FAT добавились еще 2 разновидности от MS: VFAT и FAT32.

Сейчас FAT32 поддерживается Win NT/2k/Me и Linux. Имеются СУФ FAT32.

ФС VFAT появилась в Win 3.11 и была предназначена для выполнения файлового в/в в защищенном режиме. В Win 95 в VFAT добавилась поддержка длинных имен файлов. VFAT сохранила совместимость с FAT.

Недостатки FAT и VFAT: большие потери на кластеризацию при больших размерах логического диска. Это привело к разработке новой ФС с использованием FATFAT32.

FAT32 является полностью совместимой 32 разрядной ФС и содержит многочисленные усовершенствования и дополнения по сравнению с предыдущими реализациями FAT.

Отличие FAT32 в том, что она использует кластеры меньшего размера по сравнению с предыдущими версиями, поэтому по сравнению с FAT16 экономится дисковое пространство (10-15%).

Рис. 6.

Первые 11 байтов элемента каталога для хранения имени файла. Введены системные соглашения, и файлы определенного типа необходимо формировать с оговоренным расширением (COM – исполняемая двоичная программа, EXE – сложная программа).

В 11-ом байте атрибуты файла:

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

- атрибут каталога D(directory) – показывает, что данный элемент каталога указывает на подкаталог, а не на файл;

- атрибут «системный» S(system) – показывает, что это системный файл – часть ОС или специальной программы, составляющей часть защиты от копирования.

- H(hidden) – скрытый – файлы с атрибутом системный, которые не отображаются в обычном списке команды DIR;

- R(read only) – только для чтения – файл не подлежит изменению. Любая программа может изменить этот раздел, после чего MS DOS разрешит изменение этого файла. Этот атрибут – примитивная защита от ошибок пользователя (помогает избежать случайное удаление/изменение файла).

Наличие файла с атрибутом имеет определенный смысл.

На дисках FAT16 следующие за именем 10 байт не используются – это резерв. На диске FAT32 эти 10 байт содержат дополнительную информацию о файле. Из соображений совместимости поля FAT16 и FAT32 одинаковы для коротких имен файлов.

Для длинных имен файлов используется несколько элементов каталога. Т.о. появление длинных имен приводит к уменьшению количества файлов в каталоге корня. MS рекомендует избегать длинных имен файлов в корневых каталогах FAT. Длина полной файловой спецификации, включая путь и имя файла, ограничена 260 символами.

FAT32 справляется с длинными именами в корневом каталоге, но проблема с ограничением файловой спецификации остается. MS рекомендует ограничивать длинные имена 70-80 символами, чтобы оставить достаточно места для описания пути ( 180 символов).

Управление ресурсами в ос

Ресурсы системы состоят из повторно-используемых аппаратных и программных средств, таких как:

- основная и внешняя память;

- блокировки (прерывания), связанные с критическими областями;

- потребляемые ресурсы (межпроцессорные сообщения и управляющие сигналы, формируемые прерываниями);

Критической областью в одной или нескольких программах называется группа команд или часть команды, для выполнения которых требуется использовать некоторый разделяемый ресурс. Отсутствие этого ресурса может привести к блокировке программы или её зависанию. Чтобы этого не происходило, надо иметь средства управления критическими состояниями.

Состояние и стратегия выделения ресурса определяется дескриптором конкретного ресурса. Обычно дескриптор в ОС пишется в формате, распространяющемся на все ресурсы, и он имеет следующие поля:

1) указатель на список свободных устройств или сообщений;

2) указатель на список заблокированных процессов;

3) указатель на программу-распределитель данного ресурса;

Заблокированные процессы организуют ссылки на дескрипторы ресурсов через дескрипторы процессов и в каждой очереди списков дескрипторов существуют программы вставки и удаления элементов.

Для работы с ресурсами используются две примитивные операции: get«ресурс» и put«ресурс».

Процесс, требующий ресурс R формирует вызов или запрос: Call R Get(m)

где m – список параметров, т.е. кол-во необходимых устройств.

R – область памяти, в которой содержится сведения о ресурсе.

Запрашивающий ресурс процесс устанавливается в заблокированное состояние до тех пор пока не получит затребованный ресурс.

Процедура put либо возвращает ресурс, полученный предварительно, либо формирует потребляемый ресурс (сообщение). Операции put и get выполняются планировщиком задач как единое целое.

Алгоритм операций put/get.

Procedure get(m);

/* разрешить процедуре get быть текущим процессом ЦП – CP */

/* блокировать процесс CP и вставить данные m в блокированный

процесс CP */

CP.Status = ‘ blocked’;

CP.BlockData = m;

call waitList_Insert(CP.List)

/* связать CP со списком ожидания ресурсов */

/* вызвать распределитель ресурсов Allocator(K, PD)

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

PD(i) – указывает на процессы, запросы которых уже выполнены.

К – текущий номер запроса на ресурс */

if Allocator(K,PD) then

begin

/* выполнить процедуру get */

/* запустить текущий процесс CP */

CP.Status=’running;

/* включить текущий процесс CP в начало списка в соответствии с его приоритетом */

call ReadyList­­­­­­_Insert2(CP.List)

end

else

/*процедура get не выполняется. Найти другой процесс*/

call Schedular; /* необходимо обратиться к планировщику */

end.{get}

Процедура procedure put(m) вызывает распределитель Allocator(K, PD). Затем циклически от 1 до К переводит все процессы в состояние готовности, вставляя их в конец списка, в соответствии с их приоритетом, а затем вызывает планировщик, который вызывает готовый процесс с наивысшим приоритетом. Все потребляемые ресурсы обычно связаны с направленными сообщениями, включающими в себя операции get и put.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]