Основы операционных систем Лекция 11 - 03.04.081 Лекция 11 Файлы с точки зрения пользователя Введение Общие сведения о файлах Организация файлов и доступ.

Презентация:



Advertisements
Похожие презентации
Демидов А.В г. Операционные системы Лекция 4 Работа с файлами.
Advertisements

Физические модели баз данных Файловые структуры, используемые для хранения информации в базах данных.
Операционные системы и среды. Схема устройства жесткого диска Дорожка N Сектор (блок) Пластина 1 Пластина 2 Цилиндр 0 сторона Диск – одна или несколько.
Лекция 6 Лекция 6 Введение в обработку данных. Среда хранения и средства обработки информационных массивов. Эволюция и характеристика концепций обработки.
Лекция 6. Способы адресации в микропроцессорных системах.
ФАЙЛЫ И ФАЙЛОВАЯ СИСТЕМА Понятие файла, файловой системы, классификация.
1 БАЗЫ ДАННЫХ ФАЙЛЫ И ФАЙЛОВЫЕ СИСТЕМЫ. 2 ДО ФАЙЛОВЫХ СИСТЕМ Данные Управление ПРОГРАММА 2 Данные Управление ПРОГРАММА 3 Данные Управление ПРОГРАММА 1.
Базы данных База данных – это информационная модель, позволяющая в упорядоченном виде хранить данные о группе объектов, обладающих одинаковым набором.
ФАЙЛЫ И ФАЙЛОВАЯ СИСТЕМА Выполнил: Гончаров Роман.
Текстовые файлы Вербицкая Ольга Владимировна, Заозерная школа 16.
Программное обеспечение компьютера. Совокупность программ, хранящихся в долговременной памяти компьютера, составляют программное обеспечение (ПО) компьютера.
Программное управление компьютером. Компьютер Аппаратное обеспечениеПрограммное обеспечение Аппаратная часть включает основные и периферийные устройства.
Файлы и файловая система. Все программы и данные хранятся в долговременной (внешней) памяти компьютера в виде файлов. ФАЙЛ ФАЙЛ это определенное количество.
Выполнила: Калашникова Екатерина 11 класс 2008 г..
Файловая система 1.Файлы. Имена файлов 2.Соглашение Длинные имена файлов 4.Каталоги 5.Файловые операции 1 Разработала: учитель информатики СОШ 2.
ФАЙЛЫ И ФАЙЛОВЫЕ СТРУКТУРЫ. Ключевые слова логическое имя устройства внешней памяти файл правила именования файлов каталог корневой каталог файловая структура.
Программное обеспечение ЭВМ и информация Виды программного обеспечения Файлы и файловые структуры Системное ПО и системы программирования Операционная.
Файлы и файловая система Программное обеспечение.
Даталогическое проектирование. 1. Представление концептуальной модели средствами модели данных СУБД Общие представления о моделях данных СУБД С одной.
Основные характеристики операционных систем. Операционная система базовый комплекс программ, обеспечивающий управление аппаратными средствами компьютера,
Транксрипт:

Основы операционных систем Лекция Лекция 11 Файлы с точки зрения пользователя Введение Общие сведения о файлах Организация файлов и доступ к ним Операции над файлами Каталоги. Логическая структура файлового архива Организация доступа к архиву файлов Операции над каталогами Защита файлов

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

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

Основы операционных систем Лекция Введение (3) Основная идея: ОС делит память на блоки фиксированного размера, например, 4096 байт Файл, обычно представляющий собой неструктурированную последовательность байт, хранится в виде последовательности блоков (не обязательно смежных) В некоторых ОС (MS-DOS) адреса блоков, содержащих данные файла, организуются в связный список и выносятся в отдельную таблицу в памяти В других ОС (Unix) адреса блоков данных файла хранятся в отдельном блоке внешней памяти (так называемом индексе или индексном узле)

Основы операционных систем Лекция Введение (4) Индекс файла состоит из списка элементов, каждый из которых содержит номер блока в файле и сведения о местоположении данного блока Считывание очередного байта осуществляется с так называемой текущей позиции, которая характеризуется смещением от начала файла Зная размер блока, легко вычислить номер блока, содержащего текущую позицию Адрес нужного блока диска можно затем извлечь из индекса файла Базовой операцией, выполняемой по отношению к файлу, является чтение блока с диска и перенос его в буфер, находящийся в основной памяти

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

