Основы операционных систем, Карпов В.Е. (Лекция №11 часть 2, 2019)

YOUTUBE · 27.11.2025 05:48

Ключевые темы и таймкоды

Введение в тему файлов и файловых систем

0:07
  • Обсуждение различных уровней абстракции понятия файла.
  • Математические и логические файлы, их базовые операции.
  • Усложнения понятия файла и его использование в программировании.

Логические и физические файловые системы

1:09
  • Логические файлы и их операции в вычислительной системе.
  • Атрибуты файлов и их защита в многопользовательских системах.
  • Физические файловые системы и их организация.

Логическая файловая система

3:04
  • Логическая файловая система как способ организации коллекции логических файлов.
  • Аналогия с библиотекой и систематизацией книг.
  • Логическая организация коллекции файлов.

Физическая файловая система

4:48
  • Физическая файловая система как структурированная совокупность файлов во вторичной памяти.
  • Понятие физического файла и его расположение.
  • Файловая система как часть операционной системы.

Логическая файловая система и каталоги

5:57
  • Логическая файловая система как способ организации коллекции логических файлов.
  • Отсутствие структуры и организация в виде кучи.
  • Необходимость именования файлов для их различения.

Одноуровневая директория

7:04
  • Одноуровневая директория как структура данных.
  • Запись в директории содержит имя файла и информацию о доступе к его атрибутам и данным.
  • Пример из личной библиотеки для иллюстрации необходимости информации о расположении файлов.

Двухуровневая директория

10:18
  • Одноуровневая директория подходит для небольших систем с одним пользователем.
  • В многопользовательских системах требуется двухуровневая директория.
  • Обобщение структуры для улучшения управления файлами.

Одноуровневая директория

10:56
  • Одноуровневая директория должна храниться на вторичном носителе.
  • В логической файловой системе появляются два типа файлов: директории и регулярные файлы.
  • При наличии нескольких пользователей, каждый пользователь работает со своими файлами.

Двухуровневая директория

11:56
  • Вводится идея двухуровневой директории: главная директория и директории пользователей.
  • Имена файлов могут быть идентичными у разных пользователей.
  • В первых версиях Unix использовались двухуровневые директории.

Дерево директорий

13:40
  • Двухуровневая директория обобщается до произвольного количества уровней.
  • Вводится понятие корневой директории и поддиректорий.
  • Имена файлов должны быть уникальными в рамках одной директории.

Полные и относительные имена файлов

14:37
  • Полные имена файлов строятся от корневой директории.
  • В Unix используется символ слэш для разделения имен.
  • В Windows используются другие разделители.

Относительные имена файлов

17:33
  • Относительные имена файлов строятся от текущей директории процесса.
  • В Unix текущая директория обозначается как слэш тмп слэш с123.
  • Относительные имена могут быть короче полных имен.

Изменение операций над файлами

20:47
  • Введение внешней структуры изменяет набор операций над файлами.
  • Операция создания файла теперь включает запись в директорию.
  • Операция удаления файла теперь включает ликвидацию записи в директории.
  • Появляется новая операция создания пустой директории.

Переход от дерева директорий к ациклическому графу

23:45
  • Логическая файловая система может быть обобщена до ациклического графа.
  • Пример: два пользователя работают над совместным проектом, используя файлы друг друга.
  • Второй пользователь может добавить запись в свою директорию, указывающую на файл первого пользователя.

Создание жесткой связи

24:40
  • Второй пользователь добавляет запись в свою директорию, указывая на файл первого пользователя.
  • Это создает жесткую связь между директориями, превращая дерево в ациклический граф.
  • Файл может иметь несколько полных имен, что делает его уникальным.

Удаление файла в ациклическом графе

27:01
  • Удаление файла в ациклическом графе сложнее, чем в дереве директорий.
  • Файл физически не удаляется, а только помечается как свободный.
  • Количество жестких связей должно стать равным нулю для физического удаления файла.

Граф общей структуры

