Файловые системы. Лекция 6 Файловая система, ввод и вывод информации. Вводвывод и файловая система 1 Задачи ос по управлению файлами и устройствами
Скачать 0.51 Mb.
|
Ввод-вывод и файловая система 1.1 Задачи ОС по управлению файлами и устройствами 1. Организация параллельной работы устройств ввода-вывода и процессора; 2. согласование скоростей обмена и кэширование данных; 3. разделение устройств и данных между процессами; 4. организация удобного интерфейса между устройствами и остальной частью системы; 5. поддержка широкого спектра драйверов с возможностью простого включения в систему нового драйвера; 6. динамическая загрузка и выгрузка драйверов; 7. поддержка нескольких файловых систем; 8. поддержка синхронных и асинхронных операций ввода-вывода; 1.2 Физическая организация жесткого диска Основным типом устройства, которое используется в современных вычислительных устройствах для хранения файлов, являются дисковые накопители. Существует множество типов дисков. Наибольшее распространение получили магнитные диски. Их особенностью является одинаковая скорость чтения и записи, что делает их идеальными в качестве дополнительной памяти (страничная подкачка файлов, файловые системы и т.д.). Иногда, с целью создания высоконадежного устройства хранения, используются наборы жестких магнитных дисков (RAID-массивы). Жесткий диск (Рис. 4.1) состоит из пакета пластин. На каждой стороне каждой пластины расположены концентрические кольца – дорожки, на которых хранятся данные. Нумерация дорожек начинается с 0 от внешнего края к центру. Совокупность дорожек одного радиуса на всех поверхностях всех пластин пакета называется цилиндром. Каждая дорожка разбивается на фрагменты, называемые секторами. Сектор имеет фиксированный для конкретной системы размер, чаще всего размер сектора составляет 512 байт. Учитывая, что дорожки разного радиуса имеют одинаковое количество секторов, плотность записи становится тем выше, чем ближе дорожка к центру. Сектор – наименьшая адресуемая единица обмена данными дискового устройства с оперативной памятью. Файловая система при работе с диском использует другую единицу дискового пространства – кластер. Кластер – это один или несколько подряд расположенных секторов. Существуют абсолютная (физическая) и относительная адресация диска. Для обращения к диску на физическом уровне необходимо задать номер цилиндра, номер поверхности (головки) и номер сектора. Нумерация физических секторов начинается с 1. Рис. 4.1 Схема устройства жесткого диска Дорожки и секторы создаются в результате выполнения физического (или низкоуровнего) форматирования диска. Низкоуровневый формат диска не зависит от типа операционной системы, которая будет этот диск использовать. Разметку диска под конкретный тип файловой системы выполняют процедуры высокоуровнего, или логического, форматирования. Прежде чем форматировать диск под определенную файловую систему, он может быть разбит на разделы. Раздел – непрерывная часть физического диска, которую операционная система представляет как логическое устройство (логический диск, или логический раздел). На разных логических устройствах одного и того же физического диска могут располагаться разные файловые системы. 4.2 Избыточные дисковые подсистемы RAID (RAID-массивы) RAID (Redundant Array of Inexpensive Disks) – класс устройств ввода-вывода, представляющих массив дисков с избыточностью. Используется для увеличения производительности и надежности дисковых операций. RAID-массив может быть создан на базе нескольких дисковых устройств, управляемых обычными контроллерами, в этом случае в операционной системе должен быть установлен специальный драйвер. Может быть вариант реализации технологии RAID с использованием исключительно аппаратных средств. Для этого в системе устанавливается RAID-контроллер для управления массивом дисков. В любом случае весь набор дисков выглядит с точки зрения операционной системы как один большой дисковой накопитель. Различают несколько вариантов организации RAID-массивов, называемых также уровнями. В RAID 0 (Рис. 4.2, а) общий для дискового устройства контроллер при выполнении операции записи расщепляет данные на блоки и передает их параллельно на все диски, при этом первый блок данных записывается на первый диск, второй – на второй и т.д. по кругу. Подобный способ хранения данных на нескольких дисках называется чередующим набором. R AID 1 (Рис. 4.2, б) называется зеркальным набором. Логическое устройство в этом случае образуется на основе одной или нескольких пар дисков, в которых один диск является основным, а другой (зеркальный) дублирует информацию, находящуюся на основном диске. При записи информация поступает на оба диска одновременно. При чтении может использоваться любая копия. Рис.4.2. Организация массива а) RAID-0, б) RAID-1 RAID 2 расщепляет данные побитно: первый бит записывается на первый диск, второй – на второй и т.д. Отказоустойчивость реализуется путем использования для кодирования отказоустойчивого кода Хемминга, который обеспечивает исправление однократных ошибок и обнаружение двукратных ошибок. Избыточность обеспечивается за счет нескольких дополнительных дисков для хранения кодов коррекции ошибок. В RAID 3 (Рис.4.3, а) для каждого слова данных подсчитывается один байт четности, записываемый на отдельный диск. Диск четности является резервным. Если какой-либо диск выходит из строя, то данные с остальных дисков плюс данные о четности резервного диска позволяют не только определить, какой из дисков вышел из строя, но и восстановить утраченную информацию. Организация RAID 4 аналогична RAID 3, расщепляются на дисках не побайтно, а блоками. Для хранения контрольной информации также используется один дополнительный диск. Если любой из дисков выйдет из строя, потерянные байты могут быть восстановлены при помощи той же операции сложения по модулю два. В RAID 5 биты четности равномерно распределены по всем дискам (рис.4.3 б). Восстановление вышедшего из строя диска в этом случае аналогично RAID 4. RAID 10 представляет собой комбинированный способ при котором данные расщепляются (RAID 0) и зеркально копируются (RAID 1) без вычисления контрольных сумм. Рис.4.2. Организация массива а) RAID-3, б) RAID-5 Таблица 1. Характеристики уровней RAID
1.3 Файловая система Файл – это именованная область внешней памяти, в которую можно записывать и из которой можно считывать данные. Основные назначения файлов: - долговременное и надежное хранение информации; - совместное использование информации. Файловая система - это часть операционной системы, включающая: - совокупность всех файлов на диске; - наборы структур данных, используемых для управления файлами, такие, например, как каталоги файлов, дескрипторы файлов, таблицы распределения свободного и занятого пространства на диске; - комплекс системных программных средств, реализующих управление файлами, в частности: создание, уничтожение, чтение, запись, именование, поиск и другие операции над файлами. Файлы идентифицируются именами. Пользователи дают файлам символьные имена, при этом учитываются ограничения ОС как на используемые символы, так и на длину имени. Обычно разные файлы могут иметь одинаковые символьные имена. В этом случае файл однозначно идентифицируется так называемым составным именем, представляющим собой последовательность символьных имен каталогов. В некоторых системах одному и тому же файлу не может быть дано несколько разных имен, а в других такое ограничение отсутствует. В последнем случае операционная система присваивает файлу дополнительно уникальное имя, так, чтобы можно было установить взаимнооднозначное соответствие между файлом и его уникальным именем. Уникальное имя представляет собой числовой идентификатор и используется программами операционной системы. Примером такого уникального имени файла является номер индексного дескриптора в системе UNIX. Файловые системы поддерживают несколько функционально различных типов файлов. - Обычные файлы – содержат информацию произвольного характера, которую заносит в них пользователь или которая образуется в результате работы системных и пользовательских программ; подразделяются на текстовые и двоичные. Текстовые файлы состоят из строк символов, представленных в ASCII-коде. ASCII (англ. American standard code for information interchange, — название таблицы (кодировки, набора), в которой некоторым распространённым печатным и непечатным символам сопоставлены числовые коды. Это могут быть документы, исходные тексты программ и т.п. Двоичные файлы не используют ASCII-коды, они часто имеют сложную внутреннюю структуру, например, объектный код программы или архивный файл. - Специальные файлы - это файлы, ассоциированные с устройствами ввода-вывода, которые позволяют пользователю выполнять операции ввода-вывода, используя обычные команды записи в файл или чтения из файла. Эти команды обрабатываются вначале программами файловой системы, а затем на некотором этапе выполнения запроса преобразуются ОС в команды управления соответствующим устройством. - Каталог - это особый тип файла, содержащий системную справочную информацию о наборе файлов, сгруппированных пользователем по какому-либо неформальному признаку. В каталоге содержится список файлов, входящих в него, и устанавливается соответствие между файлами и их характеристиками (атрибутами). В разных файловых системах могут использоваться в качестве атрибутов разные характеристики, например: информация о разрешенном доступе, пароль для доступа к файлу, владелец файла, создатель файла, признак "только для чтения", признак "скрытый файл", признак "системный файл", признак "архивный файл", признак "двоичный/символьный", признак "временный" (удалить после завершения процесса), признак блокировки, длина записи, указатель на ключевое поле в записи, длина ключа, времена создания, последнего доступа и последнего изменения, текущий размер файла, максимальный размер файла. Каталоги могут непосредственно содержать значения характеристик файлов, как это сделано в файловой системе MS-DOS, или ссылаться на таблицы, содержащие эти характеристики, как это реализовано в ОС UNIX (Рис. 4.4). Каталоги могут образовывать иерархическую структуру за счет того, что каталог более низкого уровня может входить в каталог более высокого уровня (Рис. 4.5). Рис. 4.4. Структура каталогов: а - структура записи каталога MS-DOS (32 байта); б - структура записи каталога ОС UNIX Иерархия каталогов может быть деревом или сетью. Каталоги образуют дерево, если файлу разрешено входить только в один каталог, и сеть - если файл может входить сразу в несколько каталогов. В MS-DOS каталоги образуют древовидную структуру, а в UNIX - сетевую. Как и любой другой файл, каталог имеет символьное имя и однозначно идентифицируется составным именем, содержащим цепочку символьных имен всех каталогов, через которые проходит путь от корня до данного каталога. Рис. 4.5. Логическая организация файловой системы а - одноуровневая; б - иерархическая (дерево); в - иерархическая (сеть) 1.4 Физическая организация и адрес файла Физическая организация файла описывает правила расположения файла на диске. Файл размещается в кластерах диска. Непрерывное размещение - простейший вариант физической организации (Рис. 4.6,а), при котором файлу предоставляется последовательность кластеров диска, образующих единый непрерывный участок дисковой памяти. Для задания адреса файла в этом случае достаточно указать только номер начального кластера. Другое достоинство этого метода – высокая скорость доступа к файлу. Но имеются и два существенных недостатка. Во-первых, во время создания файла заранее не известна его длина, а значит не известно, сколько памяти надо зарезервировать для этого файла, во-вторых, при таком порядке размещения неизбежно возникает фрагментация, и пространство на диске используется не эффективно, так как отдельные участки маленького размера (минимально 1 кластер) могут остаться не используемыми. Следующий способ физической организации - размещение в виде связанного списка кластеров дисковой памяти (Рис. 4.6,б). При таком способе в начале каждого блока содержится указатель на следующий кластер. В этом случае адрес файла также может быть задан одним числом - номером первого кластера. В отличие от предыдущего способа, каждый блок может быть присоединен в цепочку какого-либо файла, следовательно, фрагментация отсутствует. Файл может изменяться во время своего существования, наращивая число кластеров. Недостатком является сложность реализации доступа к произвольно заданному месту файла. Кроме того, при этом способе количество данных файла, содержащихся в одном кластере, не равно степени двойки (одно слово израсходовано на номер следующего кластера), а многие программы читают данные блоками, размер которых равен степени двойки. Еще один способ, используемый, например, в файловой системе FAT, является использование связанного списка индексов. С каждым кластером связывается некоторый элемент - индекс. Индексы располагаются в отдельной области диска (в MS-DOS это таблица FAT). Если некоторый кластер распределен некоторому файлу, то индекс этого блока содержит номер следующего блока данного файла. При такой физической организации сохраняются все достоинства предыдущего способа, но снимаются оба отмеченных недостатка: во-первых, для доступа к произвольному месту файла достаточно прочитать только блок индексов, отсчитать нужное количество блоков файла по цепочке и определить номер нужного блока, и, во-вторых, данные файла занимают блок целиком, а значит, имеют объем, равный степени двойки. Рис. 4.6. Физическая организация файла а - непрерывное размещение; б - связанный список кластеров; в - связанный список индексов; г - перечень номеров кластеров Кроме этого, физическое расположение файла можно задать путем простого перечисления номеров кластеров, занимаемых этим файлом. ОС UNIX использует вариант данного способа, позволяющий обеспечить фиксированную длину адреса, независимо от размера файла. Права доступа к файлу Определить права доступа к файлу — значит определить для каждого пользователя набор операций, которые он может применить к данному файлу. В разных файловых системах может быть определен свой список дифференцируемых операций доступа. Этот список может включать следующие операции: создание файла, уничтожение файла, открытие файла, закрытие файла, чтение файла, запись в файл, дополнение файла, поиск в файле, получение атрибутов файла, установление новых значений атрибутов, переименование, выполнение файла, чтение каталога и другие операции с файлами и каталогами. В самом общем случае права доступа могут быть описаны матрицей прав доступа, в которой столбцы соответствуют всем файлам системы, строки - всем пользователям, а на пересечении строк и столбцов указываются разрешенные операции (Рис. 4.7). В некоторых системах пользователи могут быть разделены на отдельные категории. Для всех пользователей одной категории определяются единые права доступа. Например, в системе UNIX все пользователи подразделяются на три категории: владельца файла, членов его группы и всех остальных. Рис. 4.7. Матрица прав доступа Различают два основных подхода к определению прав доступа: - избирательный доступ, когда для каждого файла и каждого пользователя сам владелец может определить допустимые операции; - мандатный подход, когда система наделяет пользователя определенными правами по отношению к каждому разделяемому ресурсу (в данном случае файлу) в зависимости от того, к какой группе пользователь отнесен. |