5.4.2. Физическая организация и адресация файла
Важным компонентом физической организации файловой системы является физическая организация файла, т.е. способ размещения файла на диске.
Основными критериями эффективности физической организации файлов являются:
скорость доступа к данным;
объем адресной информации файла;
степень фрагментированности дискового пространства;
максимально возможный размер файла.
Наиболее простой способ физической организации – размещение файла в виде связанного списка кластеров дисковой памяти. При таком способе в начале каждого кластера содержится указатель на следующий кластер. В этом случае адресная информация минимальна: расположение файла может быть задано одним числом номером первого кластера. Каждый кластер может быть присоединен к цепочке кластеров какого-либо файла. Фрагментация на уровне кластеров отсутствует. Файл может изменять свой размер во время своего существования, наращивая число кластеров. Недостатком является сложность реализации доступа к произвольно заданному месту файла чтобы прочитать пятый по порядку кластер файла, необходимо последовательно прочитать четыре первых кластера, прослеживая цепочку номеров кластеров. Кроме того, при этом способе количество данных файла, содержащихся в одном кластере, не равно степени двойки (одно слово израсходовано на номер следующего кластера), а многие программы читают данные кластерами, размер которых равен степени двойки.
Популярным способом, применяемым, например, в файловой системе FAT, является использование связанного списка индексов. Этот способ является некоторой модификацией предыдущего. Файлу также выделяется память в виде связанного списка кластеров. Номер первого кластера запоминается в записи каталога, где хранятся характеристики этого файла. Остальная адресная информация отделена от кластеров файла. С каждым кластером диска связывается некоторый элемент индекс. Индексы располагаются в отдельной области диска в MS-DOS это таблица FAT (File Allocation Table), занимающая один кластер. Когда память свободна, все индексы имеют нулевое значение. Если некоторый кластер N назначен некоторому файлу, то индекс этого кластера либо становится равным номеру М следующего кластера данного файла, либо принимает специальное значение, являющееся признаком того, что этот кластер является для файла последним. Индекс же предыдущего кластера файла принимает значение N, указывая на вновь назначенный кластер.
При такой физической организации сохраняются все достоинства предыдущего способа: минимальность адресной информации, отсутствие фрагментации, отсутствие проблем при изменении размера. Кроме того, данный способ обладает дополнительными преимуществами. Во-первых, для доступа к произвольному кластеру файла не требуется последовательно считывать его кластеры, достаточно прочитать только секторы диска, содержащие таблицу индексов, отсчитать нужное количество кластеров файла по цепочке и определить номер нужного кластера. Во-вторых, данные файла заполняют кластер целиком, а значит, имеют объем, равный степени двойки.
Еще один способ задания физического расположения файла заключается в простом перечислении номеров кластеров, занимаемых этим файлом. Этот перечень и служит адресом файла. Недостаток данного способа очевиден: длина адреса зависит от размера файла и для большого файла может составить значительную величину. Достоинством же является высокая скорость доступа к произвольному кластеру файла, так как здесь применяется прямая адресация, которая исключает просмотр цепочки указателей при поиске адреса произвольного кластера файла. Фрагментация на уровне кластеров в этом способе также отсутствует.
Последний подход с некоторыми модификациями используется в традиционных файловых системах ОС UNIX s5 и ufs. Для сокращения объема адресной информации прямой способ адресации сочетается с косвенным. В стандартной на сегодняшний день для UNIX файловой системе ufs используется следующая схема адресации кластеров файла. Для хранения адреса файла выделено 15 полей, каждое из которых состоит из 4 байт (рис. 5.5). Если размер файла меньше или равен 12 кластерам, то номера этих кластеров непосредственно перечисляются в первых двенадцати полях адреса. Если кластер имеет размер 8 Кбайт (максимальный размер кластера, поддерживаемого в ufs), то таким образом можно адресовать файл размером до 98 304 байт (819212).
Если размер файла превышает 12 кластеров, то следующее 13-е поле содержит адрес кластера, в котором могут быть расположены номера следующих кластеров файла. Таким образом, 13-й элемент адреса используется для косвенной адресации. При размере в 8 Кбайт кластер, на который указывает 13-й элемент, может содержать 2048 номеров следующих кластеров данных файла и размер файла может возрасти до 16 875 520 байт (8192(12+2048)).
Если размер файла превышает 2060 кластеров (12 + 2048), то используется 14-е поле, в котором находится номер кластера, содержащего 2048 номеров кластеров, каждый из которых хранит 2048 номеров кластеров данных файла. Здесь применяется уже двойная косвенная адресация. С ее помощью можно адресовать кластеры в файлах, содержащих до 8192 (12 + 2048 + 20482) = 3,437661010 байт. И наконец, если файл включает более 12 + 2048 + 20482 = 4 196 364 кластеров, то используется последнее 15-е поле для тройной косвенной адресации, что позволяет задать адрес файла, имеющего следующий максимальный размер:
8192 (12 + 2048 + 20482 + 20483) = 7,04031013байт.
Таким образом, файловая система ufs при размере кластера 8 Кбайт поддерживает файлы, состоящие максимум из 70 триллионов байт данных, хранящихся в 8 миллиардах кластеров. Как видно на рис. 5.5, для задания адресной информации о максимально большом файле требуется: 15 элементов по 4 байта (60 байт) в центральной части адреса плюс 1 + (1 + 2048) + (1 + 2048 + 20482) = 4 198 403 кластера в косвенной части адреса. Несмотря на огромную величину, это число составляет всего около 0,05% от объема адресуемых данных.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
…
- Рецензенты:
- Ответственные за выпуск:
- Оглавление
- Введение
- 1. Назначение и функции операционной системы
- 1.1. Функциональные компоненты операционной системы автономного компьютера
- 1.1.1. Управление процессами
- 1.1.2. Управление памятью
- 1.1.3. Управление файлами и внешними устройствами
- 1.1.4. Защита данных и администрирование
- 1.1.5. Интерфейс прикладного программирования
- 1.1.6. Пользовательский интерфейс
- Вопросы для самопроверки
- Контрольные вопросы
- 1.2. Сетевые операционные системы
- 1.2.1. Сетевые и распределенные ос
- 1.2.2. Два значения термина «сетевая ос»
- 1.2.3. Функциональные компоненты сетевой ос
- 1.2.4. Сетевые службы и сетевые сервисы
- 1.2.5. Встроенные сетевые службы и сетевые оболочки
- 1.3. Требования к современным операционным системам
- Вопросы для самопроверки
- Контрольные вопросы
- 2. Архитектура операционной системы
- 2.1. Ядро и вспомогательные модули ос
- 2.2. Ядро и привилегированный режим
- 2.3. Многослойная структура ос
- 2.4. Аппаратная зависимость ос
- 2.5. Переносимость операционной системы
- Вопросы для самопроверки
- Контрольные вопросы
- 2.6. Микроядерная архитектура
- 2.6.1. Концепция
- 2.6.2. Преимущества и недостатки микроядерной архитектуры
- 2.7. Совместимость и множественные прикладные среды
- 2.7.1. Двоичная совместимость и совместимость исходных текстов
- 2.7.2. Трансляция библиотек
- 2.7.3. Способы реализации прикладных программных сред
- Вопросы для самопроверки
- Контрольные вопросы
- 3. Процессы и потоки
- 3.1. Мультипрограммирование
- 3.1.1. Мультипрограммирование в системах пакетной обработки
- 3.1.2. Мультипрограммирование в системах разделения времени
- 3.1.3. Мультипрограммирование в системах реального времени
- Вопросы для самопроверки
- Контрольные вопросы
- 3.2. Мультипроцессорная обработка
- Вопросы для самопроверки
- Контрольные вопросы
- 3.3. Планирование процессов и потоков
- 3.4. Понятия «процесс» и «поток»
- 3.4.1. Создание процессов и потоков
- 3.4.2. Планирование и диспетчеризация потоков
- 3.4.3. Состояния потока
- 3.4.4. Вытесняющие и невытесняющие алгоритмы планирования
- 3.4.5. Алгоритмы планирования, основанные на квантовании
- 3.4.6. Алгоритмы планирования, основанные на приоритетах
- 3.4.7. Смешанные алгоритмы планирования
- 3.5. Синхронизация процессов и потоков
- 3.5.1. Цели и средства синхронизации
- 3.5.2. Сигналы
- Вопросы для самопроверки
- Контрольные вопросы
- 4. Управление памятью
- 4.1. Функции операционной системы по управлению памятью
- 4.2. Типы адресов
- Вопросы для самопроверки
- Контрольные вопросы
- 4.3. Алгоритмы распределения памяти
- 4.3.1. Алгоритмы распределения без использования внешней памяти Распределение памяти динамическими разделами
- Распределение памяти перемещаемыми разделами
- 4.3.2. Алгоритмы распределения с использованием внешней памяти
- Свопинг и виртуальная память
- Страничное распределение
- Сегментное распределение
- Сегментно-страничное распределение
- Разделяемые сегменты памяти
- Вопросы для самопроверки
- Контрольные вопросы
- 5. Ввод-вывод и файловая система
- 5.1. Задачи операционной системы по управлению файлами и устройствами
- 5.2. Специальные файлы
- 5.3. Логическая организация файловой системы
- 5.3.1. Цели и задачи файловой системы
- 5.3.2. Типы файлов
- 5.3.3. Иерархическая структура файловой системы
- 5.3.4. Имена файлов
- 5.3.5. Монтирование
- 5.3.6. Атрибуты файлов
- 5.3.7. Логическая организация файла
- Вопросы для самопроверки
- Контрольные вопросы
- 5.4. Физическая организация файловой системы
- 5.4.1. Диски, разделы, секторы, кластеры
- 5.4.2. Физическая организация и адресация файла
- 2048 Записей
- 5.5. Физическая организация fat
- Кластер № 17 – начальный кластер файла file1; кластер № 18 – начальный кластер файла file2
- 5.6. Физическая организация файловых систем s5 и ufs
- 5.7. Физическая организация файловой системы ntfs
- 5.7.1. Структура тома ntfs
- 5.7.2. Структура файлов ntfs
- 5.7.3. Каталоги ntfs
- Вопросы для самопроверки
- Контрольные вопросы
- 5.8. Контроль доступа к файлам
- 5.8.1. Доступ к файлам как частный случай доступа к разделяемым ресурсам
- 5.8.2. Механизм контроля доступа
- Имена файлов
- 5.8.3. Организация контроля доступа в ос unix
- Процесс
- Запрос операции
- Вопросы для самопроверки
- Контрольные вопросы
- 5.8.4. Организация контроля доступа в ос Windows nt
- 5.8.5. Разрешения на доступ к каталогам и файлам
- Соотношение индивидуальных и стандартных разрешений для файлов
- Вопросы для самопроверки
- Контрольные вопросы
- Ответы на вопросы для самопроверки
- Лабораторные работы
- Методические указания для проведения лабораторных занятий и выполнения контрольной работы
- Лабораторная работа № 1 Системный реестр Windows 9x. Редактор базы данных регистрации
- Редактор системного реестра. Утилита regedit.Exe
- Командный файл системного реестра
- Утилита редактора системных правил Poledit
- Список ключей системного реестра
- Заблокировать возможность удаления принтеров.
- Заблокировать возможность добавления принтеров.
- Скрыть вкладку «Устройства» утилиты «Система».
- Скрыть вкладку «Профили оборудования» утилиты «Система».
- Лабораторная работа № 2 Администрирование сетевой ос Windows xp
- Установка удаленного терминала (Remote DeskTop Connection)
- Работа с Windows 2003 Server
- Утилиты панели управления
- Управление рабочей станцией
- Администрирование
- Конфигурирование сервера
- Управление контроллером домена
- Предоставление доступа к ресурсам сервера
- Привилегия клиента удаленного терминала
- Панель задач. Управление процессами
- Лабораторная работа № 3 Командные центры Windows 9х
- Утилита «Дата/время»
- Утилита «Клавиатура»
- Утилита «Мышь»
- Утилита «Специальные возможности»
- Утилита «Принтеры»
- Утилита «Шрифты»
- Утилита «Установка и удаление программ»
- Утилита «Система»
- Утилита «Язык и стандарты» Окно утилиты Язык и стандарты содержит вкладки Денежные единицы, Время, Дата, Региональные стандарты, Числа.
- Рабочий стол. Свойства рабочего стола
- Лабораторная работа № 4 Установка ос Fedora Core X. Режимы работы системы. Инсталляция приложений
- Подготовка жесткого диска к инсталляции ос Linux
- Программа редактирования разделов жесткого диска PowerQuest PartitionMagic 8.0
- Создать как: (Create as:) Logical Partition Тип раздела: (Partition type:) Linux Ext3 Размер: (Size:) 9500
- Инсталляция ос Fedora Core X
- Графический интерфейс gnome ос Linux
- Лабораторная работа № 4 Установка ос Fedora Core X
- Текстовый интерфейс ос Linux Алфавитно-цифровой терминал
- Режимы работы ос Linux
- Установка приложений в ос Red Hat
- Лабораторная работа № 5 Подсистемы управления ос
- Управление ресурсами ос Linux
- Графические утилиты управления процессами. Системный монитор
- Подсистемы управления, общие для всех ресурсов
- Администрирование в ос Red Hat. Локальные системы
- Пользовательский интерфейс
- Регистрация событий
- Лабораторная работа № 6 Файловые системы. Сетевые сервисы ос Linux
- Команды и утилиты, предназначенные для работы с файловыми системами
- Создание, редактирование и удаление разделов жесткого диска. Утилита fdisk
- Создание и локализация файловой системы
- Файловые службы и сетевые файловые системы
- Автомонтирование
- Сервисы Linux
- Список вопросов к контрольной работе
- Библиографический список