Учебный курс Операционные среды, системы и оболочки Лекция 12 Лекции читает доктор технических наук, профессор Назаров Станислав Викторович
Операционные системы Логическая организация файлов Модель 1. Неструктурированная последовательность байт (ОС UNIX). Модель 2. Структурированный файл : смешанный, последовательный, индексно-последовательный, индексированный, прямого доступа. Смешанный файл Поле 1Поле 2Поле 3 Поле 1 Поле 2 Поле 3 Последовательный файл Поле 1 Поле 2 Поле 3 Достоинства: рациональное использование дискового пространства, хорошо подхо- дят для полного перебора Недостатки: сложность встав- ки и обновления записей Достоинства: оптимальный вариант для пакетных приложений, записи хранятся в ключевой последовательности, возможно хранение на диске и МЛ. Возможна организация в виде списка, что упрощает вставку новых записей. Каждое поле описывает само себя (имя, длина, значение). Доступ – полный перебор. Записи имеют одну длину, одни и те же поля и хранят только значения полей (одно поле – ключевое). Атрибуты файловой структуры: имя и длина каждого поля. Недостатки: малоэффективен для диалоговых приложений
Операционные системы3 Индексно-последовательный файл ИндексУказатель 123………….123………… Адрес 1 Адрес 2 Адрес 3 Индексный файл Ключ Поля записи Указатель на файл переполнения Файл переполнения 123 Главный файл Достоинства: сокращение времени доступа при увеличении уровней индексации. Недостатки: 1. Эффективная работа с файлом ограничена работой с ключевым полем. 2. Дополнительные затраты времени на периодическое слияние с файлом переполнения.
Операционные системы4 Индексированный файл Типы индексов: 1. Полный индекс – содержит по одному элементу для каждой записи главного файла. 2. Частный индекс содержит элементы для записей, в которых имеется интересующее пользователя поле. 3. При добавлении новой записи в главный файл необходимо обновлять все индексные файлы. 4. Индексы организуются в виде последовательных файлов. Достоинство : быстрый доступ. Недостатки : большая избыточность данных, неэффективность обработки всех записей файла. Полный индекс 1 Полный индекс 2 Частичный индекс Основной файл (записи переменной длины) Файл прямого доступа 1. Обеспечивает прямой доступ к любой записи фиксированной длины по известному адресу (ключу) при хранении файлов на диске. 2. Достоинства: быстрый доступ к любой записи, простота вставки, удаления и модификации записей. 3. Недостатки: записи фиксированной структуры и длины.
Операционные системы Каталоговые системы Корневой каталог Файлы Корневой каталог User 1User 2 User 3 ДЕРЕВО Корневой каталог User 1 User 2 User 3 СЕТЬ Один файл – одно полное имя Один файл – много полных имен Файловый каталог является связующим звеном между системой управления файлами и набором файлов
Операционные системы6 Файловая система 1 Файловая система 2 Общая файловая система после монтирования Обычный файл Каталог Специальный файл-устройство Монтирование / (root) dev t t t r r r user home bin man loc man1 man2 f1 f2
Операционные системы Физическая организация файловой системы Структура диска: пластины, дорожки, цилиндры, секторы, кластеры. Низкоуровневое форматирование – создание дорожек и секторов. Высокоуровневое форматирование – создание разделов и кластеров для определенной файловой системы или нескольких файловых систем. A: Р А З Д Е Л Ы (первичные и расширенные) Загрузочный блок MBR Таблица разделов С:С:D:E: Суперблок – таблица параметров Карта дискового пространства i-узлы Каталоги и файлы Корневой каталог Системная область Область данных ЗС NSB NSB (Non –System Bootstrap) – внесистемный загрузчик
Операционные системы8 Адресация блоков данных диска 1 способ: c – h - s с – номер цилиндра, h – номер головки, s – номер сектора 2 способ: LBA A = (c * H + h) * S + s – 1 H – число рабочих поверхностей в цилиндре, S – количество секторов на дорожке Структура элемента таблицы разделов Nп/пNп/п Назначение Размер в байтах 1.Флаг активности раздела (Boot Indicator) 1 2.Номер головки начала раздела Номер сектора и цилиндра загрузочного сектора раздела 2 4.Системный идентификатор, показывающий на принадлежность к ОС и ФС 1 5.Номер головки конца раздела 1 6.Номер сектора и цилиндра последнего сектора раздела 2 7.Младшее и старшее двухбайтовые слова относительного номера начального сектора 4 8.Младшее и старшее двухбайтовые слова размера раздела в секторах 4 9.Сигнатура-признак MBR и загрузочных секторов – 55AA h (только в конце MBR) 2 Системные идентификаторы: 06h – FAT16, 07h – NTFS, 0Bh – FAT32
Операционные системы9 Первичный раздел Расширенный раздел Не использован Главная таблица разделов Master Boot Record Загрузочный сектор диска C: Карта дискового пространства Данные Первичный раздел (диск C:) Данные Карта дискового пространства Secondary Master Boot Record Загрузочный сектор диска D: Secondary Master Boot Record Загрузочный сектор диска D: Карта дискового пространства Данные Логический диск D: Логический диск E: Расширенный раздел Логический диск D: Логический диск E: Адрес таблицы для диска E: 0 – конец цепочки Не использован Первая таблица логического диска Вторая таблица логического диска Разбиение диска на разделы
Операционные системы10 Физическая организация и адресация файла Критерии эффективности физической организации файла: скорость доступа к данным; объем адресной информации файла; степень фрагментированности дискового пространства; максимально возможный размер файла. Возможные схемы размещения файлов: - непрерывное размещение (непрерывные файлы); - связный список блоков (кластеров) файла; - связный список индексов блоков (кластеров) файла; - перечень номеров блоков (кластеров) файлов; - структуры, называемые I-узлами (index-node – индекс-узел).
Операционные системы Файл А Файл B Достоинства: высокая скорость доступа, минимальный объем адресной информации, нет ограничений на размер файла. Недостатки: нет возможностей для изменения размера файла, высокая степень возможной внешней фрагментации Область применения – компакт-дики Достоинства: минимальная адресная информация, отсутствие внешней фрагментации, возможность изменения размеров файла. Недостатки: медленный доступ, сложность доступа к произвольному блоку файла, некратность блока файла степени двойки. Непрерывное размещениеСвязный список кластеров А)Б)
Операционные системы Область индексов Связный список индексов Перечень номеров кластеров Файл 2, 4, 5 В) Г) Все достоинства варианта А), быстрый доступ к произвольному кластеру файла, полное заполнение кластера, кратное степени двойки Достоинства: высокая скорость доступа к произвольному кластеру благодаря прямой адресации, отсутствие внешней фрагментации. Недостаток: длина адреса зависит от размера файла и может быть значительной. Недостаток: рост адресной информации с увеличением емкости диска Файл 1, 3, 5, 6
Операционные системы13 Атрибуты файла Адрес кластера 1 Адрес кластера 2 Адрес кластера 3 I- узел (index node) Адрес кластера указателей Кластер, содержащий дополнительные дисковые адреса Достоинства: I-узел находится в памяти только при открытии файла, что сокращает объем адресной информации; объем адресной информации не зависит от емкости диска, а лишь от числа открытых файлов; высокая скорость доступа к произвольному кластеру файла благодаря прямой адресации. Недостатки: фиксированного количества адресов может оказаться недостаточным для адресации файла, отсюда необходимость сочетания прямой и косвенной адресации
Операционные системы записей Непосредственная адресация Простая косвенная адресация Двойная косвенная адресация Тройная косвенная адресация Максимальный размер файла 7,0403*10 13 байт Объем адресной информации – 0,05 % от адресуемых данных Файловая система ОС UNIX ufs А д р е с н а я и н ф о р м а ц и я ф а й л а Размер кластера 8 Кбайт
Операционные системы15 Загрузочный сектор (512 байт) FAT 1 FAT 2 (копия) Запись каталога (32 байт) Root directory (512 записей) Data Индексные указатели, связанные с кластерами принимают значения: кластер свободен (0000h); последний кластер файла (fff8h – ffffh); кластер поврежден (fff7h); резервный кластер (fff0h - fff6h) Физическая организация FAT Формат каталога Длина поля Описание 8 байт Имя файла 3 байт Расширение файла 1 байт Атрибуты файла 1 байт Зарезервировано 3 байт Время создания 2 байт Дата создания 2 байт Дата последнего доступа 2 байт Зарезервировано 2 байт Время последней модификации 2 байт Дата последней модификации 2 байт Начальный кластер 4 байт Размер файла
Операционные системы File 1 File Посл Посл. Элементы, указывающие на кластеры файла 1 Элементы, указывающие на кластеры файла 2 Пример FAT - таблицы
Операционные системы17 Основные характеристики файловых систем FAT Разрядность Число Максимальный Максимальный Имя файла указателя кластеров объем кластера размер раздела FAT Кбайт 16 Мбайт 8.3 FAT Кбайт 4 Гбайт FAT Г 32 Кбайт 2 32 по 32 Кбайт NTFS Кбайт 2 64 по 4 Кбайт Программа Fdisk автоматически определяет размер кластера на основе выбранной файловой системы и размера раздела. Существует недокументированный параметр команды Format, позволяющий явно указать размер кластера: Format /z:n, где n – размер кластера в байтах, кратный 512.
Операционные системы Операции управления каталогами и файловые операции Win32 API UNIX Описание CreateDirectory mkdir Создать новый каталог RemoveDirectory rmdir Удалить пустой каталог FindFirstFile opendir Инициализация для начала чтение записей каталога FindNextFile readdir Прочитать следующую запись каталога MoveFile rename Переместить файл из одного каталога в другой SetCurrentDirectory chdir Изменить текущий рабочий каталог CreateFile open Создать (открыть) файл, вернуть дескриптор файла DeleteFile unlink Удалить существующий файл CloseHandle close Закрыть файл ReadFile read Прочитать данные из файла WriteFile write Записать данные в файл SetFilePointer lseek Уст-вить указатель в файле в определенную позицию GetFileAttributes stat Вернуть атрибуты файла LockFile fcntl Заблокировать файл для взаимного исключения Unlock File fcntl Отменить блокировку области файла
Операционные системы19 Способы выполнения файловых операций Последовательность универсальных действий: 1. По символьному имени файла найти его характеристики, которые хранятся в файловой системе на диске. 2. Скопировать характеристики файла в оперативную память, поскольку только в этом случае программный код может их использовать. 3. На основании характеристик файла проверить права пользователя на выполнение запрошенной операции (чтение, запись, удаление и т. п.). 4. Очистить область памяти, отведенную под временное хранение характеристик файла. open close Read 1Read 2Read 3 Read 1Read 2Read 3 Примеры системных вызовов для работы с файлами: fd = create (abc, mode); fd = open (file, how); read (fd, buffer, nbytes); write(fd, buffer, nbytes); Стандартные файлы ввода – вывода, перенаправление вывода read (stdin, buffer, nbytes); write(stdout, buffer, nbytes); file – перенаправление вывода на файл
Операционные системы20 Примеры системных вызовов для работы с файлами fd = creat (name, mode) – файла с заданным режимом защиты; fd = open (name, how) – открыть файл для чтения, записи или и того и другого; s = close (fd) – закрыть открытый файл; n = read (fd, buffer, nbytes) – прочитать данные из файла в буфер; n = write (fd, buffer, nbytes) – записать данные из буфера в файл; position = lseek (fd, offset, whence) – переместить указатель в файле; s = fstat | stat (fd | name, &buf) - получить информацию о состоянии файла. При выполнении программы стандартным образом файлы с дескрипторами 0, 1 и 2 уже открыты для стандартного ввода, стандартного вывода и стандартного потока сообщений об ошибках. n = read (stdin, buffer, nbytes); n = write (stdout, buffer, nbytes) stdin = 0; stdout =1; stderr = 2.
Операционные системы21 Разрешения на доступ к каталогам Стандартные разрешения Специальные разрешения
Операционные системы22 Разрешения на доступ к файлам
Операционные системы23 Квоты дискового пространства