Основы операционных систем Лекция Введение (6) Основные функции файловой системы: Идентификация файлов. Связывание имени файла с выделенным ему пространством внешней памяти Распределение внешней памяти между файлами. Для работы с конкретным файлом пользователю не требуется иметь информацию о местоположении этого файла на внешнем носителе информации. Например, для того чтобы загрузить документ в редактор с жесткого диска, нам не нужно знать, на какой стороне какого магнитного диска, на каком цилиндре и в каком секторе находится данный документ

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

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

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

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

Основы операционных систем Лекция Общие сведения о файлах (1) Имена файлов Файлы представляют собой абстрактные объекты Их задача - хранить информацию, скрывая от пользователя детали работы с устройствами Когда процесс создает файл, он дает ему имя После завершения процесса файл продолжает существовать и через свое имя может быть доступен другим процессам

Основы операционных систем Лекция Общие сведения о файлах (2) Имена файлов Правила именования файлов зависят от ОС Во многих ОС поддерживаются имена из двух частей (имя+расширение), например progr.c (файл, содержащий текст программы на языке Си) или autoexec.bat (файл, содержащий команды интерпретатора командного языка) Тип расширения файла позволяет ОС организовать работу с ним различных прикладных программ в соответствии с заранее оговоренными соглашениями Обычно ОС накладывают некоторые ограничения, как на используемые в имени символы, так и на длину имени файла В соответствии со стандартом POSIX, популярные ОС оперируют удобными для пользователя длинными именами (до 255 символов)

Основы операционных систем Лекция Общие сведения о файлах (3) Типы файлов Важный аспект организации файловой системы и ОС - следует ли поддерживать и распознавать типы файлов Если да, то это может помочь правильному функционированию ОС, например не допустить вывода на принтер бинарного файла. Основные типы файлов: регулярные (обычные) файлы и каталоги(справочники, директории) Обычные файлы содержат пользовательскую информацию Каталоги - системные файлы, поддерживающие структуру файловой системы В каталоге содержится перечень входящих в него файлов и устанавливается соответствие между файлами и их характеристиками (атрибутами) Мы будем рассматривать каталоги ниже

Основы операционных систем Лекция Общие сведения о файлах (4) Типы файлов Хотя внутри подсистемы управления файлами обычный файл представляется в виде набора блоков внешней памяти, для пользователей обеспечивается представление файла в виде линейной последовательности байтов Такое представление позволяет использовать абстракцию файла при работе с внешними устройствами, при организации межпроцессных взаимодействий и т. д. Например, клавиатура обычно рассматривается как текстовый файл, из которого компьютер получает данные в символьном формате Поэтому иногда к файлам приписывают другие объекты ОС, например специальные символьные файлы и специальные блочные файлы, именованные каналы и сокеты, имеющие файловый интерфейс Эти объекты рассматриваются в других разделах данного курса

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

Основы операционных систем Лекция Общие сведения о файлах (6) Типы файлов Другой тип файлов - нетекстовые, или бинарные, файлы Обычно они имеют некоторую внутреннюю структуру Например, исполняемый файл в ОС Unix имеет пять секций: заголовок, текст, данные, справочник перемещения и символьную таблицу ОС выполняет файл, только если он имеет нужный формат Другим примером бинарного файла может быть архивный файл Типизация файлов не слишком строгая. Обычно прикладные программы, работающие с файлами, распознают тип файла по его имени в соответствии с общепринятыми соглашениями Например, файлы с расширениями.c,.pas,.txt - ASCII-файлы, файлы с расширениями.exe - выполнимые, файлы с расширениями.obj,.zip - бинарные и т. д.

Основы операционных систем Лекция Общие сведения о файлах (7) Атрибуты файлов Кроме имени ОС часто связывают с каждым файлом и другую информацию, например дату модификации, размер и т. д. Эти другие характеристики файлов называются атрибутами Список атрибутов в разных ОС может варьироваться Обычно он содержит следующие элементы: основную информацию (имя, тип файла), адресную информацию (устройство, начальный адрес, размер), информацию об управлении доступом (владелец, допустимые операции) и информацию об использовании (даты создания, последнего чтения, модификации и др.). Список атрибутов обычно хранится в структуре каталогов (следующая лекция) или других структурах, обеспечивающих доступ к данным файла.

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

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

Основы операционных систем Лекция Организация файлов и доступ к ним(3) Файл прямого доступа Организация файлов и доступ к ним (3) Файл прямого доступа В реальной практике файлы хранятся на устройствах прямого (random) доступа, например на дисках, поэтому содержимое файла может быть разбросано по разным блокам диска, которые можно считывать в произвольном порядке Номер блока однозначно определяется позицией внутри файла. Имеется в виду относительный номер, специфицирующий данный блок среди блоков диска, принадлежащих файлу О связи относительного номера блока с абсолютным его номером на диске рассказывается в следующей лекции. Для доступа к середине файла просмотр всего файла с самого начала не обязателен Для специфицирования места, с которого надо начинать чтение, используются два способа: с начала или с текущей позиции, которую дает операция seek Файл, байты которого могут быть считаны в произвольном порядке, называется файлом прямого доступа

