- •Основы построения операционных систем
- •Введение
- •1. Основные аспекты операционных систем
- •1.1. Программные системы
- •1.2. Ресурсы вычислительных систем
- •1.3. Функции операционных систем
- •1.3.1. Упрощение доступа к компьютеру
- •1.3.2. Повышение эффективности использования ресурсов
- •1.4. Классификация операционных систем
- •2. Управление файлами
- •2.1. Файлы
- •2.1.1. Имя файла
- •2.1.2. Типы файлов
- •2.1.3. Атрибуты файла
- •2.2. Функции системы управления файлами
- •2.3. Способы организации файлов
- •2.3.1. Последовательное размещение
- •2.3.2. Размещение с помощью сцепленных блоков
- •2.3.3. Организация файлов на основе таблиц размещения
- •2.3.4. Размещение с использованием таблицы индексов
- •2.3.5. Индексно-последовательное размещение
- •2.3.6. Библиотечная структура данных
- •2.4. Методы доступа к содержимому файлов
- •2.4.1. Последовательный доступ
- •2.4.2. Прямой доступ
- •2.4.3. Другие методы доступа
- •2.5. Способы организации файловой структуры
- •2.6. Манипулирование файловой структурой
- •3. Управление памятью
- •3.1. Простое непрерывное распределение
- •3.2. Распределение с несколькими непрерывными разделами
- •3.2.1. Мультипрограммирование и разбиение на разделы
- •3.2.2. Разделы с фиксированными границами
- •3.2.3. Разделы с подвижными границами
- •3.2.4. Своппинг
- •3.3. Организация виртуальной памяти
- •3.3.1. Основные концепции виртуальной памяти
- •3.3.2. Страничная организация памяти
- •3.3.3. Сегментная организация памяти
- •3.3.4. Сегментно-страничная организация памяти
- •3.4. Управление виртуальной памятью
- •3.4.1. Алгоритмы выталкивания страниц
- •3.4.2. Подкачка страниц по запросу
- •3.4.3. Подкачка страниц с опережением
- •3.4.4. Освобождение страниц
- •3.4.5. Размер страниц
- •4. Управление процессами
- •4.1. Концепции процесса
- •4.1.1. Понятие последовательного процесса
- •4.1.2. Состояния процесса
- •4.1.3. Блок управления процессом
- •4.1.4. Планирование процессов
- •4.1.5. Обработка прерываний
- •4.2. Синхронизация параллельных процессов
- •4.2.1. Параллельная обработка
- •4.2.2. Взаимное исключение
- •4.2.3. Алгоритм Деккера
- •4.2.4. Аппаратная реализация взаимного исключения
- •4.2.5. Семафоры
- •4.2.6. Мониторы
- •4.2.7. Передача сообщений
- •4.3. Тупиковые ситуации
- •4.3.1. Условия возникновения дедлоков
- •4.3.2. Основные направления исследований по проблеме тупиков
- •4.3.3. Предотвращение тупиков
- •4.3.4. Обход дедлоков
- •4.3.5. Алгоритм банкира
- •4.3.6. Распознавание дедлоков
- •4.3.7. Восстановление после тупиков
- •5. Управление процессором
- •5.1. Диспетчеризация процессов
- •5.2. Приоритеты
- •5.3. Алгоритмы диспетчеризации с одной очередью
- •5.3.1. Алгоритм fcfs (первый пришедший обслуживается первым)
- •5.3.2. Алгоритм spn (кратчайший процесс - следующий)
- •5.3.3. Алгоритм srt (по наименьшему остающемуся времени)
- •5.3.4. Алгоритм hrrn (по наибольшему относительному времени ответа)
- •5.3.5. Алгоритм циклической диспетчеризации rr
- •5.3.6. Сравнение алгоритмов диспетчеризации с одной очередью
- •5.4. Многоуровневые очереди с обратными связями
- •6. Управление устройствами
- •6.1. Общая организация ввода-вывода
- •6.2. Методы управления периферийными устройствами
- •6.3. Действия по вводу-выводу
- •6.3.1. Буферизация : прочитать и записать
- •6.3.2. Блокирование : получить и поместить
- •6.3.3. Подготовка : открыть и закрыть
- •6.4. Управление магнитными дисками
- •6.4.1. Физическая структура магнитного диска
- •6.4.2. Физическая структура формата данных дискеты
- •6.4.3. Логическая структура магнитного диска
- •6.4.4. Планирование работы с магнитными дисками
- •Заключение
- •Список используемых источников
- •Оглавление
2.3. Способы организации файлов
Под организацией файлов имеется в виду способ расположения записей файла во внешней памяти. В настоящее время наиболее известны следующие способы организации файлов :
- последовательное размещение;
- размещение с помощью сцепленных блоков;
- организация на основе таблиц размещения;
- размещение с использованием таблицы индексов;
- индексно-последовательное размещение;
- библиотечная структура данных.
2.3.1. Последовательное размещение
При последовательном размещении каждый файл занимает во внешней памяти совокупность последовательных блоков. Такой способ является единственно возможным на магнитной ленте: файлы последовательно распределяются на ленте и каждый файл отделяется от последующего специальным символом, который называется конец файла. Двойной конец файла обозначает конец используемой части ленты. Дескриптор файла обычно располагается в начале и иногда повторяется в конце файла. Дескриптор файла содержит указатель на первый блок, а также число занятых блоков (рис.2.2). Символ конца файла автоматически распознается контроллером лентопротяжки. Операция «поиск конца файла» позволяет быстро переходить от одного начала файла к другому, например чтобы найти файл с данным именем.
Рис.2.2.
Последовательное размещение может быть также использовано и на диске. Основное преимущество такого размещения - высокая эффективность последовательного поиска (информация о последовательных логических адресах размещается в смежных блоках). Кроме того, возможен эффективный прямой доступ (вычисление физического адреса, исходя из логического, осуществляется просто и не требует обращения к диску). Однако такое размещение представляет большие трудности в тех случаях, когда частыми являются операции создания, уничтожения и изменения размеров файлов. К недостаткам следует отнести:
- раздробленность внешней памяти после большого числа операций создания и уничтожения файлов: свободное пространство разбивается на большое число малых зон, плохо приспособленных к использованию. Раздробленность можно устранять путем периодической реорганизации файлов «уплотнением», но это очень длительная и дорогостоящая операция;
- трудности при изменении размера файла: файл можно увеличить лишь путем его полного копирования в более обширную зону или, предвидя расширение, выделять неиспользуемое дополнительное пространство. Укорачивание файлов ведет к раздробленности пространства.
Поэтому последовательное размещение обычно на диске не используется, кроме тех случаев, когда названные выше недостатки не играют большой роли:
- размер и число файлов не изменяются (например, создаваемые раз и навсегда файлы, предназначенные только для чтения);
- рассматриваются очень простые системы для микрокомпьютеров или основным требованием является простота реализации.
2.3.2. Размещение с помощью сцепленных блоков
Внешняя память, выделяемая файлу, не обязательно должна быть единой связной областью. Экономится много времени, если файл не переписывается на новое место, даже при увеличении его объема. Такая экономия достигается хранением файла отдельными блоками и установлением связей между ними. Обычно принято размер блока выбирать равным полной дорожке дискового накопителя, чтобы система файлов соответствовала устройствам внешней памяти. Одним из на распространенных способов реализации подобных структур является размещение с помощью сцепленных блоков.
В этом случае физические блоки фиксированной длины, содержащие последовательные логические ячейки, сцеплены между собой. Каждый блок содержит две части: блок данных и указатель следующего блока для сцепления. Дескриптор файла содержит указатель на первый и последний блок, а также число занятых блоков (рис.2.3).
Рис. 2.3.
Последний блок файла, который может быть заполненным не полностью, должен включать указание на число ячеек, содержащихся в нем. Поэтому в каждом блоке для этой информации нужно оставить одну ячейку или по крайней мере бит, маркирующий последний блок. Файл легко удлинять, добавляя информацию в конец, потому что имеется указатель на последний блок.
Такой способ размещения хорошо приспособлен к последовательному доступу. Действительно, для обращения к блоку нужно лишь следовать по цепочке. Прямой доступ оказывается дорогим, так как для каждого чтения указателя необходимо обращение к диску. При такой организации памяти, кроме того, трудно осуществлять расширения (отличные от удлинения в конце); надо было бы допускать частично заполняемые блоки с риском потери части пространства, предусматривать двойное сцепление и т. д.
Примером использования цепочек файлов в MS DOS является таблица отображения файлов (FAT - File Allocation Table). Она представляет собой карту (образ) области данных, в которой описывается состояние каждого кластера, и связываются в цепочку принадлежащие одному файлу или некорневому каталогу кластеры. Кластер - это минимальная единица дисковой памяти, выделяемой файлу. На дискетах кластер занимает один или два сектора (блока) размером 512 байтов, а на жестких дисках - обычно четыре или восемь секторов.