Логическая структура магнитного диска
Каждая дискета обычно рассматривается операционной системой как единственный логический диск.
Жесткий диск организуется иначе. Он может быть подразделен на несколько разделов, используемых различными операционными системами. Максимальное число разделов равно четырем. Так DOS может использовать один или два раздела. Первый из них должен быть первичным разделом DOS, второй - может быть только расширенным разделом DOS. В первичном разделе может быть сформирован только один логический диск, а в расширенном - любое их количество. Каждый логический диск «управляется» своим логическим приводом.
На логическом уровне считается, что секторы логического диска имеют непрерывную нумерацию от 0 до N-1, где N = T x H x S - количество секторов на диске. Таким образом, сначала (начиная с нуля) нумеруются секторы на нулевой дорожке нулевой поверхности, затем - на нулевой дорожке первой поверхности и т.д. После нумерации секторов на нулевых дорожках всех поверхностей этот процесс повторяется для первой и всех последующих дорожек.
Каждому логическому диску на винчестере соответствует своя (относительная) логическая нумерация. Физическая же адресация жесткого диска - сквозная.
Логическое дисковое пространство любого логического диска делится на две области (рис. 6.7) : системную область и область данных.
Рис. 6.7. Логическая структура логического диска
Системная область логического диска создается и инициализируется при форматировании, а в последующем обновляется при манипулировании файловой структурой. Область данных логического диска содержит файлы и каталоги, подчиненные корневому. Она (в отличие от системной области) доступна через пользовательский интерфейс DOS.
Системная область состоит из следующих, расположенных в логическом адресном пространстве подряд, компонентов :
- загрузочной записи (BR - Boot Record);
- зарезервированных секторов (RSec - Reserved Sector);
- таблицы размещения файлов (FAT - File Allocation Table);
- корневого каталога (RDir - Root Directory).
Загрузочная запись находится в секторе с физическим адресом [0-0-1] (для дискеты) и содержит блок параметров диска (DPB - Disk Parameter Block), а также системный загрузчик (SB - System Bootstrap). Сектор, содержащий BR, называется стартовым.
За загрузочной записью могут располагаться несколько резервных секторов, используемых операционной системой. Стартовый сектор логического диска относится к числу резервных секторов, и обычно это - единственный резервный сектор на диске.
Таблица размещения файлов является очень важной информационной структурой. Она представляет собой карту (образ) области данных, в которой описывается состояние каждого кластера и связываются в цепочку принадлежащие одному файлу (некорневому каталогу) кластеры. Кластер - это минимальная единица дисковой памяти, выделяемая файлу (или некорневому каталогу). Каждый из последних занимает целое число кластеров. Последний кластер при этом может быть задействован не полностью. Кластер представляет собой один или несколько смежных секторов в логическом адресном пространстве (точнее - только в области данных). На дискетах кластер занимает один или два сектора, а на жестких дисках - обычно четыре или восемь секторов. Логическое разбиение области данных на кластеры как совокупности секторов взамен использования одиночных секторов имеет следующий смысл:
- уменьшается возможная фрагментация файлов;
- уменьшается размер FAT, а следовательно, и объем системной области логического диска;
- ускоряется доступ к файлу, так как в несколько раз сокращается длина цепочек фрагментов дискового пространства, выделенных для него.
Однако слишком большой размер кластера ведет к неэффективному использованию области данных, особенно в случае большого количества маленьких файлов.
В связи с тем, что FAT используется при доступе к диску очень интенсивно, она обычно загружается в ОЗУ (в буфера ввода-вывода или кэш) и остается там настолько долго, насколько это возможно.
Ввиду чрезвычайной важности FAT она обычно хранится в двух идентичных экземплярах (за исключением FAT виртуального диска), второй из которых непосредственно следует за первым. Обновляются копии FAT одновременно. Используется же только первый экземпляр. Если он по каким-либо причинам окажется разрушенным, то произойдет обращение ко второму экземпляру.
Корневой каталог является корнем древовидной файловой структуры логического диска и не может быть удален ни какими средствами. В связи с тем, что память под RDir выделяется статически, имеется ограничение количества содержащихся в нем файлов и подкаталогов.
Некорневые каталоги в области данных размещаются аналогично файлам (динамически), поэтому на их длину ограничение не накладывается.
В BR и FAT хранится дескриптор носителя, чтобы можно было быстро определить формат логического диска.
Особенности формата логического диска на винчестере состоят в следующем:
- увеличен размер кластера;
- увеличены размеры FAT и RDir ;
- элементы FAT могут быть 16-битными;
- максимальное число элементов корневого каталога обычно составляет 512;
- дескриптором носителя является F8Н.
На жестком диске имеется односекторная главная загрузочная запись (MBR - Master Boot Record), содержащая внесистемньй загрузчик (NSB - Non-System Bootstrap), а также таблицу разделов (PT - Partition Table) и имеющая физический адрес [0-0-1]. Таким образом, в стартовом секторе физического жесткого диска находится не BR., а MBR.
Таблица разделов описывает размещение и характеристики имеющихся на винчестере разделов.
Внесистемный загрузчик служит для копирования в ОЗУ системного загрузчика из загрузочной записи логического диска в активном разделе и передачи на него управления, что осуществляется при загрузке операционной системы.
Вслед за главной загрузочной записью размещаются разделы.
Первичный раздел включает только системный логический диск без каких-либо дополнительных информационных структур.
Расширенный раздел можно рассматривать как жесткий диск в миниатюре: он содержит вторичную MBR (SMBR - Secondary MBR), в состав которой вместо PT входит таблица логического диска (LDT - Logical Disk Table), ей аналогичная. LDT описывает размещение и характеристики раздела, содержащего единственный логический диск, а также может специфицировать следующую SMBR. Следовательно, если в расширенном разделе создано m логических дисков, то он содержит m SMBR, связанных в список. Каждый элемент этого списка описывает соответствующий логический диск и ссылается (кроме последнего) на следующий элемент списка.
Планирование работы с магнитными дисками
Как отмечалось ранее, доступ к данным, хранящимся на магнитном диске, осуществляется при помощи ряда магнитных головок записи-чтения, по одной головке на дисковую поверхность. Головке доступны только те данные, которые находятся на участке дисковой поверхности непосредственно под (над) ней. Поэтому для обеспечения возможности доступа к данным тот участок дисковой поверхности, с которого данные будут считываться (или записываться), должен вначале переместиться в процессе вращения дисков так, чтобы оказаться непосредственно под головкой. Время, затрачиваемое на перемещение участка поверхности из текущего положения в положение под головкой чтения-записи, называется временем ожидания.
Каждая из магнитных головок, если она не перемещается в данный момент, описывает на дисковой поверхности круговую дорожку, на которой могут размещаться данные. Все головки закреплены на одной каретке, или блоке позиционера. Каретка с головками может перемещаться по радиусу дисков в том или другом направлении. Группа дорожек, находящихся под всеми головками чтения-записи в каком-то конкретном положении каретки, образует вертикальный цилиндр. Процесс перемещения каретки с головками на новый цилиндр называется операцией поиска цилиндра или подвода.
Таким образом, чтобы получить возможность доступа к конкретной записи данных, расположенной на диске с перемещаемыми головками, в общем случае необходимо выполнить несколько операций. Прежде всего каретку необходимо установить на соответствующий цилиндр (поиска цилиндра). Затем нужно дождаться, когда под головкой окажется сектор, содержащий необходимую запись (это - поиск записи или поиск на дорожке, с которым связано время ожидания). Затем сама запись, которая в принципе может иметь произвольный размер (несколько секторов вплоть до полного размера круговой дорожки), должна пройти под головкой чтения-записи (это - так называемое время передачи). Поскольку каждая из перечисленных операций связана с механическим движением, общее время, требуемое для доступа к конкретной записи, может составлять до 0,1 секунды, что очень много по сравнению с весьма высокими скоростными показателями центральных устройств вычислительной машины.
В мультипрограммных вычислительных системах одновременно выполняется много процессов, которые могут генерировать запросы на обращение к дискам. Поскольку эти процессы чаще всего делают запросы гораздо быстрее, чем их обслуживают дисковые устройства с перемещающимися головками, то для каждого устройства формируется очередь запросов. Чтобы свести к минимуму время, затрачиваемое на поиск нужных записей, целесообразно упорядочить запросы по какому-либо принципу. Этот процесс называется планированием работы с диском. Планирование требует анализа ожидающих своей очереди запросов, чтобы определить наиболее эффективный порядок их обслуживания (таким образом, чтобы их выполнение обеспечивалось при минимальных механических перемещениях).
Наиболее распространенными алгоритмами планирования работы с дисками в настоящее время являются:
- первый пришедший обслуживается первым;
- с наименьшим временем поиска - первым;
-сканирования;
- циклического сканирования;
-N-шагового сканирования;
- схема Эшенбаха.
Рассмотрим указанные алгоритмы с учетом того, что очередь запросов содержит цилиндры со следующими номерами: 96, 184, 36, 120, 16, 124, 60, 64 - а головка в начальный момент времени позиционирована над цилиндром с номером 52.
Согласно алгоритму первый пришедший обслуживается первым (FCFS - First-Come-First-Served) запросы обслуживаются в порядке поступления (рис.6.8). Этот алгоритм справедлив в том смысле, что после поступления некоторого запроса его место в очереди фиксируется, и обслуживание никогда не откладывается из-за поступления запроса более высокого приоритета.
Алгоритм FCFS приемлем, если дисковая память работает с малой нагрузкой. Однако при возрастании нагрузки быстро наступает насыщение, и времена ответа становятся слишком большими.
Рис. 6.8. Планирование работы с диском по алгоритму FCFS
В соответствии с алгоритмом с наименьшим временем поиска - первым (SSTF - Shorteset-Seek-Time-First) при позиционировании каретки с магнитными головками следующим выбирается запрос, для которого необходимо минимальное перемещение каретки, даже если этот запрос не является следующим в очереди (рис. 6.9). Поскольку обращения к диску проявляют тенденцию концентрироваться, то запросы на обращение к самым внутренним и самым наружным дорожкам могут обслуживаться гораздо хуже, чем запросы к средним дорожкам, что делает алгоритм SSTF мало пригодным для интерактивных систем. В основном, этот алгоритм применяется в системах пакетной обработки.
Рис. 6.9. Планирование работы с диском по алгоритму SSTF
При алгоритме по принципу сканирования (SCAN) каретка с головками совершает движения туда и обратно над поверхностью, обслуживая все запросы, встречающиеся по пути. Каретка меняет направление движения только в случае, если в текущем направлении больше нет запросов для обслуживания. Алгоритм SCAN в общем аналогична SSTF, если не считать того, что он выбирает для обслуживания тот запрос, для которого характерно минимальное расстояние поиска в привилегированном направлении (рис.6.10). Если в текущий
Рис. 6.10. Планирование работы с диском по алгоритму SCAN
момент привилегированное направление - от внутренних дорожек к наружным, то алгоритм SCAN выбирает запрос с минимальным расстоянием подвода в наружном направлении. При этом каретка с головками не меняет направления своего движения до тех пор, пока она не достигнет самого наружного цилиндра, или пока не выяснится, что больше нет запросов, ожидающих обслуживания при движении в текущем привилегированном направлении. В связи с тем, что головки сканируют диск, совершая движения туда и обратно, на крайних дорожках они бывают реже, чем на средних, однако в меньшей степени, чем при алгоритме SSTF. Алгоритм SCAN является основой большинства реализованных алгоритмов планирования работы с дисковой памятью.
В случае применения алгоритма циклического сканирования(C-SCAN - circular scan) Обслуживая запросы, каретка с головками, обслуживая запросы, движется в одном направлении, а именно в направлении к внутренней дорожке. Если впереди больше нет запросов для обслуживания, каретка скачком возвращается к началу, обслуживая запрос, ближайший к наружной дорожке, а затем продолжает движение внутрь (рис.6.11). Алгоритм C-SCAN можно реализовать таким образом, чтобы запросы, поступающие во время текущего прямого хода, обслуживались при следующем ходе, благодаря чему запросы на обращение к наружным и внутренним дорожкам будут обслуживаться так же, как и запросы к средним дорожкам.
Рис. 6.11. Планирование работы с диском по алгоритму C-SCAN
Алгоритм N-шагового сканирования(N-Step SCAN) является модификацией алгоритма сканирования. Каретка с головками совершает движения туда и обратно, как и в случае SCAN, но на каждом проходе обслуживаются только те запросы, которые существовали в момент начала прохода. Запросы, поступающие во время хода в одном направлении, группируются и перестраиваются таким образом, чтобы их можно было наиболее эффективно обслуживать во время обратного хода. Значение N определяет длину групп запросов, на которые разбивается очередь запросов. При большом значении N данный алгоритм аналогичен алгоритму SCAN, при N = 1 - алгоритму FCFS. На рис.6.12 приведена последовательность обработки очереди запросов при N = 4.
Рис. 6.12. Планирование работы с диском по алгоритму N-Step SCAN
При алгоритме планирования работы с диском по схеме Эшенбаха каретка с головками движется циклически, как в алгоритме С-SСАN. Однако при обслуживании каждого цилиндра осуществляется доступ точно к одной полной дорожке информации независимо от наличия еще запроса для этого цилиндра. Предусматривается переупорядочение запросов для обслуживания в рамках одного цилиндра с учетом углового положения записей, однако если два запроса относятся к перекрывающимся секторам одного цилиндра, то только один из них обслуживается при текущем ходе каретки. Схема Эшенбаха позволяет оптимизировать обработку запросов не только по времени поиска цилиндров, но и с учетом времени поиска записи на дорожке.
ЗАКЛЮЧЕНИЕ
Цель, которая стояла перед автором данного учебного пособия, - изложение основ построения современных операционных систем, типичных для большинства существующих и перспективных ОС.
Безусловно, рамки учебного пособия не позволяют осветить материал в полном объеме. Оказались нерассмотренными вопросы защиты операционных систем, обеспечения безопасности информации, конфигурации операционных систем и т.д. Для их глубокого изучения необходимо обратиться к специальной литературе.
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|