Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Использование связанного списка адресов⇐ ПредыдущаяСтр 15 из 15
Файлу выделяется память в виде связанного списка кластеров. Номер первого кластера запоминается в записи каталога, где хранятся характеристики этого файла. Остальная адресная информация отделена от кластеров файла. С каждым кластером диска связывается некоторый элемент – индекс. Индексы располагаются в отдельной области диска. Эта таблица занимает один кластер. Когда память свободна, все индексы имеют нулевое значение.
Если некоторый кластер N назначен некоторому файлу, то индекс этого кластера становится равным либо номеру M следующего кластера данного файла, либо принимает специальное значение, являющееся признаком того, что этот кластер является для файла последним. Индекс же предыдущего кластера файла принимает значение N, указывая на вновь назначенный кластер. Этот способ используется в ФС FAT. Еще один способ состоит в простом перечислении номеров кластеров, занимаемых файлом. Этот перечень и служит адресом файла. Недостатокочевиден: длина адреса зависит от размера файла и для большого файла может составить значительную величину. Достоинство – высокая скорость доступа к произвольному кластеру, т.к. здесь используется прямая адресация, а не просмотр цепочек. Фрагментация также отсутствует. В качестве примера рассмотрим физическую организацию ФС FAT. Логический раздел, отформатированный под ФС FAT, состоит из следующих областей (см. рис.): · загрузочный сектор. Содержит программу начальной загрузки ОС. Вид этой программы зависит от типа ОС, которая будет загружаться из этого раздела. · основная копия FAT. Содержит информацию о размещении файлов и каталогов на диске. · резервная копия FAT · область размером в 32 троки (16 Кбайт), что позволяет хранить 512 записей о файлах и каталогах, т.к. каждая запись каталога состоит из 32 байт. · область данных. Предназначена для размещения всех файлов и всех каталогов, кроме корневого каталога.
FAT поддерживает всего два типа файлов; обычный файл и каталог. ФС распределяет память только из области данных, причем использует в качестве Таблица FAT (основная и копия) состоит из массива индексных указателей, количество которых равно числу кластеров области данных. Между кластерами и индексными указателями имеется взаимно однозначное соответствие. Индексный указатель может принимать следующие значения, характеризующие состояния связанного с ним кластера: · кластер свободен; · кластер используется файлом и не является последним кластером файла. В этом случае индексный указатель содержит номер следующего кластера файла; · последний кластер файла; · дефектный кластер; · резервный кластер. Таблица FAT – общая для всех файлов раздела. В исходном состоянии, после форматирования, все кластеры свободны и все индексные указатели (кроме тех, которые соответствуют резервным и дефектным блокам) принимают значение «кластер свободен». При размещении файла ОС просматривает FAT, начиная с начала, ищет первый свободный индексный указатель. После его обнаружения в поле записи каталога «номер первого кластера» фиксируется номер этого указателя. В кластер с этим номером записываются данные файла. Он становится первым кластером файла. Если файл умещается в одном кластера, то в указатель соответ значение «последний кластер файла». Если размер файла больше.то ОС продолжает просмотр FAT и ищет следующий указатель на свободный кластер. После обнаружения в предыдущий указатель заносится номер этого кластера, и он становится следующим кластером файла. Процесс повторяется, пока не разместится весь файл и не будет создан связный список всех кластеров файла. Размер таблицы FAT и разрядность используемых в ней индексных указателей определяется количеством кластеров в области данных. Для уменьшения потерь из-за фрагментации желательно кластеры делать небольшими, а для сокращения объема адресной информации и повышения скорости обмена наоборот. При формировании диска под FAT обычно выбирают компромиссное решение, и размеры кластеров выбираются из диапазона от 1 до 128 секторов или от 512 байт до 64 Кбайт. Существует несколько разновидностей FAT отличающихся разрядностью индексных указателей, которая используется в качестве условного обозначения FAT12, FAT16 и FAT32. 12 разрядные указатели поддерживают 4096 кластеров, 16 разрядные – 65535, 32 разрядные – более 4 млн. При удалении файла из ФС в первый байт соответствующей записи каталога заносится признак о том, что запись свободна, а во все индексные указатели файла заносится Остальные данные в записи каталога, в том числе номер первого кластера файла, остаются нетронутыми, что оставляет шансы для восстановления ошибочно удаленного файла. Используемый в FAT метод хранения адресной информации о файлах не отличается большой надежностью – при разрыве списка индексных указателей в одном месте ( по разным причинам), теряется информация обо всех последующих кластерах файла. FAT12 и FAT16 применялись в ОС MS-DOS, Windows 3.1, Windows NT/2000 и Windows 95/98. В связи с ростом объемов дисков они вытесняются FAT32. Для углубления изучения вопроса физической организации файловых систем, рекомендовано ознакомиться с файловыми системами S5, UFS и NTFS, обратившись к рекомендованной литературе.
Файловые операции Файловая система предоставляет пользователям определенный набор операций по работе с файлами. Но какие бы операции не производились ОС необходимо выполнить ряд операций, универсальных для всех выполняемых действий · по символьному имени файла найти его характеристики, которые хранятся в файловой системе; · скопировать характеристики файла в оперативную память; · на основании характеристик файла проверить права пользователя на выполнение запрошенной операции (чтение, запись, удаление и т.п.); · очистить область памяти, отведенную под временное хранение характеристик файла. ОС может выполнять последовательность действий над файлом двумя способами: · для каждой операции выполняются как универсальные, так и уникальные действия. Такая схема иногда называется схемой без запоминания состояния операции; · все универсальные действия выполняются в начале и конце последовательности операций, а для каждой промежуточной операции выполняются только уникальные действия. Большинство ФС поддерживают второй способ организации файловых операций как более экономичный и быстрый. Зато первый способ более устойчив к сбоям в работе системы, т.к. каждая операция является самодостаточной и не зависит от результата предыдущей.
Открытие файла Системный вызов open работает с двумя аргументами: символьным именем открываемого файла и режимом открытия файла. Режим открытия говорит системе, какие операции будут выполняться над файлом в последовательности операций до закрытия файла системному вызову close. Например, только чтение, только запись или чтение и запись.
Обмен данными с файлом Для обмена данными с файлом (предварительно открытым) используются процедуры read и write. В том случае, когда необходимо явным образом указать, с какого байта файла необходимо читать или записывать данные используются дополнительные системные вызовы. На основе системных вызовов ввода – вывода строятся более мощные библиотечные функции ввода – вывода, составляющие прикладной интерфейс ОС.
Блокировка файлов Блокировки файлов и отдельных записей в файлах являются средством синхронизации между работающими в кооперации процессами, которые пытаются использовать одни и тот же файл одновременно. Многопользовательские ОС обычно поддерживают специальный системный вызов, позволяющий программисту установить и проверить блокировки на файл и его отдельные области. Кооперирующиеся процессы обязательно должны проверять наличие блокировки на файл, чтобы синхронизировать свою работу.
Контроль доступа к файлам. Файлы – частный вид разделенных ресурсов, доступ к которым ОС должна контролировать. У каждого объекта доступа существует владелец. Владельцем может быть как отдельный пользователь, так и группа пользователей. Владелец объекта имеет право выполнять с ним любые допустимые для данного объекта операции. Во многих ОС существует особый пользователь (superuser, root, administrator), который имеет все права по отношению к любым объектам системы, не обязательно являясь их владельцем. Под таким именем работает администратор системы, которому необходим полный доступ ко всем файлам и устройствам для управления политикой доступа. Различают два основных подхода к определению прав доступа: Избирательный доступ. Имеет место, когда для каждого объекта сам владелец может определить допустимые операции с объектами. Этот подход называется так же произвольным доступом, так как позволяет администратору и владельцам объектов определить права доступа произвольным образом, по их желанию. Между пользователями и группами пользователей в системах с избирательным доступом нет жестких иерархических взаимоотношений, которые определены по умолчанию и только для администратора по умолчанию наделяемого всеми правами. Мандатный доступ.Система наделяет пользователя определенными правами по отношению к каждому разделяемому ресурсу в зависимости от того, к какой группе пользователь отнесен. От имени системы выступает администратор, а владельцы объектов лишены возможности управлять доступом к ним по своему усмотрению. Все группы пользователей в такой системе образуют строгую иерархию, причем каждая группа пользуется всеми правами доступа группы более низкого уровня иерархии. Членам какой-либо группы не разрешается предоставлять свои права членам групп более низких уровней иерархии. Мандатные системы доступа считаются более надежными, но менее гибкими, обычно они принимаются в специализированных вычислительных системах с повышенными требованиями к защите информации.
Механизм контроля доступа Каждый пользователь и каждая группа пользователей обычно имеет символьное имя, а также уникальный числовой идентификатор. При выполнении процедуры логического входа в систему пользователь сообщает свое символьное имя и пароль, а ОС определяет соответствующие числовые идентификаторы пользователя и групп, в которые он входит. Все идентификационные данные, в том числе имена и идентификаторы пользователей и групп, пароли пользователей, а также сведения о вхождении пользователя в группы хранятся Вход пользователя в систему порождает процесс – оболочку, который поддерживает диалог с пользователем и запускает для него другие процессы. Процесс – оболочка получает от пользователя символьное имя и пароль и находит по ним числовые идентификаторы пользователя и его групп. Эти идентификаторы связываются с каждым процессом, запущенным оболочкой для данного пользователя. Говорят, что процесс выступает от имени данных пользователя и данных групп пользователей. Определить права доступа к ресурсу – значит определить для каждого пользователя набор операций, которые ему разрешено применять к данному ресурсу. В разных ОС для одних и тех же типов ресурсов может быть определен свой список дифференцируемых операций доступа. Для файловых объектов этот список включает следующие операции: · создание файла; · уничтожение файла; · открытие файла; · закрытие файла; · запись в файл; · дополнение файла; · поиск в файле; · получение атрибутов файла; · установка новых значений атрибутов; · переписывание; · выполнение файла; · чтение каталога; · смена владельца; · изменение прав доступа. В самом общем случае права доступа могут быть описаны матрицей прав доступа, в котором столбцы соответствуют всем файлам системы, строки всем пользователям, а на пресечении строк и столбцов указываются разные операции.
Практически во всех ОП матрица прав доступа хранится “по частям”, т.е. для каждого файла и каталога создается так называемый список управления доступом, в котором описываются права на выполнение операций пользователей и группы пользователей по отношению к этому файлу и каталогу. Список управителя доступа является частью характеристик файла или каталога и хранится на диске в соответствующей области. Однако, не все файловые системы поддерживают список управления доступом, например, его не поддерживает ФС FAT, так она разрабатывалась для однопользовательской MS – DOS. Список управления доступом с добавленным к нему идентификатором владельца называется характеристиками обязанности. Популярное:
|
Последнее изменение этой страницы: 2016-07-13; Просмотров: 613; Нарушение авторского права страницы