Top-office11.ru

IT и мир ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

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

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

Новая файловая система имеет многоуровневую структуру (рисунок 7), на верхнем уровне которой располагается так называемый переключатель файловых систем (в Windows 95, например, такой переключатель называется устанавливаемым диспетчером файловой системы — installable filesystem manager, IFS). Он обеспечивает интерфейс между запросами приложения и конкретной файловой системой, к которой обращается это приложение. Переключатель файловых систем преобразует запросы в формат, воспринимаемый следующим уровнем — уровнем файловых систем.

Рис. 8. Архитектура современной файловой системы

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

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

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

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

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

Не нашли то, что искали? Воспользуйтесь поиском:

Современные архитектуры файловых систем.

Современные ОС предоставляют пользователю возможность работать сразу с несколькими ФС. ФС в традиционном понимании становится частью более общей многоуровневой структуры:

На верхнем уровне располагается т.наз. диспетчер файловых систем (например, в Windows 95 этот компонент называется installable filesystem manager). Он связывает запросы прикладной программы с конкретной файловой системой.

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

Та же идея поддержки нескольких ФС в рамках одной ОС может быть реализована по-другому, например, исходя из концепции виртуальной файловой системы. Виртуальная файловая система (vfs) представляет собой независимый от реализации уровень и опирается на реальные файловые системы (s5fs, UFS, FAT, NFS, FFS, Ext2fs). При этом возникают структуры данных виртуальной файловой системы типа виртуальных индексных узлов vnode, которые обобщают индексные узлы конкретных систем.

11) Алгоритмы планирования в операционных системах.

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

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

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

Алгоритмы планирования.

1. First-Come, First-Served(FCFS —первым пришел, первым обслужен). Представим себе, что процессы, находящиеся в состоянии готовность, выстроены в очередь. Когда процесс переходит в состояние готовность, он помещается в конец этой очереди. Выбор нового процесса для исполнения осуществляется из начала очереди с удалением оттуда ссылки на него. Очередь подобного типа имеет в программировании специальное наименование – FIFO, сокращение от First In, First Out (первым вошел, первым вышел).

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

Преимуществом алгоритма FCFS является легкость его реализации, но в то же время он имеет и много недостатков. Если у нас есть процесс с длительным временем исполнения, то короткие процессы, перешедшие в состояние готовность после длительного процесса, будут очень долго ждать начала выполнения. Поэтому алгоритм FCFS практически неприменим для систем разделения времени – слишком большим получается среднее время отклика в интерактивных процессах.

Читать еще:  Архитектура фон неймана и гарвардская архитектура

2. Round Robin (RR).Модификацией алгоритма FCFS является алгоритм, получивший название Round Robin (Round Robin – это вид детской карусели). По сути дела, это тот же самый алгоритм, только реализованный в режиме вытесняющего планирования. Можно представить себе все множество готовых процессов организованным циклически – процессы сидят на карусели. Карусель вращается так, что каждый процесс находится около процессора небольшой фиксированный квант времени, обычно 10 – 100 миллисекунд. Пока процесс находится рядом с процессором, он получает процессор в свое распоряжение и может исполняться.

На производительность алгоритма RR сильно влияет величина кванта времени. При очень больших величинах кванта времени, когда каждый процесс успевает завершиться до возникновения прерывания по времени, алгоритм RR вырождается в алгоритм FCFS. При очень малых величинах создается иллюзия того, что каждый из n процессов работает на собственном виртуальном процессоре с производительностью

1/n от производительности реального процессора.

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

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

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

3. Приоритетное планирование. При приоритетном планировании каждому процессу присваивается определенное числовое значение – приоритет, в соответствии с которым ему выделяется процессор. Процессы с одинаковыми приоритетами планируются в порядке FCFS.

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

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

4. Алгоритм SJF (Shortest-Job-First) представляет собой частный случай приоритетного планирования. Для алгоритма SJF в качестве приоритета выступает оценка продолжительности выполнения процесса. Чем меньше значение этой оценки, тем более высокий приоритет имеет процесс.

5. Многоуровневые очереди (Multilevel Queue). Для систем, в которых процессы могут быть легко рассортированы по разным группам, был разработан другой класс алгоритмов планирования. Для каждой группы процессов создается своя очередь процессов, находящихся в состоянии готовность. Этим очередям приписываются фиксированные приоритеты. Например, приоритет очереди системных процессов устанавливается выше, чем приоритет очередей пользовательских процессов. А приоритет очереди процессов, запущенных студентами, ниже, чем для очереди процессов, запущенных преподавателями. Это значит, что ни один пользовательский процесс не будет выбран для исполнения, пока есть хоть один готовый системный процесс, и ни один студенческий процесс не получит в свое распоряжение процессор, если есть процессы преподавателей, готовые к исполнению. Внутри этих очередей для планирования могут применяться самые разные алгоритмы. Так, например, для больших счетных процессов, не требующих взаимодействия с пользователем (фоновых процессов), может использоваться алгоритм FCFS, а для интерактивных процессов – алгоритм RR.