Основы операционных систем Лекция Организация файлов и доступ к ним(4) Файл прямого доступа Организация файлов и доступ к ним (4) Файл прямого доступа Таким образом, файл, состоящий из однобайтовых записей на устройстве прямого доступа, - наиболее распространенный способ организации файла Базовыми операциями для такого рода файлов являются считывание или запись символа в текущую позицию В большинстве языков высокого уровня предусмотрены операторы посимвольной пересылки данных в файл или из него. Подобную логическую структуру имеют файлы во многих файловых системах, например в файловых системах ОС Unix и MS-DOS ОС не осуществляет никакой интерпретации содержимого файла Эта схема обеспечивает максимальную гибкость и универсальность С помощью базовых системных вызовов (или функций библиотеки ввода/вывода) пользователи могут как угодно структурировать файлы В частности, многие СУБД хранят свои базы данных в обычных файлах

Основы операционных систем Лекция Организация файлов и доступ к ним(5) Другие формы организации файлов Организация файлов и доступ к ним (5) Другие формы организации файлов Известны как другие формы организации файла, так и другие способы доступа к ним, которые использовались в ранних ОС, а также применяются сегодня в больших мэйнфреймах (mainframe), ориентированных на коммерческую обработку данных. Первый шаг в структурировании - хранение файла в виде последовательности записей фиксированной длины, каждая из которых имеет внутреннюю структуру Операция чтения производится над записью, а операция записи переписывает или добавляет запись целиком Ранее использовались записи по 80 байт (это соответствовало числу позиций в перфокарте) или по 132 символа (ширина принтера) В ОС CP/M файлы были последовательностями 128-символьных записей С введением CRT-терминалов данная идея утратила популярность

Основы операционных систем Лекция Организация файлов и доступ к ним(7) Другие формы организации файлов Организация файлов и доступ к ним (7) Другие формы организации файлов Другой способ представления файлов - последовательность записей переменной длины, каждая из которых содержит ключевое поле в фиксированной позиции внутри записи Базисная операция в данном случае - считать запись с каким- либо значением ключа

Основы операционных систем Лекция Организация файлов и доступ к ним(8) Другие формы организации файлов Организация файлов и доступ к ним (8) Другие формы организации файлов Другой способ представления файлов - последовательность записей переменной длины, каждая из которых содержит ключевое поле в фиксированной позиции внутри записи Базисная операция в данном случае - считать запись с каким- либо значением ключа Записи могут располагаться в файле последовательно (например, отсортированные по значению ключевого поля) или в более сложном порядке Метод доступа по значению ключевого поля к записям последовательного файла называется индексно-последовательным

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

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

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

Основы операционных систем Лекция Операции над файлами (1) Операционная система должна предоставить в распоряжение пользователя набор операций для работы с файлами, реализованных через системные вызовы Чаще всего при работе с файлом пользователь выполняет не одну, а несколько операций Во-первых, нужно найти данные файла и его атрибуты по символьному имени, во-вторых, считать необходимые атрибуты файла в отведенную область оперативной памяти и проанализировать права пользователя на выполнение требуемой операции Затем следует выполнить операцию, после чего освободить занимаемую данными файла область памяти Рассмотрим в качестве примера основные файловые операции ОС Unix

Основы операционных систем Лекция Операции над файлами (2) Создание файла, не содержащего данных. Смысл данного вызова - объявить, что файл существует, и присвоить ему ряд атрибутов. При этом выделяется место для файла на диске и вносится запись в каталог Удаление файла и освобождение занимаемого им дискового пространства

Основы операционных систем Лекция Операции над файлами (3) Открытие файла Цель - разрешить системе проанализировать атрибуты файла и проверить права доступа к нему, а также считать в оперативную память список адресов блоков файла для быстрого доступа к его данным Открытие файла является процедурой создания дескриптора или управляющего блока файла Дескриптор (описатель) файла хранит всю информацию о файле Иногда под дескриптором понимается альтернативное имя файла или указатель на описание файла в таблице открытых файлов, используемый при последующей работе с файлом Например, на языке Cи операция открытия файла возвращает дескриптор fd, который может быть задействован при выполнении операций чтения или записи

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

