Файл: Литература по курсу аос (по всем вопросам должен быть представлен краткий рукописный конспект в общей тетради).docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 08.02.2024

Просмотров: 89

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

- ФС со структурированными файлами

  • за структуру файла отвечает ФС

  • ФС видит файл как упорядоченную последовательность логических записей

  • ФС дает приложению доступ к запрошенной записи (№ такой-то)

  • применялась в ранних ОС (ОС\360, наприметр)

  • на основе этого подхода работают СУБД

  • наименьший элемент, которым оперирует прогер – логическая запись

  • Их можно:

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

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

    • Если этот индекс указывает на несколько полей, в которых нужную запись нужно искать последовательно – это индексно-последовательные файлы.

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



Физическая организация данных на диске.


То, как представляет себе файловую систему пользователь, имеет мало общего с реальной организацией файловой системы: например, файл представляется целым документом, а на самом деле он разбросан кусочками по всему диску.
Физическая организация файловой системы – это принципы размещения файлов, каталогов и системной информации на реальном устройстве. Разные файловые системы имеют разную физическую организацию.
Основное устройство для хранения файлов – дисковый накопитель - состоит из пакета пластин, каждая из которых покрыта магнитным материалом.
На каждой пластине в двух сторон есть дорожки – tracks – где хранятся данные. Их количество зависит от типа диска. Нумерация дорожек – с внешнего края к центру.
Когда диск вращается, головка считывает или записывает данные с/на дорожку. Головки перемещаются над диском дискретными шагами, с дорожки на дорожку. Запись осуществляется за счет способности головки изменять магнитные свойства дорожки.
Совокупность дорожек одного радиуса – это цилиндр.

Каждая дорожка разбивается на фрагменты – сектора или блоки.

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


Наименьшая адресуемая
единица обмена данными с дисковыми устройствами – сектор.

Чтобы контроллер устройства мог найти нужные данные на диске, ему нужно сказать:

  • Номер дорожки

  • Номер поверхности

  • Номер сектора

Когда читаются данные, они читаются секторами – одновременно читается требуемая информация и избыточная.
ОС оперирует собственной единицей дискового пространства – КЛАСТЕРОМ. Место на диске файлу выделяется кластерами.
Форматирование:

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

  • Доступное пространство

  • Неиспользуемое пространство

  • Границы областей, отведенные под файлы и каталоги

  • Информация о поврежденных областях

  • Запись на диск загрузчика ОС – проги, начинающей процесс инициализации ОС после включения питания.


Прежде, чем форматировать диск под конкретную ОС, его можно разбить на РАЗДЕЛЫ.

Раздел (логический раздел, логический диск) – непрерывная часть логического диска, представляемая пользователю как логическое устройство. Именно с ними (диск С, Д и тд) – работает пользователь.
Логическое устройство может быть создано на базе нескольких разделов, даже принадлежащих разным физическим дискам (это может быть сделано по-разному для разных целей, пример – RAID-массивы).
На разных логических устройствах (даже одного физического устройства) могут располагаться разные файловые системы.
У всех разделов одного диска:

  • Одинаковый размер сектора (низкоуровневое форматирование)

  • Но может быть разные размер кластеров.


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

Физическая организация файлв – это способ размещения файла на диске.

Основные критерии физической организации файла:

  • Скорость доступа к данным

  • Объем адресной информации файла

  • Степень фрагментированности дискового пространства

  • Максимально возможный размер файла.



Варианты физической организации файла:

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

Плюсы:

  • Высокая скорость доступа (минимальны затраты на поиск)

  • Минимальный объем адресной инфы (достаточно хранить адрес первого кластера и объем файла)

  • Не ограничен максимальный размер файла.

Минусы:

  • Файлы могут менять свой размер. И что делать?

  • Фрагментация – диск превращается в лоскутное одеяло.




  1. Связанный спискок кластеров дисковой памяти

В начале каждого кластера – указатель на следующий.

Плюсы:

  • Адресная инфа минимальна (расположение файла задается номером первого кластера)

  • Нет фрагментации на уровне кластеров

  • Можно менять размер файла, наращивая число кластеров

Минусы:

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

  • Количество данных в кластера не равно степени двойки (одно слово – на номер следующего кластера), а это неудобно для многих программ




  1. Связанный список индексов – ФС ФАТ.

Это по сути модификация предыдущего способа:

- У каждого кластера есть свой ИНДЕКС.

- Все индексы располагаются в особой области памяти – в МСДОС – это таблица ФАТ, которая занимает один кластер.

- Номер первого кластера файла хранится в записи каталога файлов, с другими его характеристиками

- Остальная адресная инфа хранится не в кластерах, а в индексах ФАТ.

- Когда все кластеры свободны, все индексы = 0;

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

Плюсы:

  • Минимальность адресной инфы

  • Нет фрагметрации на уровне кластеров (только неиспользованные области в конце кластеров)

  • Нет проблем с изменением размера файла

  • Не надо последовательно считывать кластеры для доступа к произвольному участку файла.

  • Данные файла заполняют кластер целиком – размер равен степени двойки.




  1. Перечисление кластеров, занимаемых файлов – этот перечень служит и адресом файла (используется в OS UNIX s5 & ufs)

Минусы:

  • Длина адреса зависит от размера файла и может быть слишком большой.


Плюсы:

  • Прямая адресация – высокая скорость доступа к произвольному месту файла.


В сочетании прямой и косвенной адресации последний метод используется в ФС ufs: картинка для кластера размером в 8 кбайт



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

ФС предоставляет пользователям набор операций, для работы с файлами, оформленный в виде системных вызовов.

Набор состоит из вызовов create, read, write и других.
Чаще всего с открытым файлом пользователь выполняет не одну операцию, а несколько операций (копирует фрагмент, потом другой фрагмент, что-то пишет, что-то удаляет и т.д.)
Для всех этих операций ОС нужно сделать:

  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), и расширяет ее возможности по поддержке больших дисков и файлов, а также повышает ее надежность. Поэтому эти две системы используют очень близкую физическую модель файлосовй системы.
В Юникс кластер называется блоком.