Подобный подход, получивший название многоуровневых очередей, повышает гибкость планирования: для процессов с различными характеристиками применяется наиболее подходящий им алгоритм.

Языки программирования и методы трансляции:

Архитектура файловой системы

Лабораторная работа № 4

Файловая система. Доступ к файлам

Функции файловой системы

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

Основными задачами файловой системы являются:

· Обеспечение прав доступа к данным

· Создание однородной среды для разных носителей информации

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

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

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

Системы управления файлами

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

Читать еще:  Программный маршрутизатор на linux с веб интерфейсом

Основные задачи системы управления файлами:

· Соответствие требованиям управления данными и требованиям со стороны пользователей, включающим возможность хранения данных и выполнения рассмотренных ранее операций с ними

· Гарантированные корректности данных, содержащихся в файле

· Оптимизация производительности, как с точки зрения системы (пропускная способность), так и с точки зрения пользователя (время отклика)

· Поддержка ввода-вывода для различных типов устройств и хранения информации

· Минимизация или исключение возможных потерь или повреждений данных

· Обеспечение стандартизированного набора подпрограмм интерфейса ввода-вывода

· Обеспечение поддержки коллективного пользования несколькими пользователями многопользовательской системы

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

Каждый пользователь должен иметь следующие возможности:

1. Создавать, удалять, читать и изменять файлы

2. Иметь контролируемый доступ к файлам других пользователей

3. Управлять доступом к своим файлам

4. Реструктурировать файлы таким способом, который наиболее подходит для решения стоящих перед ним задач

5. Перемещать данные между файлами

6. Резервировать и восстанавливать файлы в случае повреждения

7. Иметь доступ к файлам по символьным именам

Архитектура файловой системы

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

Смешаннный файлПоследовательныйИндексно-последовательныйИндексированныйХэшированный
Логический ввод/вывод
Диспетчер базового ввода/вывода
Базовая файловая система
Драйвер дискаДрайвер стримера

Рисунок 1 – Архитектура файловой системы

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

Диспетчер базового ввода/вывода отвечает за начало и завершение файлового ввода-вывода. На этом уровне поддерживаются управляющие структуры, связанные с устройством ввода-вывода, планированием и статусом файлов.

Логический ввод/вывод предоставляет пользователям и приложениям доступ к записям.

Рассмотрим пять фундаментальных способов организации файлов:

· Файл прямого доступа (хешированный)

Рисунок 2 – Типы файлов

Смешанный файл

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

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

Последовательный файл

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

Одно определенное поле, обычно – первое поле в каждой записи, называется ключевым полем, которое идентифицирует запись уникальным образом, так что ключевые значения различных записей всегда различны. Более того, записи сохраняются в «ключевой» последовательности: в алфавитном порядке для текстового ключа и в числовом порядке для числового ключа.

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

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

Современная архитектура файловых систем

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

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

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

Выделяются два типа драйверов ФС:

1. Локальная FSD (File System Driver), управляющая дисками, подключенными непосредственно к компьютеру. Например, FAT, NTFS, CDFS.

2. Сетевые FSD, позволяющая обращаться в дисковым томам удаленного компьютера.

Локальный FSD должен зарегистрироваться у диспетчера вводавывода. При первом обращении к тому диспетчер вводавывода, вызывается драйвер для распознавания – анализа загрузочного сектора тома и метаданных ФС для проверки её целостности.

Приложения (множество) > Диспетчер в/в ßà Драйвер ФС ßà Драйвера устройств >Логический том (раздел)

Читать еще:  Трехуровневая архитектура клиент сервер

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

Лекция 8

Файловая система FAT

Чтобы уменьшить общее количество единиц хранения используется объединение смежных секторов диска — Cluster. Его размер – степень двойки и определяется размером тома при форматировании диска.

Первый сектор жесткого диска (сектор 1, дорожка 0) содержит Master Boot Record- программа, помещаемая в ОС во время загрузки. Физический диск может быть разбит на части (разделы или томы). Таблица разделов диска Partition Table располагается в конце первого сектора и содержит 4 элемента, описывающие разделы диска