Основы операционных систем Лекция Операции над файлами (5) Есть и другие операции, например переименование файла, получение атрибутов файла и т. д. Существует два способа выполнить последовательность действий над файлами В первом случае для каждой операции выполняются как универсальные, так и уникальные действия (схема stateless). Например, последовательность операций может быть такой: open, read1, close,... open, read2, close,... open, read3, close. Альтернативный способ - это когда универсальные действия выполняются в начале и в конце последовательности операций, а для каждой промежуточной операции выполняются только уникальные действия. В этом случае последовательность вышеприведенных операций будет выглядеть так: open, read1,... read2,... read3, close.

Основы операционных систем Лекция Операции над файлами (6) В большинстве ОС используется второй способ, более экономичный и быстрый Первый способ более устойчив к сбоям, поскольку результаты каждой операции становятся независимыми от результатов предыдущей операции; поэтому он иногда применяется в распределенных файловых системах (например, Sun NFS)

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

Основы операционных систем Лекция Логическая структура файлового архива Логическая структура файлового архива (2) Каждый каталог содержит список каталогов и/или файлов, содержащихся в данном каталоге Каталоги имеют один и тот же внутренний формат, где каждому файлу соответствует одна запись в файле каталога

Основы операционных систем Лекция Логическая структура файлового архива Логическая структура файлового архива (3) Число каталогов зависит от системы В ранних ОС имелся только один корневой каталог, затем появились каталоги для пользователей (по одному каталогу на пользователя) В современных ОС используется произвольная структура дерева каталогов Таким образом, файлы на диске образуют иерархическую древовидную структуру

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

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

Основы операционных систем Лекция Логическая структура файлового архива Логическая структура файлового архива (6) Внутри одного каталога имена листовых файлов уникальны Имена файлов, находящихся в разных каталогах, могут совпадать Чтобы однозначно определить файл по его имени (избежать коллизии имен), принято именовать файл так называемым абсолютным или полным именем (pathname), состоящим из списка имен вложенных каталогов, по которому можно найти путь от корня к файлу плюс имя файла в каталоге, непосредственно содержащем данный файл Полное имя включает цепочку имен - путь к файлу, например /usr/games/doom

Основы операционных систем Лекция Логическая структура файлового архива Логическая структура файлового архива (7) Такие имена уникальны Компоненты пути разделяют различными символами: "/" (слэш) в Unix или обратными слэшем в MS-DOS (в Multics - ">") Таким образом, использование древовидных каталогов минимизирует сложность назначения уникальных имен

Основы операционных систем Лекция Логическая структура файлового архива Логическая структура файлового архива (8) Указывать полное имя не всегда удобно, поэтому применяют другой способ задания имени - относительный путь к файлу В нем используется концепция рабочего, или текущего каталога, который обычно входит в состав атрибутов процесса, работающего с данным файлом Тогда на файлы в таком каталоге можно ссылаться только по имени, при этом поиск файла будет осуществляться в рабочем каталоге Это удобнее, но по существу, то же самое, что и абсолютная форма

Основы операционных систем Лекция Логическая структура файлового архива Логическая структура файлового архива (9) Для получения доступа к файлу и локализации его блоков система должна выполнить навигацию по каталогам Рассмотрим для примера путь /usr/linux/progr.c Сначала в фиксированном месте на диске находится корневой каталог Затем находится компонент пути usr, т. е. в корневом каталоге ищется файл /usr Исследуя этот файл, система понимает, что данный файл является каталогом, и блоки его данных рассматривает как список файлов и ищет следующий компонент linux в нем

Основы операционных систем Лекция Логическая структура файлового архива Логическая структура файлового архива (10) Из строки для linux находится файл, соответствующий компоненту usr/linux/ Затем находится компонент progr.c, который открывается, заносится в таблицу открытых файлов и сохраняется в ней до закрытия файла Отклонение от типовой обработки компонентов pathname может возникнуть в том случае, когда этот компонент служит точкой связывания (принято говорить "точкой монтирования") двух файловых архивов Этот случай рассмотривается в следующей лекции

Основы операционных систем Лекция Логическая структура файлового архива Логическая структура файлового архива (11) Многие прикладные программы работают с файлами, находящимися в текущем каталоге, не указывая явным образом ее имени Это дает пользователю возможность произвольным образом именовать каталоги, содержащие различные программные пакеты Для реализации этой возможности в большинстве ОС, поддерживающих иерархическую структуру каталогов, используется обозначение "." - для текущего каталога и ".." - для родительской

Основы операционных систем Лекция Организация доступа к архиву файлов Организация доступа к архиву файлов (1) Задание пути к файлу в файловых системах некоторых ОС отличается тем, с чего начинается эта цепочка имен В современных ОС принято разбивать диски на логические диски (это низкоуровневая операция), иногда называемые разделами (partitions) Иногда объединяют несколько физических дисков в один логический диск (например, это можно сделать в ОС Windows NT) В дальнейшем изложении будем считать, что каждый раздел представляет собой отдельный (виртуальный) диск

