Мегаобучалка Главная | О нас | Обратная связь


Управление файловой системой



2019-07-03 1429 Обсуждений (0)
Управление файловой системой 0.00 из 5.00 0 оценок




Управление файловой системой – одна из наиболее традиционных функций ОС Файловая система – это часть операционной системы, назначение которой состоит в том, чтобы организовать эффективную работу с данными, хранящимися во внешней памяти, и обеспечить пользователю удобный интерфейс при работе с такими данными. Помимо собственно файлов и структур данных, используемых для управления файлами (каталоги, дескрипторы файлов, различные таблицы распределения внешней памяти), понятие «файловая система» включает и программные средства, реализующие различные операции над файлами.

Управление файловой системой опирается:

· на подсистему управления вводом–выводом;

· использование специальных аппаратных средств;

· специальные информационные структуры.

 

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

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

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

· идентификация файлов – связывание имени файла с выделенным ему пространством внешней памяти;

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

· обеспечение надежности и отказоустойчивости. Стоимость информации может во много раз превышать стоимость компьютера;

· обеспечение защиты от несанкционированного доступа;

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

· обеспечение высокой производительности.

 

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

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

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

· средства, обеспечивающие распределение внешней памяти для хранения файлов и ее освобождение при уничтожении файлов;

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

 

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

1. open(char * fname, int flags, mode_t mode)

 

Эта операция открывает файл, устанавливая соединение между программой и файлом. При этом программа получает дескриптор файла — целое число, идентифицирующее данное соединение. Все остальные операции (чтения, записи, позиционирования) используют этот индекс для ссылки на файл. Параметр char * fname задает имя файла, int flags — это битовая маска, определяющая режим открытия файла. Файл может быть открыт только для чтения, только для записи и для чтения и записи; кроме того, можно открывать существующий файл, а можно пытаться создать новый файл нулевой длины. Необязательный третий параметр mode используется только при создании файла и задает его атрибуты.

2. lseek(int handle, off_t offset., int whence)

Эта операция перемещает указатель чтения/записи в файле. Параметр offset задает количество байтов, на которое нужно сместить указатель, а параметр whence — начало отсчета смещения. Предполагается, что смещение можно отсчитывать от начала файла (SEEK_SET), от его конца (SEEK_END) и от текущего положения указателя (SEEK_CUR). Операция возвращает положение указателя, отсчитываемое от начала файла.

3. read(int handle, char * where, size__t howjnuch)

 

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

4. write(int handle, char * what, size__t how_much)

 

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

5. close (int handle)

 

Эта операция закрывает файл, разрывая соединение между программой и файлом.

Набор файловых системных вызовов в ОС MS–DOS фактически был скопирован с вызовов Unix, послуживших основой для стандарта POSIX. В свою очередь и Windows NT/2000/XP унаследовали принципы работы с файлами непосредственно от MS–DOS.

Стандарт POSIX предлагает и другие дополнительные операции для работы с файлами, в частности отображение всего или части файла в виртуальное адресное пространство процесса.

Отображение (проецирование) файла в память. Отображение (проецирование) файла в память (File mapping) – это соединение содержания файла с частью виртуального адресного пространства процесса. Система создает объект «проекция файла» (file mapping object), чтобы обслужить эту ассоциацию. Представление данных файла (file view) – это часть виртуального адресного пространства, которое процесс использует, чтобы получить доступ к содержанию файла. Процессы читают и записывают в представление данных файла, используя указатели точно так же, как при работе с динамически распределенной памятью.

Отображение файла в память обеспечивает несколько преимуществ:

· возможность работы с файлами большего размера;

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

· файл, отображаемый в память, может совместно использоваться между двумя или несколькими процессами.

 

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

Управление атрибутами файлов. Кроме имени и расширения имени файла, операционная система хранит для каждого файла дату его создания (изменения) и атрибуты файла. Атрибуты – это дополнительные параметры, определяющие свойства файлов. Операционная система позволяет их контролировать и изменять. Состояние атрибутов учитывается при проведении автоматических операций с файлами. Существует четыре основных атрибута: только для чтения (Read Only), скрытый (Hidden), системный (System), архивный (Archive).

Атрибут «только для чтения» ограничивает возможности работы с файлом. Его установка означает, что файл не предназначен для внесения изменений. Атрибут «скрытый» указывает, что данный файл не следует 129

 

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

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

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

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

 



2019-07-03 1429 Обсуждений (0)
Управление файловой системой 0.00 из 5.00 0 оценок









Обсуждение в статье: Управление файловой системой

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы...
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...
Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (1429)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.009 сек.)