Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AOS_otvety_1.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆
  1. Универсальные действия:

  • По символьному имени найти характеристики файла

  • Скопировать их в отдельную область оперативной памяти

  • Проверить права пользователя для операции

  • Очистить область памяти после завершения операции.

  1. Уникальные действия – собственно то, что требуется для данной операции.

Есть 2 способа выполнения действий над файлами:

- stateless – для каждой операции выполняются как универсальные, так и уникальные действия

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

Большинство ФС юзают второй способ, хотя первый обладает одним плюсом: надежностью и устойчивостью к системным сбоям. Поэтому он используется в некоторых распределенных сетевых системах, где сбои изза отказа пакетов или сетевых узлов более вероятны.

При втором способе в ФС вводятся два специальных системных вызова:

Open

  • Преобразует символьное имя в числовое

  • Копирует характеристики

  • Проверяет права пользователя

Close

  • Освобождает буфер памяти

Стандартные файлы ввода и вывода, перенаправление ввода-вывода.

Понятия стандартного файла ввода, вывода и ошибок были введены в ОС ЮНИКС, но существуют и в Виндовс.

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

При создании любого процесса ОС помещает в его таблицу открытых файлов три записи:

  • 0 – стандартный файл ввода

  • 1 – стандатрный файл вывода

  • 2 – стандартный файл ошибок

Соответсвтенно создаются и 3 структуры типа file, на которые указывают эти три записи таблицы.

Доступ к этим файлам осуществляется так (Си):

Read(stdio, buffer, nbytes);

Write(stdout, buffer, nbytes);

Изначально все эти три файла связываются ОС с одним файлом: терминалом, с которого пользователь вошел в систему.

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

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

Стандартные файлы используются не только интерпретатором команд, но и самими командами: если команда читает данные из стандартного файла ввода и выводит данные в стандартный файл вывода, она называется ФИЛЬТРОМ.

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

Перенаправление вывода: dir > txt.txt

Перенаправление ввода: dir < txt.txt

Файловые системы Unix (s5 и ufs).

ОС ufs (Unix File System) является развитием системы s5(System V), и расширяет ее возможности по поддержке больших дисков и файлов, а также повышает ее надежность. Поэтому эти две системы используют очень близкую физическую модель файлосовй системы.

В Юникс кластер называется блоком.

Раздел диска, где размещается ФС s5 делится на такие области:

  • Загрузочный блок

  • Суперблок (superblock) – общая инфа о ФС:

    • Размер ФС

    • Размер области индексных дескрипторов

    • Число индексных дескрипторов

    • Список свободных блоков

    • Список свободных индексных дескрипторов и тд

  • Область индексных дескрипторов (inode list):

    • Порядок расположения дескрипторов соответствует их номерам

  • Область данных:

    • Корневой каталог

    • Файлы-каталоги

    • Обычные файлы

    • Специальных файлов как таковых НЕТ, есть только индексные дескрипторы спец формата, а места они не занимают.

Особенность этой ФС – отделение имени файла от его характеристик, которые хранятся в ИНДЕКСНОМ ДЕСКРИПТОРЕ (за счет этого один файл может входить в несколько каталогов)

Индексный дескриптор:

  • Размер – 64 байта

  • Хранит инфу о:

    • Владельце файла

    • Типе файла (обычный, каталог, специальный, конвейер, символьная связь)

    • Права доступа

    • Временные характеристики (создание, модификаци и тд)

    • Число ссылок на данный дескриптор (количество псевдонимов файла)

    • Адресная информация (как организована адресная информация, см. Варианты физической организации файла, вариант 4)

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

  • Имеет номер – уникальное имя файла

  • Дескрипторы расположены в строгом соответствии со своими номерами

  • Соответствие между номером дескриптора и символьным именем – через иерархию каталогов.

Запись о файле в каталоге:

Очень проста – только имя и номер дескриптора:

Нет никаких ограничений размера корневого файла.

Доступ к файлу – путем последовательного просмотра всей цепочки каталогов, начиная с корневого, адрес которого известен системе:

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

FAT

Логический раздел, оптимизированный под ФАТ, состоит из:

  • Загрузочного сектора – программа начальной загрузки ОС (вид сектора зависит от оси)

  • Основная копия ФАТ – информация о размещении файлов и каталогов на диске

  • Резервная копия ФАТ

  • Корневой каталог – фиксированная область размером в 32 сектора (16 кбайт) – здесь можно хранить 512 записей о каталогах и файлах (каждая запись каталога состоит из 32 байт)

  • Область данных

Система поддерживает 2 типа файлов:

  • Каталог

  • Обычный файл

ФС распределяет память только из области данных.

Таблица ФАТ:

Состоит из массива индексных указателей, количество которых равно количеству кластеров данных – однозначное соответствие.

Значения индексного указателя в таблице ФАТ:

  • Свободен

  • Занят и не последний (содержит номер следующего кластера)

  • Последний кластер

  • Дефектный кластер

  • Резервный кластер

Таблица ФАТ – общая для всех файлов раздела.

Размер кластеров:

  • Чем больше кластер – тем меньше адресной информации и выше скорость обмена

  • Но тем больше фрагментация

  • Выбирается компромисс: 512 байт – 64 кБайт (1-128 секторов);

Разрядность индексного указателя должна позволить задать максимальный номер кластера для диска определенного объема:

ФАТ 12 – 12 разрядов – 4096 кластеров – для дисков не более 16 Мбайт