СмещениеРазмерСодержимое
+0Признак активного раздела 0 – не активный, 80h активный
+1Номер стороны для начального сектора раздела
+2Номер сектора и дорожки (первых) (формат INT 13h)
+4Код файловой системы
+5Номер стороны для последнего сектора раздела
+6Номер сектора и дорожки (послед) (формат INT 13h)
+8Относительный номер начала раздела
+16Размер раздела в секторах

Для вычисления относительного номера сектора используется формула

RelSet = (Cyl * Sect * Head) + (Head * Sect) + Sect

Cyl – номер дорожки

Sect – номер сектора на дорожке

Head – номер головки

Как правило, разделы начинаются с четных номеров дорожек, за исключением первого.

Структура разделов под FAT выглядит следующим образом:

Загрузочный сектор Параметры BIOSFATFAT (копия)Корневой каталогОбласть файлов

FAT — File Allocation Table – таблица размещения файлов.

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

File1
File2
File3
FFFF
FFFF
FFFF
2 3 4 5 6 7 8 9
Элементы каталога

FAT32 использует 32х разрядные идентификаторы кластеров, но резервируют старшие 4 бита как раз на эти ссылки. Эффективный размер – 28.

Максимальный размер файла – 4Гб.

Файловая система NTFS

Использует 64х разрядные номера кластеров.

Первые 16 секторов раздела NTFS распределены под загрузочную запись и код загрузки. Дубликат сектора загрузочной записи находит в логическом центре диска. Для хранения данных о файлах используется главная таблица файлов MFT – Master File Table.

Раздел NTFS делится на две части:

1. Главный служебный файл файловой системы $MFT не подлежит дефрагментации и содержится на специально отведенных первых 12% процентах диска (MFT-зоне).

2. Обычное пространство для хранения файлов.

Свободное место диска включается в себя незаполненные куски MFT зоны. Кластеры раздела имеют сквозную нумерацию от его начала до конца, это называется LCN – Logical Cluster Number.

Файл NTFS – это набор атрибутов. Структура MFT

· $MFTMirr – зеркало MFT

· $logFile – журнал транзакций, в котором регистрируются все операции, влияющие на структуру тома.

· $Volume – файл тома, содержит имя тома, версию NFTS и бит исправности.

· $AttrDef – таблица определения атрибутов, она задает типы атрибутов, поддерживаемые на томе.

· . –корневой каталог

· $BitMap – это файл битовой карты, содержащей схему распределения пространства на томе.

· $Boot – загрузочный файл с кодом начального загрузчика ОС

· $BadClus – файл плохих кластеров, поврежденных кластеров

· $Quota – содержит данные квот-пользователей.

· $UpCase – таблица трансляции символов кодировки UNICODE верхнего регистра.

· Далее – обычные файлы

Файл на томе идентифицируется 64разрядным значением (файловой ссылкой):

Номер последовательностиНомер файла
От 63 до 48От 47 до 0

Номер файла соответствует позиции его файловой записи в MFT – 1. Номер последовательности увеличивается каждый раз, когда данная позиция в MFT используется повторно. Файл может описываться несколькими файловыми записями при нехватке места под его атрибуты. В этом случае первая запись называется основной, остальные – дополнительными.

NTFS получает адрес файла на диске из объектов файлов.

Лекция 9

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

Традиционная ФС s5

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

Для связи иерархии файлов, расположенных на разных носителях, используется вмонтирование и исполняется системным вызовом mount.

Используется три типа имени файлов – краткое, полное, относительное.

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

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

Вся информация о файле (кроме его символьного имени) хранится в специальной системной таблице – индексном дескрипторе inode-файлов. Индексные дескрипторы последовательно пронумерованы и хранятся в отдельной области файловой системы. Номер индексного дескриптора является уникальным именем файла. В дескрипторе ведется учет ссылок на этот файл из всех каталогов. Когда количество ссылок 0, дескриптор уничтожается.

Нулевой блок содержит загрузчик операционной системы. 1 блок – «супер блок» — содержит общие сведения о файловой системе: размер ФС (сколько занимает), размер области индексных дескрипторов, число дескрипторов, список свободных блоков, список свободных дескрипторов.

В области индексных дескрипторов они упорядочены по номерам.

Порядок открытия файлов

1. Проверяется, существует ли файл и, если нет, то можно ли его создать.

2. Проверяются права доступа.

3. Если с файлом уже не ведется работа, то его индексный дескриптор копируется в ОП.

4. В области ядра создается структура типа File, отображающая текущее состояние и операции обмена данными с файлом.

5. Делается отметка в контексте процесса, совершившего системный вызов на операцию с данным файлом.

Ссылка на основную публикацию
Adblock
detector