28:48
  • Пример: пользователи работают над большим проектом, используя директории для совместной работы.
  • Установка жестких связей между директориями может привести к циклам.
  • Для предотвращения циклов используются символические связи или файлы типа "связь".

Монтирование файловых систем

34:42
  • Операция монтирования позволяет объединить две файловые системы в одну.
  • Главная файловая система имеет пустую директорию, которая совмещается с корневой директорией второй системы.
  • Смонтированная файловая система может быть размонтирована обратно, сохраняя все изменения.

Физические файловые системы

37:12
  • Физические файловые системы отображают логические файловые системы на носители информации.
  • Логическая файловая система описывается специальными файлами директорий и файлами типа "связь".
  • Физические файлы и файловые системы требуют понимания, как эти файлы размещаются на носителе информации.

Файл контрол блок

38:10
  • Вводится понятие файл контрол блока, аналога блок управления процессом.
  • Файл контрол блок включает информацию об атрибутах файла, его расположении и правах доступа.
  • Эта информация позволяет операционной системе корректно работать с файлами.

Хранение файл контрол блока

40:07
  • Файл контрол блок может храниться в записи директории, частично в директории и частично в отдельной структуре.
  • Возможны различные способы хранения информации в зависимости от реализации физической файловой системы.

Организация вторичной памяти

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

Логические блоки и адресное пространство

45:45
  • Логические блоки имеют последовательную нумерацию и могут использоваться для хранения информации из файл контрол блоков.
  • Структура вторичной памяти напоминает структуру оперативной памяти с линейным адресным пространством блоков.
  • В эти блоки размещается информация о файлах, директориях и связях, описывающих структуру файловой системы.

Методы выделения блоков для хранения файлов

47:26
  • Непрерывное выделение блоков: все блоки следуют друг за другом.
  • Пример: файл A требует два блока, файл B - три блока, файл C - три блока.
  • Информация о файле хранится в директории: имя файла, начальный блок, размер и атрибуты.

Внутренняя фрагментация

50:31
  • Внутренняя фрагментация: блоки могут быть заполнены не полностью.
  • Потеря половины содержимого блока.
  • Преимущества: быстрое чтение информации из близлежащих блоков.

Недостатки непрерывного выделения блоков

51:43
  • Проблемы с увеличением размера файла: необходимость перемещения файла.
  • Внешняя фрагментация: структура памяти напоминает швейцарский сыр.
  • Стратегии размещения файлов: best-fit, first-fit.

Метод связанного списка

56:13
  • Размещение блоков в произвольных местах памяти.
  • Использование служебных блоков для построения связанного списка.
  • Пример: файл A, B, C, где служебные блоки содержат ссылки на следующие блоки.

Преимущества и недостатки метода связанного списка

1:00:58
  • Отсутствие внешней фрагментации.
  • Недостатки: последовательный доступ к информации, потеря преимущества прямого доступа.

Недостатки связанных списков

1:02:36
  • Снижение производительности при обращении к файлам.
  • Потеря дисковой памяти из-за хранения указателей.
  • Логические блоки могут содержать только часть полезной информации.

Надежность хранения информации

1:03:59
  • Вторичная память подвержена износу и повреждениям.
  • Повреждение первого блока файла делает недоступными остальные блоки.
  • Однонаправленные списки не решают проблему полностью.

Аналогов в оперативной памяти

1:04:59
  • Метод выделения блоков не имеет аналогов в оперативной памяти.
  • Неоднократное движение по оперативной памяти замедляет доступ.
  • Идея хорошая, но реализация затруднительна.

Решение проблемы доступа

1:05:46
  • Использование таблицы расположения файлов FAT.
  • Таблица FAT хранит информацию о расположении файлов.
  • Это позволяет избежать последовательного доступа к памяти.

Структура таблицы FAT

1:07:29
  • Таблица FAT содержит информацию о номерах логических блоков.
  • Каждый элемент таблицы соответствует номеру логического блока.
  • Таблица хранится в заголовке файловой системы.

