Операционные системы

Автор работы: Пользователь скрыл имя, 27 Августа 2013 в 21:46, контрольная работа

Краткое описание

При переходе к длинным именам возникает проблема совместимости с ранее созданными приложениями, использующими короткие имена. Чтобы приложения могли обращаться к файлам в соответствии с принятыми ранее соглашениями, файловая система должна уметь предоставлять эквивалентные короткие имена (псевдонимы) файлам, имеющим длинные имена. Таким образом, одной из важных задач становится проблема генерации соответствующих коротких имен.

Содержание

1. Организация файловой системы, назначение Master Boot Record и Boot Record.
2. Синхронизация процессов и потоков.
3. 3. Кэширование информации, условия установки кэш памяти, виды кэш памяти, влияние объёма кэш памяти на производительность ОС.
4. Выводы.
Список литературы.

Прикрепленные файлы: 1 файл

Операционные системы.doc

— 320.50 Кб (Скачать документ)

Рис. 4. Матрица прав доступа

Различают два основных подхода  к определению прав доступа:

  • избирательный доступ, когда для каждого файла и каждого пользователя сам владелец может определить допустимые операции;
  • мандатный подход, когда система наделяет пользователя определенными правами по отношению к каждому разделяемому ресурсу (в данном случае файлу) в зависимости от того, к какой группе пользователь отнесен.

Таким образом, делаем следующий вывод по всему вышесказанному:

  1. Вся информация на дисках хранится в файлах.
  2. На содержимое файла указывает расширение.
  3. Файл открывается той программой, в которой был создан, или универсальной программой.
  4. Файлы со схожим содержимым или одинаковым назначением можно «складывать» в папки (каталоги).
  5. Каталоги (папки), в свою очередь также можно объединять в каталоги (папки).

Таким образом, на диске формируется  упорядоченная структура файлов и каталогов, которая позволяет быстро находить нужную информацию. Такая структура называется файловой системой и выглядит она следующим образом:


  1. Master Boot Record и Boot Record

 

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


 

Признак активности раздела - т.е. признак того, что операционную систему следует загружать именно из этого раздела - может иметь  значения 80h (раздел активен) и 00h (раздел не активен). В общем случае количество активных разделов должно быть не более 1. Если активных разделов нет, значит, с этого жёсткого диска ОС не может быть загружена. Другие значения считаются ошибочными и игнорируются. Впрочем, решение о передаче управления принимает код загрузчика, поэтому значение байта признака загрузочности - аксиома только для стандартных загрузчиков.

Трёхбайтный блок адреса начала и адреса конца раздела  имеют идентичный формат. Здесь фактически используется упаковка значений с тем, чтобы они имели минимальный  объём. Формат упаковки полностью соответствует тому, как эти данные передаются процедурам работы с жёстким диском (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 отсутствует код), методика восстановления в обоих случаях одна и та же.

Информация о работе Операционные системы