Автор работы: Пользователь скрыл имя, 27 Августа 2013 в 21:46, контрольная работа
При переходе к длинным именам возникает проблема совместимости с ранее созданными приложениями, использующими короткие имена. Чтобы приложения могли обращаться к файлам в соответствии с принятыми ранее соглашениями, файловая система должна уметь предоставлять эквивалентные короткие имена (псевдонимы) файлам, имеющим длинные имена. Таким образом, одной из важных задач становится проблема генерации соответствующих коротких имен.
1. Организация файловой системы, назначение Master Boot Record и Boot Record.
2. Синхронизация процессов и потоков.
3. 3. Кэширование информации, условия установки кэш памяти, виды кэш памяти, влияние объёма кэш памяти на производительность ОС.
4. Выводы.
Список литературы.
Рис. 4. Матрица прав доступа
Различают два основных подхода к определению прав доступа:
Таким образом, делаем следующий вывод по всему вышесказанному:
Таким образом, на диске формируется упорядоченная структура файлов и каталогов, которая позволяет быстро находить нужную информацию. Такая структура называется файловой системой и выглядит она следующим образом:
Master Boot Record – это запись (программный код и данные), которая загружается в память с винчестера и обеспечивает опознание логических разделов на нем, определяет активный раздел и загружает из него загрузочную запись (Boot Record - BR), которая продолжит запуск операционной системы (ОС).
Вообще MBR появился на жестких дисках, начиная с MS DOS версии 3.0, в более ранних версиях жёсткий диск форматировался как дискета, и в первом секторе располагался BR. Соответственно диск представлял из себя один раздел и не мог быть разбит на логические части - правда, при тех размерах дисков, которые тогда выпускались, это было неактуально.
Размер сектора на жестком диске - 512 байт. Этого пространства вполне хватает для размещения там всего необходимого - и кода, и данных. Однако только одна структура должна там присутствовать обязательно - это сигнатура. Этим словом называется специальная, строго установленная, последовательность из 2 байт с шестнадцатеричными значениями 55h AAh, которая записывается в последние 2 байта сектора и соответственно имеет смещение от начала сектора 1FEh. Если хотя бы один из двух последних байтов отличается по значению, считается, что первый сектор не является MBR и не содержит осмысленной информации. Если компьютер при старте, прочитав первый сектор, не обнаружит правильной сигнатуры, он не будет передавать управление располагающемуся там коду, даже если он правильный, а выдаст сообщение о том, что главная загрузочная запись не найдена. Или будет пробовать найти её на других устройствах - например, на дискете. Слегка отклоняясь от темы, замечу, что BR также содержит сигнатуру 55h AAh в последних двух байтах.
Перед сигнатурой, вплотную к ней, расположены 4 блока данных по 16 байтов каждый (соответственно со смещением от начала сектора 1BEh, 1CEh, 1DEh, 1EEh). Совокупность этих блоков называется Таблица Разделов, Partition Table (PT), а каждая отдельная запись - элементом таблицы разделов (Partition Table Entry) или просто разделом (Partition). Этих 16 байтов вполне достаточно, чтобы указать все необходимые характеристики раздела, а именно: тип раздела, признак активности раздела, начальный и конечный сектора раздела в формате Цилиндр (дорожка) - Головка (сторона) - Сектор (Cylinder - Head - Sector, CHS), относительный номер первого сектора (относительно MBR) и количество секторов в разделе.
Всё остальное пространство сектора занято программным кодом, который обеспечивает разбор PT, поиск активного раздела, загрузку в память BR этого раздела и передачу ему управления. Как легко подсчитать, на код остаётся 512 - 4 * 16 - 2 = 446 байт. Этого пространства с избытком хватает для выполнения указанных действий.
Итак, общая структура MBR может быть представлена следующей таблицей:
Смещение |
Длина |
Описание |
000h |
446 |
Код загрузчика |
1BEh |
64 |
Таблица разделов |
16 |
Раздел 1 | |
1CEh |
16 |
Раздел 2 |
1DEh |
16 |
Раздел 3 |
1EEh |
16 |
Раздел 4 |
1FEh |
2 |
Сигнатура (55h AAh) |
Каждый 16-байтный блок, описывающий один раздел, имеет следующую структуру:
Смещение |
Длина |
Описание |
00h |
1 |
Признак активности раздела |
01h |
1 |
Начало раздела - головка |
02h |
1 |
Начало раздела - сектор (биты 0-5), дорожка (биты 6,7) |
03h |
1 |
Начало раздела - дорожка (старшие биты 8,9 хранятся в байте номера сектора) |
04h |
1 |
Код типа раздела |
05h |
1 |
Конец раздела - головка |
06h |
1 |
Конец раздела - сектор (биты 0-5), дорожка (биты 6,7) |
07h |
1 |
Конец раздела - дорожка (старшие биты 8,9 хранятся в байте номера сектора) |
08h |
4 |
Смещение первого сектора |
0Ch |
4 |
Количество секторов раздела |
Код типа раздела представляет собой однобайтовый идентификатор. Если его значение - 00h, то считается, что в данном элементе PT не содержатся данные о разделе, и его содержимое игнорируется. Любое ненулевое значение означает, что в указанном пространстве находится раздел определённого типа. Некоторые значения однозначно указывают тип раздела, некоторым соответствуют несколько возможных типов, и определение конкретного типа возлагается на операционную систему, остальные зарезервированы для будущего использования. Рассмотрим таблицу тех типов разделов, которые создаются операционными системами Windows 9x и Windows NT/2000/XP:
Код |
Тип раздела |
01h |
12-битная FAT |
04h |
16-битная FAT до 32 Мбайт |
05h |
Расширенный раздел |
06h |
16-битная FAT свыше 32 Мбайт |
07h |
Windows NT NTFS (и некоторые другие - тип определяется по содержимому BR) |
0Bh |
32-битная FAT |
0Ch |
32-битная FAT с использованием расширенного управления INT13 |
0Eh |
LBA VFAT (то же что и 06h, с использованием расширенного управления INT13) |
0Fh |
LBA VFAT (то же что и 05h, с использованием расширенного управления INT13) |
17h |
Скрытый раздел NTFS |
1Bh |
Скрытый раздел 32-битной FAT (то же что 0Bh) |
1Ch |
Скрытый раздел 32-битной FAT с использованием расширенного управления INT13 (то же что 0Ch) |
1Eh |
Скрытый раздел LBA VFAT (то же что и 06h, с использованием расширенного управления INT13) |
86h |
Раздел FAT-16 stripe-массива Windows NT |
87h |
Раздел NTFS stripe-массива Windows NT |
B6h |
Зеркальный master-раздел FAT-16 Windows NT |
B7h |
Зеркальный master-раздел NTFS Windows NT |
C6h |
Зеркальный slave-раздел FAT-16 Windows NT |
C7h |
Зеркальный slave-раздел NTFS Windows NT |
Признак активности
раздела - т.е. признак того, что операционную
систему следует загружать
Трёхбайтный блок адреса начала и адреса конца раздела имеют идентичный формат. Здесь фактически используется упаковка значений с тем, чтобы они имели минимальный объём. Формат упаковки полностью соответствует тому, как эти данные передаются процедурам работы с жёстким диском (Int 13h), находящимся в BIOS компьютера, поэтому и накладные вычислительные расходы получаются минимальными. При этом цилиндры и дорожки нумеруются, начиная с нулевого значения, а сектора - почему-то с первого, так сложилось исторически.
Сектор, на который указывает адрес начала раздела, содержит в себе специальную запись, которая называется загрузочной записью (BR).
Как уже сказано, MBR содержит 4 блока данных об элементах таблицы разделов. Это означает, что максимальное количество разделов, которое может быть описано в MBR, равно четырём. Однако это отнюдь не означает, что максимальное число разделов, на которые может быть разделён накопитель, равно четырём. Для преодоления этого барьера был введён специальный тип раздела с кодом 05h - расширенный раздел (Extended Partition).
Расширенный раздел сильно отличается от всех остальных типов разделов. Во-первых, он описывает не раздел, а область пространства накопителя, в которой расположены другие разделы. При этом количество находящихся в нём разделов теоретически не ограничено. Правда, те разделы, которые расположены в этой области, несколько "ограничены в правах", самым существенным ограничением является то, что они не могут быть активными (вернее, можно сделать так, что из такого раздела ОС будет загружена, но штатные средства большинства существующих ОС этого не позволяют, придётся использовать специальные средства). Во-вторых, в MBR должна присутствовать только одна запись о расширенном разделе. Вернее, их можно сделать и больше (хоть все четыре), но как поведёт себя ОС, встретив такое, предсказать трудно. Например, MS-DOS 6.20 просто игнорирует все расширенные разделы, кроме первого в списке, как будто их вообще нет. В третьих, в отличие от остальных типов разделов в том секторе, который прописан в структуре как сектор начала раздела, содержится отнюдь не BR. Там находится фактически еще один MBR, который имеет сигнатуру и таблицу разделов, но обычно не содержит программного кода (обычно сектор, содержащий таблицу разделов, но не содержащий кода начальной загрузки, называют Abstract MBR). Впрочем, поскольку там нет активных разделов, то и код ни к чему. В таблице разделов такого сектора имеется обычно одна или две записи. Первая описывает обычный раздел (Partition), причём этот раздел должен полностью находиться внутри пространства Extended Partition. Если обычный раздел занимает не всё пространство, в таблице разделов появляется второй элемент, который описывает оставшееся пространство как Extended Partition. В следующем секторе точно также описывается один раздел и, если место осталось, еще запись об Extended Partition. И так продолжается до тех пор, пока пространство не закончится. Фактически все записи о расширенных разделах представляют собой связанную цепь (Extended Partition Chain), в которой от дискового пространства отщипываются кусочки на обычные разделы, пока место не кончится. Ошибка в любом элементе этой цепи приведёт к её рассыпанию, в результате все записи после разрыва не будут найдены ОС, а занимаемое ими пространство ОС будет считать незанятым.
При заполнении цепи обычно ОС придерживается нескольких правил. Во-первых, описанный в очередном "звене" цепи обычный раздел не должен располагаться в середине, поскольку тогда для описания получившихся двух кусков незанятого пространства потребуется в PT этого элемента ввести две записи о двух разных расширенных разделах, а, как говорилось ранее, ОС обычно игнорируют все такие записи кроме первой, и в результате часть дискового пространства выпадет из разбиения. Во-вторых, как правило, запись об обычном разделе делается так, чтобы она занимала начальную область расширенного раздела, а следующий элемент цепи разделов - остаток.
Какие же проблемы могут возникнуть с содержимым MBR?
Во-первых, физическое или логическое разрушение, т.е. повреждение поверхности или иная механическая проблема либо разрушение сервометки, что не даёт возможности прочитать этот сектор с диска. Во-вторых, наиболее часто встречающаяся проблема - это разрушение всей или части информации, содержащейся в секторе, в результате чего разделы либо не могут быть найдены операционной системой, либо их параметры определяются неверно.
Самый лёгкий случай - это разрушение сигнатуры. При этом ОС считает, что в секторе содержится некая случайная информация, "мусор", а сам накопитель вообще не поделён на разделы и никакой информации на нём нет. Для восстановления достаточно всего лишь любым средством прямого доступа к секторам диска (наиболее популярен DISKEDIT из пакета NORTON UTILITIES) восстановить сигнатуру. Большинство ОС, правда, нужно перезагрузить, поскольку ОС, как правило, при старте считывают информацию о разбиении диска на разделы и далее в процессе работы её изменения не учитывают.
Более сложный случай - это разрушение кода. При этом теряется возможность произвести загрузку операционной системы с накопителя, а попытка загрузки, как правило, заканчивается "зависанием" компьютера. В то же время если загрузиться с другого накопителя (другой жесткий диск, дискета, загрузочный CD-ROM и т.п.), то вся информация на накопителе доступна для использования. В этом случае рекомендуется использовать штатные средства восстановления кода загрузчика, которые имеются в каждой ОС. Например, в ОС Windows 9x для этой цели используется программа FDISK.EXE, запускаемая с ключом /MBR.
И наиболее тяжёлый и неприятный случай - это разрушение самой таблица разделов. Впрочем, чаще всего разрушаются все три компонента MBR, но именно разрушение PT приводит к наиболее тяжёлым последствиям, поскольку при этом теряется возможность доступа к хранящейся на накопителе информации. PT может быть разрушена полностью, а может и частично - т.е. часть элементов разрушена, а остальные целы. Бывают случаи, когда PT, находящаяся в MBR, цела, а разрушена запись о разделах в одном из звеньев цепи Extended Partition. Однако поскольку структура MBR и структура абсолютно идентичны (за исключением того что в элементах Extended Partition отсутствует код), методика восстановления в обоих случаях одна и та же.