Хранение информации в директории

1:09:18
  • Директория содержит запись с именем файла и номером первого блока.
  • Номер первого блока является ссылкой на таблицу FAT.
  • Это упрощает доступ к данным, хранящимся в разных блоках.

Надежность и копии таблицы FAT

1:11:02
  • Проблема надежности при повреждении заголовка файловой системы.
  • Хранятся несколько копий таблицы FAT для повышения надежности.
  • Это позволяет копировать информацию на другой носитель при необходимости.

Метод прямой индексации

1:12:40
  • Метод прямой индексации аналогичен страничной организации памяти.
  • Создается таблица для отображения номеров блоков файла в номера блоков на диске.
  • Таблица заполняется для каждого файла, что упрощает доступ к данным.

Аналог страничной памяти

1:14:03
  • В схемах управления оперативной памятью используется таблица страниц для размещения страниц логического адресного пространства в физическом адресном пространстве.
  • В файловых системах также требуется таблица индексов для хранения ссылок на блоки данных.
  • Вопрос: где хранить эту таблицу индексов?

Методы хранения индексной таблицы

1:15:05
  • Первый метод: выделение блока для хранения индексной таблицы.
  • Второй метод: объединение индексной таблицы с атрибутами файла в индексный узел.
  • Третий метод: многоуровневая индексация для больших файлов.

Смешанная индексация

1:19:47
  • Смешанная индексация использует индексный узел с атрибутами файла и записями с прямой индексацией.
  • Для больших файлов используется блок косвенной адресации, затем блок двойной косвенной адресации и, наконец, блок тройной косвенной адресации.

Файловая система как часть операционной системы

1:22:00
  • Файловая система обслуживает физическую файловую систему.
  • Основные функции: распределение внешней памяти, идентификация файлов, обеспечение операций над файлами, защита от несанкционированного доступа, надежность хранения и отказоустойчивость.

Учет занятого и свободного пространства

1:24:39
  • Учет занятого пространства не важен, учитывается только свободное пространство.
  • При форматировании диска все блоки считаются свободными.
  • Методы учета свободных блоков: битовое поле и связанный список.

Идентификация файлов

1:28:37
  • Файловая подсистема операционной системы связывает имя файла с его расположением.
  • Для этого она последовательно разбирает полное или относительное имя файла.
  • Процесс включает чтение файла корневой директории и определение его расположения на диске.

Эффективность операций

1:30:39
  • Большое количество обращений к диску делает операции чтения и записи неэффективными.
  • Операции открытия и закрытия файлов используются для повышения эффективности работы файловой подсистемы.
  • Эти операции не являются операциями над файлами, а служебными операциями внутри ОС.

Логические файловые системы

1:32:47
  • Логические файловые системы обеспечивают выполнение операций над файлами.
  • Основные операции над файлами и их изменения при переходе к логическим файлам.
  • Системные вызовы операционной системы позволяют пользователям выполнять эти операции.

Защита от несанкционированного доступа

1:33:24
  • Пользователи делятся на категории, и для каждой категории определяются разрешенные операции.
  • При доступе к файлу проверяется, что пользователь имеет право на выполнение операции.
  • Это позволяет избежать несанкционированного доступа к файлам.

Совместное использование файлов

1:34:43
  • При одновременном доступе к файлу нескольких процессов возможны конфликты.
  • Для предотвращения конфликтов используются механизмы блокировки и монопольного доступа.
  • Специальные системные вызовы позволяют управлять доступом к файлам.

Надежность и отказоустойчивость

1:35:49
  • Важно обеспечить целостность файловой системы при сбоях и отказах.
  • Используются методы, такие как RAID и журналирование, для восстановления данных.
  • Для получения дополнительной информации рекомендуется обратиться к учебникам и монографиям.

Заключение

1:36:49
  • Завершение обсуждения темы.
  • При наличии вопросов предлагается обращаться по указанному адресу электронной почты.
  • Благодарность за внимание.