Основы операционных систем Лекция Организация доступа к архиву файлов (2) Диск содержит иерархическую древовидную структуру, состоящую из набора файлови каталогов или (то есть файлов, которые содержат перечень других файлов, входящих в состав каталога), необходимых для хранения информации о файлах системы. В некоторых системах управления файлами требуется, чтобы каждый архив файлов целиком располагался на одном диске (разделе диска) В этом случае полное имя файла начинается с имени дискового устройства, на котором установлен соответствующий диск Такой способ именования используется в файловых системах DEC и Microsoft

Основы операционных систем Лекция Организация доступа к архиву файлов (3) В других системах (Multics) вся совокупность файлов и каталогов представляет собой единое дерево Сама система, выполняя поиск файлов по имени, начиная с корня, требовала установки необходимых дисков. В ОС Unix предполагается наличие нескольких архивов файлов, каждый на своем разделе, один из которых считается корневым После запуска системы можно "смонтировать" корневую файловую систему и ряд изолированных файловых систем в одну общую файловую систему

Основы операционных систем Лекция Организация доступа к архиву файлов (4) Технически это осуществляется с помощью создания в корневой файловой системе специальных пустых каталогов (см. также следующую лекцию) Специальный системный вызов mount ОС Unix позволяет подключить к одному из этих пустых каталогов корневой каталог указанного архива файлов После монтирования общей файловой системы именование файлов производится так же, как если бы она с самого начала была централизованной Задачей ОС является беспрепятственный проход точки монтирования при получении доступа к файлу по цепочке имен Если учесть, что обычно монтирование файловой системы производится при загрузке системы, пользователи ОС Unix обычно и не задумываются о происхождении общей файловой системы

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

Основы операционных систем Лекция Операции над каталогами (2) Рассмотрим в качестве примера некоторые системные вызовы, необходимые для работы с каталогами Создание каталога. Вновь созданный каталог включает записи с именами '.' и '..', однако считается пустой Удаление каталога. Удален может быть только пустой каталог

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

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

Основы операционных систем Лекция Защита файлов (1) Информация в компьютерной системе должна быть защищена как от физического разрушения (reliability), так и от несанкционированного доступа (protection). Здесь мы коснемся отдельных аспектов защиты, связанных с контролем доступа к файлам

Основы операционных систем Лекция Защита файлов (2) Контроль доступа к файлам Наличие в системе многих пользователей предполагает организацию контролируемого доступа к файлам Выполнение любой операции над файлом должно быть разрешено только в случае наличия у пользователя соответствующих привилегий Обычно контролируются следующие операции: чтение, запись и выполнение Другие операции, например копирование файлов или их переименование, также могут контролироваться Однако они чаще реализуются через перечисленные Так, операцию копирования файлов можно представить как операцию чтения и последующую операцию записи

Основы операционных систем Лекция Защита файлов (3) Списки прав доступа Hаиболее общий подход к защите файлов от несанкционированного использования - сделать доступ зависящим от идентификатора пользователя, то есть связать с каждым файлом или каталогов список прав доступа (access control list), где перечислены имена пользователей и типы разрешенных для них способов доступа к файлу Любой запрос на выполнение операции сверяется с таким списком Основная проблема реализации данного способа - список может быть длинным Чтобы разрешить всем пользователям читать файл, необходимо всех их внести в список

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

Основы операционных систем Лекция Защита файлов (5) Списки прав доступа Для решения этих проблем создают классификации пользователей, например, в ОС Unix все пользователи разделены на три группы. Владелец (Owner). Группа (Group). Hабор пользователей, разделяющих файл и нуждающихся в типовом способе доступа к нему. Остальные (Public)

Основы операционных систем Лекция Защита файлов (6) Списки прав доступа Это позволяет реализовать конденсированную версию списка прав доступа В рамках такой ограниченной классификации задаются только три поля (по одному для каждой группы) для каждой контролируемой операции В итоге в Unix операции чтения, записи и исполнения контролируются при помощи 9 бит (rwxrwxrwx)

Основы операционных систем Лекция Заключение Заключение (1) Файловая система представляет собой набор файлов, каталогов и операций над ними Имена, структуры файлов, способы доступа к ним и их атрибуты - важные аспекты организации файловой системы Обычно файл представляет собой неструктурированную последовательность байтов Главная задача файловой системы - связать символьное имя файла с данными на диске