
- •Операционные системы. Назначение и функции
- •Классификация операционных систем
- •Прерывания
- •Вычислительный процесс и ресурсы
- •Вычислительные процессы и задачи
- •Основные виды ресурсов и возможности их разделения
- •Управление задачами
- •Дисциплины диспетчеризации
- •Управление памятью в операционных системах. Память и отображение
- •Управление памятью в операционных системах. Методы распределения памяти
- •Управление памятью в операционных системах. Методы разрывного распределения памяти
- •Управление памятью в операционных системах. Методы разрывного распределения памяти (продолжение)
- •Управление вводом-выводом в операционных системах
- •Управление вводом-выводом в операционных системах (продолжение)
- •Организация внешней памяти на магнитных дисках
- •Управление ресурсами
- •Способы организации памяти
Организация внешней памяти на магнитных дисках
Содержание лекции:
- основные понятия; логическая структура магнитного диска
Цель лекции:
- ознакомиться с методами организации внешней памяти на магнитных дисках.
Для организации внешней памяти желательно использовать относительно недорогие, но достаточно быстродействующие и емкие устройства с прямым доступом к данным (например, НЖМД – «винчестер»). Без дисковой подсистемы не обходится ни одна современная ОС. Именно на магнитных дисках чаще всего располагается загружаемая ОС, которая обеспечивает удобный для работы интерфейс. Благодаря использованию систем управления файлами, данные на магнитных дисках располагаются в виде именованных наборов данных, называемых файлами. Т.к. по сравнению с другими устройствами внешней памяти дисковые механизмы обладают большими быстродействием и вместительностью, а также средствами прямой адресации блоков данных, дисковую подсистему часто используют для организации механизмов виртуальной памяти.
Из оперативной памяти в НЖМД и обратно информация передается байтами, а записывается на диск и считывается с него уже последовательно (побитно). Т.к. запись и считывание бита данных не являются абсолютно надежными операциями, информация перед записью кодируется с достаточно большой избыточностью (с помощью кодов Рида-Соломона). Избыточное кодирование позволяет обнаружить ошибки и автоматически исправить их. Перед тем, как передать данные в оперативную память, их нужно перекодировать, а т.к. на эту операцию требуется дополнительное время, в ходе обработки данных быстро вращающийся диск успевает повернуться на некоторый угол и данные размещаются на диске блоками. НЖМД относят к блочным устройствам: нельзя прочитать (или записать) байт или несколько байтов, а только блок данных, из которого впоследствии будут извлекаться нужные биты, используемые в вычислениях.
При вращении магнитная головка, зафиксированная в определенном положении некоторое время, образует окружность – дорожку (track), блоки данных на таких окружностях – секторами (sectors). Все сектора пронумерованы, в межсекторных промежутках размещается служебная информация (сервоинформация), помощью которой можно находить искомый сектор.
Группы дорожек (треков) одного радиуса, расположенные на поверхностях магнитных дисков, образуют цилиндры (cylinders). Современные диски имеют по нескольку десятков тысяч цилиндров. Выбор конкретной дорожки в цилиндре осуществляется указанием порядкового номера головки (head) чтения/записи данных, которая образует эту дорожку. Т.о. адрес конкретного блока данных указывается с помощью координат C-H-S – номеров цилиндра, головки и сектора. Устройство управления НЖМД обеспечивает позиционирование блока головок на нужный цилиндр, выбирает заданную поверхность и находит требуемый сектор (устаревший способ адресации). Второй способ основан на том, что все блоки (секторы) пронумерованы.
Для организации возможности загрузки ОС и работы с файлами приняты специальные системные соглашения о структуре диска. Все дисковое пространство может быть поделено (но необязательно) на несколько разделов (partitions), что позволяет организовать на одном физическом устройстве несколько логических (логических дисков). Это структурирует хранение данных. На каждом разделе при необходимости может быть организована своя файловая система.
Структура данных, несущая информацию о логической организации диска, вместе с небольшой программой, с помощью которой можно ее проанализировать, а также найти и загрузить в ОП программу загрузки ОС, получила название главной загрузочной записи (Master Boot Record? MBR). MBR располагается в первом секторе НЖМД, т.е. в секторе с координатами 0-0-1. Программа, расположенная в MBR, называется внесистемным загрузчиком (Non-System Bootstrap, NSB). Т.к. сектор состоит только из 512 байт и помимо программы в нем должна размещаться информация об организации диска, внесистемный загрузчик очень прост, а структура данных – таблица разделов (Partition Table, PT) занимает всего 64 байта. Таблица разделов размещается в MBR по смещению 0х1ВЕ и содержит 4 элемента. Структура записи элемента таблицы разделов приведена в таблице 15.1.
Таблица 15.1
Название записи элемента таблицы разделов |
Длина, байт |
Флаг активности раздела |
1 |
Номер головки начала раздела |
1 |
Номера сектора и цилиндра загрузочного сектора раздела |
2 |
Кодовый идентификатор ОС |
1 |
Номер головки конца раздела |
1 |
Номера сектора и цилиндра последнего сектора раздела |
2 |
Младшее и старшее двухбайтовые слова относительно номера начального сектора |
4 |
Младшее и старшее двухбайтовые слова размера разделов в секторах |
4 |
Каждый элемент таблицы описывает один раздел двумя способами: через координаты C-H-S начального и конечного секторов, а также через номер первого сектора в спецификации LBA и общее число секторов в разделе.
Logical Block Addressing – все секторы диска нумеруются по правилу: LBA=(c*H+h)*S+s-1, где Н – максимальное число рабочих поверхностей в цилиндре; S – количество секторов на одной дорожке; c, h, s – координаты искомого сектора.
Каждый раздел начинается с первого сектора на заданном цилиндре и поверхности и имеет размер не менее одного цилиндра. Т.к. координаты MBR равны 0-0-1, то первый сектор первого раздела в большинстве случаев получается равным 0-1-1 (в координатах LBA – это сектор 64).
Первым байтом в элементе таблицы разделов идет флаг активности раздела Boot Indicator (значение 0 – активен, 128 (80h) – активен). Он позволяет определить, является ли данный раздел системным загрузочным. В результате процесс загрузки ОС осуществляется путем загрузки первого сектора с такого активного раздела и передачи управления на расположенную в нем программу, которая продолжает загрузку. Активным может быть только один раздел, что обычно проверяется NSB, расположенной в MBR.
За флагом активности следует байт номера головки, с которой начинается раздел. Затем 2 байта означающие соответственно номер сектора и номер цилиндра загрузочного сектора, где располагается первый сектор загрузчика ОС. Затем следует кодовый идентификатор System ID (длиной в 1 байт), указывающий на принадлежность данного раздела к той или иной ОС и на установку в этом разделе соответствующей файловой системы. В таблице 2 приведены все известные сигнатуры (кодовые идентификаторы).
Таблица разделов – одна из наиболее важных структур данных на жестком диске. Если эта таблица повреждена, то станут недоступными данные на НЖМД, особенно, если он разбит на несколько разделов, ни одна из установленных на компьютере ОС не будет загружаться.
Последние 2 байта MBR имеют значение 55ААh, т.е. чередующиеся значения 0 и 1. Эта сигнатура выбрана для проверки работоспособности всех линий передачи данных. Значение 55ААh имеется во всех загрузочных секторах.
Разделы диска могут быть 2 типов: первичные (primary) и расширенные (extended). Максимальное число первичных разделов – 4. Если первичных разделов несколько, активным быть может только один. Именно загрузчику, расположенному в активном разделе, передается управление при включении компьютера с помощью внесистемного загрузчика. Для систем, использующих спецификации DOS остальные первичные разделы считаются скрытыми (hidden).
Приложение Б