Лекция № 2: Файловая система и ввод-вывод информации
Для ознакомления с предыдущей лекцией, перейдите по ссылке.
Что такое файловая система?
Файловая система (ФС) — это механизм для управления данными на устройствах хранения (жестких дисках, SSD, флеш-накопителях и других). Она определяет способ, которым файлы и каталоги (папки) организуются, хранятся и извлекаются на устройствах.
Основные функции файловой системы
- Организация хранения данных: Файловая система определяет, как данные структурируются на устройстве (например, как данные разбиваются на блоки).
- Путеводитель (метаданные): Файловая система управляет метаданными файлов, такими как имя файла, его расположение, права доступа, временные метки и т.д.
- Доступ к данным: обеспечивает механизмы для доступа к данным — чтение, запись, удаление файлов.
- Управление правами доступа: Файловая система регулирует, какие пользователи и процессы могут работать с конкретными файлами и каталогами.
Типы файловых систем
- FAT (File Allocation Table): Простая файловая система, использующая таблицу для отслеживания расположения файлов. Применяется на устройствах с малым объёмом памяти (флешки, карты памяти).
- NTFS (New Technology File System): Более сложная файловая система, используемая в Windows. Поддерживает большие объёмы данных, сложную структуру метаданных и более гибкое управление правами доступа.
- ext3/ext4: Используются в Linux. Обеспечивают высокий уровень надежности и поддержку больших объёмов данных.
- HFS+ (Hierarchical File System Plus): Используется в macOS, также с поддержкой метаданных и большого объёма хранения.
Структура файловой системы
Файловая система организована в иерархическую структуру, включающую:
- Файлы: хранят данные.
- Каталоги (папки): хранят ссылки на файлы или другие каталоги.
- Сектора и блоки: на физическом уровне данные разделены на блоки (или кластеры), которые могут иметь фиксированный размер.
- Индексы и дескрипторы: Метаданные, описывающие файлы (например, путь, права доступа, размер, дата последнего изменения).
Механизм ввода-вывода
Механизм ввода-вывода отвечает за взаимодействие операционной системы с внешними устройствами, такими как диски, клавиатуры, мыши, принтеры и т.д. Он реализует абстракцию над аппаратным обеспечением и позволяет программам работать с устройствами через стандартные интерфейсы.
Типы устройств ввода-вывода
- Блоковые устройства: работают с данными блоками фиксированного размера (жёсткие диски, SSD). Данные можно читать и записывать блоками.
- Потоковые устройства: обрабатывают данные по одному элементу (клавиатура, принтер). Взаимодействие обычно более линейное.
Принципы работы с вводом-выводом
- Буферизация: для повышения производительности данные часто сохраняются во временных буферах перед отправкой или после получения.
- Асинхронность: операции ввода-вывода могут выполняться асинхронно, что позволяет процессу продолжать выполнение, не ожидая завершения.
- Системы очередей: операции обрабатываются в порядке очереди, например, с использованием алгоритмов планирования.
Модели и технологии ввода-вывода
- Блоковый ввод-вывод: операции с данными происходят с блоками фиксированного размера.
- Символьный ввод-вывод: операции с устройствами, такими как клавиатура или принтер.
- Директ-доступ (DMA): позволяет устройствам передавать данные напрямую в память, минуя процессор.
- I/O Scheduling: алгоритмы планирования операций для повышения эффективности.
Организация хранения данных
Хранение данных требует эффективных структур для обеспечения доступа, надежности и производительности. Включает:
- Логическое и физическое хранение данных
- Управление пространством хранения, включая размещение и дефрагментацию
- Резервное копирование и восстановление данных
Архивация данных
Архивация — это процесс сжатия и хранения данных для экономии пространства и удобства переноса или долговременного хранения.
Методы архивации
- Без потерь: сжатие без потери информации (ZIP, GZIP, RAR)
- С потерями: сжатие с потерей части данных (JPEG, MP3)
Инструменты архивации
- tar и gzip в Linux/Unix
- WinRAR, 7-Zip в Windows
Задачи архивации
- Экономия пространства
- Облегчение передачи данных
- Долговременное хранение