Автор работы: Пользователь скрыл имя, 16 Марта 2012 в 21:59, доклад
При наличии большого числа программ и данных необходим строгий их учет и систематизация. Операционным системам приходится работать с различными потоками данных, разными аппаратными и периферийными устройствами компьютера. Организовать упорядоченное управление всеми этими объектами позволяет файловая система.
Понятие файловой системы
При наличии большого числа программ и данных необходим строгий их учет и систематизация. Операционным системам приходится работать с различными потоками данных, разными аппаратными и периферийными устройствами компьютера. Организовать упорядоченное управление всеми этими объектами позволяет файловая система.
На операционные системы персональных компьютеров наложила глубокий отпечаток концепция файловой системы, лежащей в основе операционной системы UNIX. В ОС UNIX подсистема ввода-вывода унифицирует способ доступа как к файлам, так и к периферийным устройствам. Под файлом при этом понимают набор данных на диске, терминале или каком-либо другом устройстве. Таким образом, файловая система - это система управления данными.
Файловые системы операционных систем создают для пользователей некоторое виртуальное представление внешних запоминающих устройств ЭВМ, позволяя работать с ними не на низком уровне команд управления физическими устройствами (например, обращаться к диску с учетом особенностей его адресации), а на высоком уровне наборов и структур данных. Файловая система скрывает от программистов картину реального расположения информации во внешней памяти, обеспечивает независимость программ от особенностей конкретной конфигурации ЭВМ, или, как еще говорят, логический уровень работы с файлами. Файловая система также обеспечивает стандартные реакции на ошибки, возникающие при обмене данными. Пользователь, работая в контексте определенного языка программирования, обычно использует файлы как поименованные совокупности данных, хранимые во внешней памяти и имеющие определенную структуру. При работе с файлами пользователю предоставляются средства для создания новых файлов, операции по считыванию и записи информации и т.д., не затрагивающие конкретные вопросы программирования работы канала по пересылке данных, по управлению внешними устройствами.
Роль учетного механизма, позволяющего обслуживать десятки и сотни файлов, в файловой системе очень важна. Общим приемом является сведение учетной информации о расположении файлов на магнитном диске в одно место - его каталог (директорий). Каталог представляет собой список элементов, каждый из которых описывает характеристики конкретного файла, используемые для организации доступа к этому файлу - имя файла, его тип, местоположение на диске и длину файла. В простых операционных системах (например ОС РАФОС) местоположение единственного каталога на магнитном диске (дискете) и его размер фиксированы. В более сложных системах каталог может находиться в любом месте диска, но на него должна иметься ссылка в, так называемой, метке тома, находящейся в фиксированном месте и формируемой при инициализации диска. Более того, каталогов может быть большое число и они могут быть логически связаны в какие-либо информационные структуры. Так, наиболее развитая многоуровневая файловая система UNIX поддерживает иерархическую (древовидную) систему каталогов (рис.1). Каждый пользователь может работать в составе этой структуры со своей системой каталогов (со своим поддеревом). Полное имя файла в данной структуре задает путь переходов между каталогами в логической структуре каталогов.
Файл обладает уникальным идентификатором (именем), обеспечивающим доступ к файлу. Идентификатор включает в себя собственно имя - буквенно-цифровое обозначение файла, которое может содержать специальные символы (подчеркивание, дефис, ! и т.д.), и расширение имени файла (обычно отделяемое от имени файла точкой). Если имена создаваемых файлов пользователь может задавать произвольно, то в использовании расширений следует придерживаться традиции, согласно которой расширение указывает на тип файла, характер его содержимого. Известны десятки стандартных расширений, используемых при работе с различными программными системами.
В различных ОС существуют определенные ограничения на длину имени и расширения имени файла. Так, в MS-DOS длина имени файла не должна превышать восьми символов, а расширение - трех. В ОС UNIX ограничения значительно менее жесткие.
Имена директорией, начиная от корневого, образующие путь к файлу, отделяемые при записи друг от друга косой чертой (\ в DOS, / в UNIX), также как и обозначение диска, относятся к идентификатору файла. Например, в MS-DOS: d:\lang\pascal\work\example.
Каждый каталог рассматривается как файл, имеет собственное имя. Продвижение по дереву при поиске некоторого каталога или файла возможно как вниз по дереву от текущего узла, так и вверх в направлении к корню. В каждом каталоге хранится список имен файлов, а также ссылки на дескрипторы файлов. В дескрипторах сосредоточена подробная информация о файле (список номеров блоков, занимаемых файлом, метод доступа к файлу, дата создания файла, идентификатор владельца, тип файла). В процессе работы могут создаваться новые каталоги и вписываться в требуемое место иерархии.
Файловая система ОС обеспечивает основные операции над файлами: их открытие (что сопровождается копированием учетной информации о файле, обеспечивающей быстрый доступ к нему, в некоторую структуру данных, расположенную в оперативной памяти, подготовкой буферов и каналов для передачи информации), копирование, перемещение, объединение, удаление, закрытие. Вторую группу представляют операции чтения и записи составных элементов файла. Особая группа операций обеспечивает печать содержимого каталогов или файлов, управление правами доступа к файлам, поиска файлов и т.д.
Развитые многопользовательские файловые системы обеспечивают также защиту и разделение данных, хранящихся в файлах, при работе с ними разных пользователей. Так, например, после входа в систему UNIX (который производится по паролю) пользователь получает доступ к ряду системных, групповых и личных каталогов и файлов. Каждый файл и каталог имеет владельца. Обычно это пользователь, создавший их. Владелец может затем назначить тип защиты файла от трех категорий пользователей:
· владельца (самого себя);
· представителей той же группы пользователей, что и владелец (понятие группы полезно при совместной работе над какими-либо проектами);
· всех остальных пользователей системы.
Каждый файл (каталог) имеет три вида разрешения на доступ:
· чтение (г - read) - можно просматривать содержимое файла (каталога);
· запись (w - write) - можно менять содержимое файла (создавать или удалять файлы в каталоге);
· выполнение (х - execute) - можно использовать файл как команду UNIX.
2 вариант
1. Общие сведения о файловых системах
Совокупность каталогов и системных структур данных, отслеживающих размещение файлов на диске и свободное дисковое пространство, называется файловой системой. Основной структурной единицей любой файловой системы является файл и каталог.
Файл - минимальная структурированная именованная последовательность данных. Каталог (папка) является своеобразной объединяющей структурой для расположенных на диске файлов. Каталог может содержать в себе файлы и другие (вложенные) каталоги. Каталоги и файлы образуют на диске древовидную иерархическую структуру - дерево каталогов. Единственный каталог не входящий ни в одну из директорий называется корневым каталогом.
Все файлы в компьютере хранятся на магнитных дисках, которые являются частью его конструкции. Магнитные диски являются устройствами произвольного доступа. В них каждая запись данных имеет свой уникальный адрес, обеспечивающий непосредственный доступ к ней, минуя все остальные записи. Для хранения данных служит диск (пакет из нескольких дисков), покрытый ферромагнитным слоем. Запись на магнитный диск и считывание данных с него осуществляется головками чтения/записи.
Рис. 1 Структура поверхности магнитного диска
Поверхность диска разбита на дорожки представляющие собой окружности (рис. 1). Дорожки разделены на секторы. Размер сектора обычно составляет 512 байт.
В большинстве файловых систем пространство на диске выделяется кластерами, которые состоят из нескольких секторов. Кластер - минимальный размер места на диске, которое может быть выделено для хранения одного файла. Перед тем, как диск может быть использован для записи данных, он должен быть размечен -- на его дорожки должны быть записаны заголовки секторов с правильными номерами дорожки и сектора, а также, если это необходимо, маркеры. Как правило, при этом же происходит тестирование поверхности диска для поиска дефектов магнитного слоя. Не следует путать эту операцию -- физическое форматирование диска -- с логическим форматированием, заключающемся в создании файловых систем. Современные жесткие диски обычно требуют физической разметки при их изготовлении.
Один физический жесткий диск может быть разделен на несколько разделов - логических дисков (томов). Каждый логический диск представляет собой как бы отдельное устройство. Следовательно, на нем может быть своя файловая система и свой корневой каталог.
В операционных системах MS-DOS и Windows каждое дисковое устройство обозначается латинской буквой. Для имени логического диска используются буквы от A до Z. Буквы A и B обозначают дисководы гибких магнитных дисков (FDD). Начиная с буквы C, именуются разделы жесткого диска (HDD), дисководы оптических дисков и виртуальные диски. Для обращения к файлу используется следующая спецификация:
устройство:\путь\имя файла.расширение
Здесь путь - список каталогов, входящих друг в друга, в последнем из которых и содержится указанный файл. Если путь не указан, следует что, файл находится в корневом каталоге данного диска. В MS-DOS имя файла состоит из 8 символов, точки и 3 символов расширения имени файла. Точка отделяет собственно имя от расширения. Имя файла может состоять из латинских букв, цифр 0 - 9, некоторых других символов, и не может содержать пробел. В Windows поддерживаются длинные имена файлов (от 1 до 255 символов), имя может содержать пробелы. При использовании файловых систем HPFS и NTFS имя файла может содержать несколько точек.
В именах файлов нельзя использовать символы “ * ” и “ ? ”, так как они используются в масках имен при поиске файлов.
Расширение имени необходимо для определения типа файла и связывания файла с определенной программой, с помощью которой он может быть открыт. Хотя имя файла может и не иметь расширения.
Различают следующие типы файлов:
1) Текстовые файлы. Текстовые файлы могут содержать простой или размеченный текст, в кодировке ASCII, ANSI или UNICODE. Текст без разметки содержит только отображаемые символы и простейшие управляющие символы (возврат каретки и табуляции). Размеченный текст содержит бинарную и символьную разметку (межстрочный интервал, новая страница и т.п.), может содержать таблицы и рисунки;
2) Графические файлы - файлы, содержащие точечные или векторные изображения;
3) Файлы мультимедиа - различают файлы содержащие оцифрованный звук (файлы аудио) и фалы видео (содержат изображение и звук);
4) Исполняемые файлы - программы готовые к исполнению (файлы с расширением exe и com).
5) Архивные файлы - файлы архивов rar, tar, zip, cab и т.п.
6) Файлы библиотек - файлы с расширением DLL, OCX и LIB;
7) Файлы данных - бинарные или текстовые файлы с различным расширением, используемые программами во время работы.
Информация о логической организации физического жесткого диска
(числе логических дисков, их размере) расположена в главной загрузочной записи (MBR). MBR расположена в самом первом секторе жесткого диска и не входит в структуру файловой системы.
В операционных системах семейства UNIX разделение на логические диски отсутствует, а используется понятие корневого каталога файловой системы. Спецификация обращения к файлу выглядит следующим образом:
/путь/имя файла.тип
В операционной системе RSX (RSX-11) дисковые устройства идентифицируются кодами: групповой идентификатор, порядковый номер в группе, двоеточие (например, DKx, DMx или DPx). Спецификация обращения к файлу выглядит следующим образом:
устройство:[g,n] имя.расширение
где:
устройство - идентификатор устройства (DKx, DMx, DPx - магнитные диски; MTx - магнитные ленты; ТТх - терминал ЭВМ, LPx - принтер);
[g,n] - каталог.
Современные операционные системы имеют возможность работать с несколькими файловыми системами одновременно. Прежде чем операционная система сможет использовать файловую систему, она должна выполнить над этой системой операцию, называемую монтированием. В общем случае операция монтирования включает следующие шаги:
1) Проверку типа монтируемой файловой системы; проверку целостности файловой системы;
2) Считывание системных структур данных и инициализацию соответствующего модуля файлового менеджера (драйвера файловой системы). В некоторых случаях -- модификацию файловой системы с тем, чтобы указать, что она уже смонтирована;
3) Включение новой файловой системы в общее пространство имен. Многие пользователи MS DOS никогда не сталкивались с понятием монтирования. Дело в том, что эта система (как и многие другие ДОС, например RT-11) выполняет упрощенную процедуру монтирования при каждом обращении к файлу.