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

Ещё заметка про уровень буфферов

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

15. Файловая система. Основные структуры файловой системы (суперблок и далее везде). Решаемые ФС задачи. Различные подходы к организации структур ФС. Битовые маски и списки блоков и их использование. Реализация простой ФС (предлагаю на примере MINIX file system). Журналируемые ФС.

А вообще Крищенко сказал, что можно только про minix рассказать, поэтому minix немного поподробнее почитайте. http://iu7-world.ru/index.php?topic=1439.msg9434#msg9434

Не знаю, надо ли рассказывать про организацию дискового пространства, типа как выделяются блок и т.д., но в конце это есть.

37 Вопрос. Основные структуры файловой системы.

Ф айлы могут быть структурированы несколькими способами.

  1. Н еструктурированная последовательность байтов. ОС не интересуется содержимым файла, она видит только байты. Значения этим байтам присваивается программами пользовательского уровня. Это обеспечивает максимальную гибкость. Пользовательские программы могут помещать в них все что угодно и именовать любым удобным для них способом.

  1. Файл представляет последовательность записей фиксированной длины, каждая со своей внутренней структурой. Операция чтения возвращает одну запись, а операция записи обновляет или добавляет 1 запись.

  1. Ф айл представляет собой дерево записей, не обязательно одной и той же длины. Каждая запись содержит ключевое поле в фиксированной позиции. Дерево упорядочено по ключевому полю с целью быстрого поиска по заданному ключу. В животном примере Таненбаума можно запросить у системы запись с ключом КУРИЦА, не беспокоясь о точном положение записи в файле. Основной файловой операцией здесь является не получение следующей записи, а получение записи с указанным значение ключа. При добавление новой записи ОС, а не юзер должна решать , куда ее поместить. Подобные ФС характерны для больших mainframe.

Задачи файловой системы (from wiki)

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

  • именование файлов;

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

  • отображения логической модели файловой системы на физическую организацию хранилища данных;

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

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

  • слежение за блоками на диске и за свободными блоками

  • выделять и освобождать пространство для файлов

В многопользовательских системах появляется еще одна задача: защита файлов одного пользователя от несанкционированного доступа другого пользователя.

38 Вопрос. Различные подходы к организации структур фс

Как правило, файловые системы хранятся на дисках. Большинство дисков можно разбить на разделы, каждый из которых имеет независимую файловую систему. Сектор 0 диска называется главной загрузочной записью (Master Boot Record, MBR) и используется для загрузки компьютера. В конце главной загрузочной записи находится таблица разделов, содержащая начальные и конечные адреса всех разделов. Один из разделов таблицы может быть помечен как активный.

Системы, совместимые с персональными компьютерами, могут иметь не более четырех главных разделов, поскольку между главной загрузочной записью и границей первого 512-байтового сектора есть место под массив, включающий лишь 4 элемента. Некоторые операционные системы позволяют выделять в таблице разделов один расширенный раздел, указывающий на связанный список логических разделов. Такая структура позволяет иметь неограниченное количество дополнительных разделов. BIOS не может запустить операционную систему с логического раздела, поэтому начальную загрузку требуется проводить с главного раздела, чтобы загрузить код, управляющий логическими разделами.

В MINIX 3 применяется альтернативный подход к расширенным разделам. Раздел может содержать таблицу подразделов. Преимущество этого подхода заключается в том, что таблица подразделов имеет ту же структуру, что и главная таблица разделов, а, следовательно, обеими таблицами может управлять один и тот же код. Потенциально можно выделить собственные подразделы под корневое устройство, подкачку, двоичные системные файлы и пользовательские файлы.

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

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

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

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