- •7 Пара. Разделы, отказоустойчивостью hdd, raid, Файловые системы Windows, Unix
- •Физическая организация файловой системы
- •Диски, разделы, секторы, кластеры
- •Тома в unix-подобных операционных системах
- •Тома и разделы в дисковых ос Microsoft
- •Файловые системы, основанные на расширениях
- •Ссылочное размещение файла
- •Индексируемое размещение
- •Эффективность и производительность дисковой памяти
- •Файловая система
- •Классификация файловых систем
- •Задачи файловой системы
- •Особенности
- •Логическая организация файловой системы
- •Типы файлов
- •Иерархическая структура файловой системы
- •Атрибуты файлов
- •11.2 Файловая система ms-dos (fat-12,16,32)
- •Каталоговая запись ms-dos, обратите внимание на пустые 10 байт, они будут задействованы в Windows 98
- •11.2.4 Расширение Windows 98 для fat-32
- •11.3 Файловая система ntfs
- •Структура раздела - общий взгляд
- •Mft и его структура
- •Главная файловая таблица mft, каждая запись ссылается на файл или каталог.
- •Три записи mft для сильно фрагментированного файла. В первой записи указывается индексы на дополнительные записи.
- •Файлы и потоки
- •Каталоги
- •Журналирование
- •Безопасность
- •Шифрование (nt5)
- •Примеры монтирования удаленных файловых систем
- •Структура уровней файловой системы nfs
- •-10.1.2 Структура файла
- •Три типа структур файла.
- •10.1.3 Типы файлов (слайд №10)
- •Примеры исполняемого и не исполняемого файла
- •10.1.4 Доступ к файлам
- •10.1.5 Атрибуты файла (слайд №11)
- •10.1.6 Операции с файлами (слайд №12)
- •-10.1.7 Файлы, отображаемые на адресное пространство памяти
- •Пример копирования файла через отображение в памяти.
- •-10.2 Каталоги -10.2.1 Одноуровневые каталоговые системы
- •-10.2.2 Двухуровневые каталоговые системы
- •Двухуровневая каталоговая система
- •-10.2.3 Иерархические каталоговые системы
- •Иерархическая каталоговая система
- •10.2.4 Имя пути (слайд №13)
- •10.2.5 Операции с каталогами (слайд №14)
- •-10.3 Структура файловой системы
- •Возможная структура файловой системы
- •-10.4 Реализация файлов
- •-10.4.1 Непрерывные файлы
- •5 Непрерывных файлов на диске и состояние после удаления двух файлов
- •-10.4.2 Связные списки
- •Размещение файла в виде связного списка блоков диска
- •-10.4.3 Связные списки при помощи таблиц в памяти
- •Примеры I-узла
- •-10.5 Реализация каталогов
- •Варианты реализации каталогов -10.5.1 Реализация длинных имен файлов
- •Реализация длинных имен файлов -10.5.2 Ускорение поиска файлов
- •1 Использование хэш-таблицы для ускорения поиска файла.
- •2 Использование кэширования результатов поиска файлов для ускорения поиска файла.
- •-10.6 Совместно используемые файлы
- •-10.6.1 Жесткие ссылки
- •Иллюстрация проблемы, которая может возникнуть -10.6.2 Символьные ссылки
- •-10.7 Организация дискового пространства -10.7.1 Размер блока
- •Скорости чтения/записи и эффективность использования диска, в системе с файла одинакового размера 2 Кбайта.
- •-10.7.2 Учет свободных блоков
- •Основные два способа учета свободных блоков -10.7.3 Дисковые квоты
- •-10.8 Надежность файловой системы -10.8.1 Резервное копирование
- •-10.8.2 Непротиворечивость файловой системы
- •10.11 Производительность файловой системы (слайд №15)
- •10.11.1 Кэширование
- •10.11.2 Опережающее чтение блока
- •10.11.3 Снижение времени перемещения блока головок
- •-Системы файлов
- •-Понятие файла
- •-Структура файла
- •-Атрибуты файла
- •-Операции над файлами
- •-Типы файлов – имена и расширения
- •-Методы доступа к файлам
- •-Директории
- •-Особенности системы файлов в "Эльбрусе"
- •-Типичная организация файловой системы изображена на рис. 19.3.
- •-Операции над директориями
- •-Логическая организация директорий
- •-Монтирование файловых систем
- •-Общий доступ к файлам
- •-Защита файлов
- •-Реализация файловых систем
- •-Структура файловой системы
- •-Системные структуры в памяти для управления файловой системой
- •-Ключевые термины
-Операции над директориями
Над директориями определен ряд операций, которые аналогичны друг другу во всех операционных системах, хотя по именам могут отличаться. Операции над директориями доступны как из командного языка, так и через специализированный API. В своем изложении мы будем использовать команды для работы с файлами. Аналогичные действия могут быть выполнены с помощью GUI через графическую оболочку ОС.
Установка текущей (рабочей) директории. При работе с директориями основным является понятие текущей (рабочей) директории, которая устанавливается в командных языках командой cd (change directory), например, если в данный момент текущей является корневая директория диска C: , то команда:
cd doc
установит в качестве текущей поддиректорию doc. Текущая директория в командном языке обозначается точкой (.) .
Поиск файла. Как уже отмечалось, поиск файла выполняется с помощью символьного пути (path), образованного последовательностью имен директорий, например, C:\doc\plan.txt. Если требуется найти файл в текущей директории, указывается его имя. Например, в Windows команда:
type plan.txt
выводит содержимое файла plan.txt в текущей директории (C:\doc) на консоль.
Создание файла. Как правило, создание файла в текущей директории выполняется программой, которая в дальнейшем будет работать с этим файлом – например, в Windows – текстовыми редакторами notepad, wordpad, Microsoft Word. Многие файлы создаются в текущей директории неявно, в результате компиляции или каких-либо других системных операций. Например, если в текущей директории имеется файл исходного кода на языке Java – program.java, то в результате его компиляции:
javac program.java
Java-компилятор создает в текущей директории class-файл, содержащий двоичный байт-код Java-программы – файл program.class.
Многие программы создают в текущей директории временные файлы, подчас с весьма экзотическими именами, - например, Microsoft Word в результате открытия файла с документом. По окончании работы программы временные файлы удаляются.
Создание директории. В рабочей директории можно создать другую директорию. На командном языке это делается командой mkdir, например:
mkdir tmp.
Удаление файла из текущей директории выполняется специальной командой - del (в Windows) или rm (в UNIX). Удаление уничтожает только ссылку на файл из директории, но не сам файл. Если на него есть другие ссылки, он сохраняется. Типичной ошибкой пользователей является поспешное неверное удаление файла. Если оно выполнено в системе Windows, то, как правило, файл можно восстановить специальными утилитами (кроме его имени), так как, например, в системе FAT файл представляется как список смежных областей. Если же удаление файла выполнено в UNIX, то, к сожалению, файл восстановлению не подлежит, так как в UNIX используется представление в виде индексных блоков, содержащих ссылки на все блоки данных файла.
Вывод содержимого директории. Команда dir (в Windows) и ls (в UNIX) выводит содержимое директории на консоль. С помощью перенаправления стандартного вывода содержимое директории можно сохранить в текстовом файле, например:
ls doc > doc_list.txt
Переименование файла. Имя файла в директории можно изменить, если новое имя уже не встречается в директории. В UNIX это делается командой mv, например:
mv old_file.txt new_file.txt
Создание символической ссылки. Из элемента директории можно создать символическую ссылку на другую директорию. Это может оказаться необходимым, если требуется смоделировать структуру директорий, созданную на другом компьютере, например, на компьютере заказчика, так как системные файлы в программном продукте, например, make-файлы для его сборки, ссылаются на определенные пути доступа к директориям. В UNIX символическая ссылка создается командой ln, например:
cd /my_dir
ln –s /doc doc
Создается символическая ссылка из директории my_dir на директорию /doc, под тем же именем doc. Таким образом, пути /doc и /my_dir/doc указывают на одну и ту же директорию. В UNIX такой прием используется очень часто.
Обход файловой системы. Более сложная операция осуществляет обход дерева директорий, начиная с заданной корневой, например, с целью поиска заданного файла. Например, в системе UNIX команда:
find . –name plan.txt –print
выполняет поиск в текущей директории и всех ее поддиректориях файла plan.txt и выводит на консоль полный путь доступа к каждому найденному файлу с таким именем.
В системе "Эльбрус", как уже было сказано в разделе Особенности системы файлов в "Эльбрусе", создание файла – отдельная операция, не связанная с директорией (справочником) вообще. Только если явно создан элемент справочника, и в него записана ссылка на созданный файл, то она сохраняется, пока сохраняется ссылка на сам справочник.