ФАТ 16 – 16 разрядов – 65 536 кластеров – для дисков не более 512 Мбайт

ФАТ 32 – 32 разряда – больше 4 млрд кластеров – для больших дисков

При удалении файла в ФАТ информация о первом кластере файла не стирается, только в каталоге помечается, что файл свободен и обнуляются все индексные дескрипторы. Поэтому недавно удаленную информацию можно хотя бы частично (то, что хранится в последовательных кластерах) удалить.

Резервная копия ФАТ всегда синхронизируется с основной, поэтому с ее помощью неправильные пользовательские действия, которые выглядели как правильные с точки зрения ОС не восстановить.

Метод хранения адресной инфы в ФАТ не надежен – один сбой – разрыв списка индексных укзателей – все пропало, инфа о последующих записях потеряна.

Имена файлов в ФАТ:

12 и 16 – схема 8.3 – 8 символов на имя файла и 3 – на расширение.

Потом в ФАТ 16 для НТ ввели длинное имя – до 255 символом.

ФАТ в ПК сегодня поддерживается ради обратной совместимости, но не используется. Зато используется на флешках.

NTFS

Отличия НТФС:

  • Поддержка больших файлов и больших дисков (до 2 в 64 байт)

  • Восстанавливаемость после сбоев и отказов

  • Высокая скорость операций (втч и для больших дисков)

  • Низкий уровень фрагментации

  • Гибкая структура (добавление новых типов файлов и тд)

  • Устойчивость к отказам дисковых накопителей

  • Поддержка длинных имен

  • Контроль доступа к файлам и каталогам

Логический раздел здесь называется ТОМОМ.

Все пространство НТФС – это либо файл, либо часть файла.

Основа НТФС – MFT – Master File Table – главная таблица файлов.

Все файлы тома идентифицируются уникальным номером файла.

Том состоит из последовательности кластеров (не только его область данных, а весь-весь том)

Порядковый номер каждого кластера в томе – это его ЛОГИЧЕСКИЙ номер LCN.

Внутри каждого файла кластеры тоже пронумерованы – это ВИРТУАЛЬНЫЙ номер кластера – VCN

Единица распределения дисковоко пространства – ОТРЕЗОК – непрерывная область кластеров.

Для адресации файла ФС юзает пару:

  • LCN первого кластера файла и

  • k – количество кластеров в отрезке.

Чтобы найти какой-то кластер внутри файла, нужен еще VCN этого кластера.

Номер кластера хранится в 64 разрядных указателях – максимальный размер файла – 2 64 кластеров.

Структура тома НТФС:

  • Загрузочный блок

    • Блок параметров БИОС

    • Количество блоков в томе

    • Начальный LCN основной копии МФТ

    • Зеркальную копию МФТ

  • Первый отрезок МФТ

    • 16 стандартных записей о системных файлах NTFS, которые создаются при форматировании:

      • Главная таблица файлов – полный список файлов тома НТФС

      • Копия главной таблицы файлов – зеркальная копия первых трех записей МФТ

      • Журнал (для восстановления системы)

      • Том (имя тома, версия НТФС и другая инфа о томе)

      • Таблица имен, номеров и описаний атрибутов

      • Индекс корневого каталога

      • Битовая карта использованных кластеров тома

      • Загрузочный сектор раздела

      • Список плохих кластеров

      • Таблица квот использования пространства для разных пользователей

      • Таблица преобразования регистра символов (для Юникод)

  • Ровно посередине тома – копия загрузочного блока

  • Системные файлы

  • Другие отрезки МФТ

Если файл маленький, он целиком помещается в записи МФТ.

Если большой – то в МФТ – его резидентная часть, а нерезидентная часть – в отдельном отрезке тома. Адресная инфа, где искать нерезидентную часть – в атрибутах резидентной части.

Структура файла НТФС:

В НТСФ у файла нет ничего, кроме атрибутов. Файл по сути состоит их атрибутов.

Атрибуты:

  • Список атрибутов (если атрибуты не помещаются в основной записи)

  • Имя файла

  • Имя в формате 8.3

  • Версия файла

  • Дескриптор безопасности

  • Версия тома (для системных файлов тома)

  • Имя тома

  • Данные

  • Битовая карта использованеия блоков тома

  • Корень

  • Нерезидентные части файла

  • Прочая инфа

Файлы бывают:

  • Небольшие файлы – целиком помещаются в МФТ ~2 Кбайта

  • Большой файл – в атрибуте Данные есть признак того, что файл не резидентен (адреса: LCN, VCN, k)

  • Сверхбольшой файл – в списке атрибутов можно указать несколько атрибутов либо использовать двойную адресацию (нерезидентный атрубут ссылается на другие нерезидентные атрибуты)

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

Каталог в НТФС – это вход в таблицу МФТ, который содержит атрибут Index Root (корень). Здесь хранится список всех файлов в каталоге – это ускоряет поиск файлов. Искать и сортировать файлы можно по любому из атрибутов.

Каталоги по размеру делятся на:

  • Небольшие каталоги – весь список файлов резидентный.

  • Большие каталоги – список файлов не помещается в запись, и требует нерезидентной формы хранения. Начало списка хранится в МФТ, и имена файлов являются узлами БИНАРНОГО ДЕРЕВА. Это здорово ускоряет поиск, тк. Поиск не линейный, а бинарный.

Контроль доступа к файлам в системах Unix и в Windows NT/2000/XP

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