- •Основы построения операционных систем
- •Введение
- •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. Планирование работы с магнитными дисками
- •Заключение
- •Список используемых источников
- •Оглавление
6.4. Управление магнитными дисками
6.4.1. Физическая структура магнитного диска
Информация на дисках размещается вдоль концентрических окружностей, называемых дорожками. Дорожки с одинаковыми номерами на различных поверхностях диска (в общем случае - пакета дисков) образуют цилиндр. Доступ к информации, записанной в одном цилиндре, осуществляется без перемещения магнитных головок. Число дорожек на поверхности дискеты (число цилиндров), как правило, составляет 40 или 80. Жесткие диски могут иметь 305, 614 или другое число цилиндров. Количество рабочих поверхностей и цилиндров является аппаратной характеристикой дисковода.
Каждая дорожка содержит определенное число секторов. Под сектором понимают участок дорожки магнитного диска, хранящий минимальную порцию информации, которая может быть считана с диска или записана на него. Между секторами имеется межсекторный интервал. Число секторов на дорожке задается программно (драйвером устройства).
Каждый сектор состоит из поля данных и поля служебной информации, ограничивающей и идентифицирующей его. Размер сектора (точнее - емкость поля данных) также устанавливается драйвером. Пользовательский интерфейс DOS поддерживает единственный размер сектора - 512 байт. BIOS (Basic Input Output System - базовая система ввода-вывода) же непосредственно предоставляет возможности работы с секторами размером 128, 256, 512 или 1024 байт. Если управлять контроллером непосредственно, то можно обрабатывать и секторы с другими размерами.
Число цилиндров, секторов на дорожке и размер сектора устанавливаются при форматировании диска и в последующем без повторной его инициализации изменены быть не могут.
Заметим, что изощренным программированием контроллера дисковода можно добиться форматирования диска с различными числом секторов на дорожках и размерами секторов. Такая техника часто используется разработчиками программного обеспечения с целью защиты программных продуктов от несанкционированного копирования. Например, на одной из дорожек можно создать дополнительный сектор, содержащий ключ (пароль). Программный продукт при запуске проверяет его наличие и реагирует на его отсутствие прекращением работы. Системные средства копирования дисков и файлов оставят этот сектор незамеченным, вследствие чего несанкционированная копия программного изделия функционировать не будет. Описанная техника широко применялась для 8-секторных дискет, где остается место для девятого сектора. Имеются и такие системы защиты, которые записывают ключи в межсекторные промежутки.
Физический адрес сектора на диске представляется триадой [t-h-s], где t (track) - номер цилиндра (дорожки на поверхности диска), h (head) - номер рабочей поверхности диска (магнитной головки), а s (sector) - номер сектора на дорожке. Номер цилиндра t лежит в диапазоне 0..Т-1, где Т - количество цилиндров. Номер рабочей поверхности диска h принадлежит диапазону 0..H-1, где Н - число магнитных головок в приводе. Номер сектора на дорожке s указывается в диапазоне 1..S, где S - количество секторов на дорожке. Например, триада [1-0-2] адресует сектор 2 на дорожке 0 (обычно верхняя рабочая поверхность) цилиндра 1.
Необходимо помнить, что обмен информацией между ОЗУ и дисками физически осуществляется только секторами.