Файл: Литература по курсу аос (по всем вопросам должен быть представлен краткий рукописный конспект в общей тетради).docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 08.02.2024
Просмотров: 89
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
- ФС со структурированными файлами
-
за структуру файла отвечает ФС -
ФС видит файл как упорядоченную последовательность логических записей -
ФС дает приложению доступ к запрошенной записи (№ такой-то) -
применялась в ранних ОС (ОС\360, наприметр) -
на основе этого подхода работают СУБД -
наименьший элемент, которым оперирует прогер – логическая запись -
Их можно:-
читать последовательно (последовательный доступ) – неиндексированные файлы -
сразу указывать, какую надо (прямой доступ) – индексированные файлы. Для такой работу нужна специальная индексная таблица, где будет указано соответствие ключевых полей и адреса в памяти. -
Если этот индекс указывает на несколько полей, в которых нужную запись нужно искать последовательно – это индексно-последовательные файлы.
-
-
ОС не может поддерживать много разных логических структур – ограниченность.
Физическая организация данных на диске.
То, как представляет себе файловую систему пользователь, имеет мало общего с реальной организацией файловой системы: например, файл представляется целым документом, а на самом деле он разбросан кусочками по всему диску.
Физическая организация файловой системы – это принципы размещения файлов, каталогов и системной информации на реальном устройстве. Разные файловые системы имеют разную физическую организацию.
Основное устройство для хранения файлов – дисковый накопитель - состоит из пакета пластин, каждая из которых покрыта магнитным материалом.
На каждой пластине в двух сторон есть дорожки – tracks – где хранятся данные. Их количество зависит от типа диска. Нумерация дорожек – с внешнего края к центру.
Когда диск вращается, головка считывает или записывает данные с/на дорожку. Головки перемещаются над диском дискретными шагами, с дорожки на дорожку. Запись осуществляется за счет способности головки изменять магнитные свойства дорожки.
Совокупность дорожек одного радиуса – это цилиндр.
Каждая дорожка разбивается на фрагменты – сектора или блоки.
Все дорожки имеют одинаковое количество секторов, куда можно записать одинаковое число байт, меняется только плотность: тем выше, чем ближе к центру.
Наименьшая адресуемая
единица обмена данными с дисковыми устройствами – сектор.
Чтобы контроллер устройства мог найти нужные данные на диске, ему нужно сказать:
-
Номер дорожки -
Номер поверхности -
Номер сектора
Когда читаются данные, они читаются секторами – одновременно читается требуемая информация и избыточная.
ОС оперирует собственной единицей дискового пространства – КЛАСТЕРОМ. Место на диске файлу выделяется кластерами.
Форматирование:
Низкоуровневое форматирование: предшествует использованию диска, на диске отмечаются границы блоков (идентификационная информация). Не зависит от типа ОС.
Высокоуровневое форматирование: разметка диска под конкретный тип файловой системы ОС. Определяется размер кластера, также на диск записывается инфа, необходимая для работы ФС:
-
Доступное пространство -
Неиспользуемое пространство -
Границы областей, отведенные под файлы и каталоги -
Информация о поврежденных областях -
Запись на диск загрузчика ОС – проги, начинающей процесс инициализации ОС после включения питания.
Прежде, чем форматировать диск под конкретную ОС, его можно разбить на РАЗДЕЛЫ.
Раздел (логический раздел, логический диск) – непрерывная часть логического диска, представляемая пользователю как логическое устройство. Именно с ними (диск С, Д и тд) – работает пользователь.
Логическое устройство может быть создано на базе нескольких разделов, даже принадлежащих разным физическим дискам (это может быть сделано по-разному для разных целей, пример – RAID-массивы).
На разных логических устройствах (даже одного физического устройства) могут располагаться разные файловые системы.
У всех разделов одного диска:
-
Одинаковый размер сектора (низкоуровневое форматирование) -
Но может быть разные размер кластеров.
Система может помечать один раздел как активный (загружаемый) – и использовать его для загрузки ОС, а другие юзать только для данных.
Физическая организация файла.
Физическая организация файлв – это способ размещения файла на диске.
Основные критерии физической организации файла:
-
Скорость доступа к данным -
Объем адресной информации файла -
Степень фрагментированности дискового пространства -
Максимально возможный размер файла.
Варианты физической организации файла:
-
Непрерывное размещение – файлу предоставляется последовательность кластеров, которая образует непрерывный участок дисковой памяти.
Плюсы:
-
Высокая скорость доступа (минимальны затраты на поиск) -
Минимальный объем адресной инфы (достаточно хранить адрес первого кластера и объем файла) -
Не ограничен максимальный размер файла.
Минусы:
-
Файлы могут менять свой размер. И что делать? -
Фрагментация – диск превращается в лоскутное одеяло.
-
Связанный спискок кластеров дисковой памяти
В начале каждого кластера – указатель на следующий.
Плюсы:
-
Адресная инфа минимальна (расположение файла задается номером первого кластера) -
Нет фрагментации на уровне кластеров -
Можно менять размер файла, наращивая число кластеров
Минусы:
-
Сложно добраться до произвольного места файла (надо последовательно читать все кластеры) -
Количество данных в кластера не равно степени двойки (одно слово – на номер следующего кластера), а это неудобно для многих программ
-
Связанный список индексов – ФС ФАТ.
Это по сути модификация предыдущего способа:
- У каждого кластера есть свой ИНДЕКС.
- Все индексы располагаются в особой области памяти – в МСДОС – это таблица ФАТ, которая занимает один кластер.
- Номер первого кластера файла хранится в записи каталога файлов, с другими его характеристиками
- Остальная адресная инфа хранится не в кластерах, а в индексах ФАТ.
- Когда все кластеры свободны, все индексы = 0;
- При заполнении диска файлами, индексы принимают значение номера следующего индекса файла либо специального значения – указателя на конец файла.
Плюсы:
-
Минимальность адресной инфы -
Нет фрагметрации на уровне кластеров (только неиспользованные области в конце кластеров) -
Нет проблем с изменением размера файла -
Не надо последовательно считывать кластеры для доступа к произвольному участку файла. -
Данные файла заполняют кластер целиком – размер равен степени двойки.
-
Перечисление кластеров, занимаемых файлов – этот перечень служит и адресом файла (используется в OS UNIX s5 & ufs)
Минусы:
-
Длина адреса зависит от размера файла и может быть слишком большой.
Плюсы:
-
Прямая адресация – высокая скорость доступа к произвольному месту файла.
В сочетании прямой и косвенной адресации последний метод используется в ФС ufs: картинка для кластера размером в 8 кбайт
Также он используется в NTFS – только здесь адресуются не кластеры, а смежные непрерывные области кластеров – отрезки или экстенты. ОС всегда старается размещать инфу рядом, это здорово сокращает размер адресной информации.
Файловые операции.
ФС предоставляет пользователям набор операций, для работы с файлами, оформленный в виде системных вызовов.
Набор состоит из вызовов create, read, write и других.
Чаще всего с открытым файлом пользователь выполняет не одну операцию, а несколько операций (копирует фрагмент, потом другой фрагмент, что-то пишет, что-то удаляет и т.д.)
Для всех этих операций ОС нужно сделать:
-
Универсальные действия:
-
По символьному имени найти характеристики файла -
Скопировать их в отдельную область оперативной памяти -
Проверить права пользователя для операции -
Очистить область памяти после завершения операции.
-
Уникальные действия – собственно то, что требуется для данной операции.
Есть 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), и расширяет ее возможности по поддержке больших дисков и файлов, а также повышает ее надежность. Поэтому эти две системы используют очень близкую физическую модель файлосовй системы.
В Юникс кластер называется блоком.