Автор работы: Пользователь скрыл имя, 05 Апреля 2011 в 18:19, курсовая работа
В данной курсовой работе необходимо разработать программу для поиска в свободных кластерах символьных последовательностей из заданного набора.
Федеральное агентство по образованию
ГОУ ВПО «Уральский государственный технический университет – УПИ
имени первого
Президента России Б.Н.Ельцина»
Кафедра
«Автоматика и информационные технологии»
Оценка
проекта: ____________
Члены комиссии: ____________
____________
Программа
поиска в свободных кластерах
символьных последовательностей из
заданного набора
Курсовая работа по дисциплине
«Системное
программное обеспечение»
Пояснительная
записка
23.01 000000
042 ПЗ
Руководитель С. С. Соколов
доц. тех.
наук
Студент С. И. Суриков
Р-37031
2010
В данной курсовой работе необходимо разработать программу для поиска в свободных кластерах символьных последовательностей из заданного набора.
В современном быстроменяющемся мире одним из важнейших факторов успеха стало владение информацией. Зачастую даже имея данные, сохранённые на электронном или механическом носителе, сложно запомнить, что именно и где хранится. С появлением понятия файл, поиск информации на диске свёлся к поиску необходимого файла. Для удобства пользования электронными носителями постоянно создаются и совершенствуются файловые системы и системы управления томами.
Так называемая файловая система FAT использовалась во всех версиях MS-DOS и в первых двух выпусках OS/2 (версии 1.0 и 1.1). Каждый логический том имеет собственный FAT, который выполняет две функции: содержит информацию распределения для каждого файла в томе в форме списка связей модулей распределения (кластеров) и указывает, какие модули распределения свободны.
Кроме
того, использование относительно больших
кластеров на жестких дисках привело к
большому количеству неиспользуемых участков,
так как в среднем для каждого файла половина
кластера была потрачена впустую.
Персональный компьютер обычно комплектуется одним или более накопителями на магнитных дисках (НМД). Однако операционная система позволяет вам разбивать НМД на части, причем каждая часть будет рассматриваться MS-DOS как отдельный, "логический" диск.
Первые персональные компьютеры IBM PC были укомплектованы только накопителями на гибких магнитных дисках (НГМД). Дискеты позволяют хранить относительно небольшие объемы информации, поэтому делить их на части не имеет смысла. Следующая модель компьютера IBM PC/XT имела НМД объемом 10 или 20 Мбайт. При использовании таких дисков и операционных систем MS-DOS версий до 3.20 у пользователей не возникало никаких проблем и желания разбить диск относительно малого объема на еще меньшие части.
Проблемы возникли, когда производители НМД освоили выпуск дисков объемом 40 Мбайт и больше. Оказалось, что используемый в MS-DOS механизм 16-разрядной адресации секторов не позволяет использовать диски объемом, большим, чем 32 Мбайт.
Операционная система MS-DOS версии 3.30 предложила выход из создавшегося положения. С помощью программы fdisk.exe можно было разбить физический диск на логические, каждый из которых не должен превышать по объему 32 Мбайт.
Впоследствии
в версии 4.00 операционной системы MS-DOS
и в версии 3.31 операционной системы
COMPAQ DOS указанное выше ограничение на размер
логического диска было снято, однако
схема разделения физического диска на
логические диски полностью сохранилась.
Самый первый сектор логического диска (и самый первый сектор на системной дискете) занимает загрузочная запись (Boot Record). Эта запись считывается из активного раздела диска программой главной загрузочной записи (Master Boot Record) и запускается на выполнение. Задача загрузочной записи - выполнить загрузку операционной системы. Каждый тип операционной системы имеет свою загрузочную запись. Даже для разных версий одной и той же операционной системы программа загрузки может выполнять различные действия.
Кроме программы начальной загрузки операционной системы в загрузочной записи находятся параметры, описывающие характеристики данного логического диска. Все эти параметры располагаются в самом начале сектора, в его так называемой форматированной области. Формат этой области изменился в версии 4.0 операционной системы MS-DOS.
Формат загрузочной записи для версий MS-DOS, более ранних, чем 4.0 имеет вид, представлены в табл. 1.
Таблица 1
Формат загрузочной записи MS-DOS версии ниже 4.0
Смещение | Размер | Содержимое |
0 | 3 | Команда JMP xxxx - ближний переход на программу начальной загрузки |
3 | 8 | Название фирмы-изготовителя операционной системы и версия, например: "IBM 4.0" |
11 | 13 | Блок параметров BIOS (BPB) |
24 | 2 | Количество секторов на дорожке |
26 | 2 | Количество головок (поверхностей диска) |
28 | 2 | Количество скрытых секторов, эти секторы могут использоваться для схемы разделения физического диска на разделы и логические диски |
В
самом начале загрузочного сектора
располагается команда
Название фирмы-изготовителя не используется операционной системой.
Со смещением 11 располагается BPB - блок параметров BIOS , основная работа с которым и будет проводиться в ходе создания программы. Именно этот блок содержит всю необходимую информацию для создания программы. Этот блок активно используется дисковыми драйверами.
Для современных версий MS-DOS загрузочный сектор имеет формат отличный от используемого в версиях более ранних, чем 4.0. Формат загрузочного сектора современных версий MS-DOS имеет структуру, представленную в табл. 2.
Таблица 2
Формат загрузочной записи современных версий MS-DOS
Смещение | Размер | Содержимое |
0 | 3 | Команда JMP xxxx - ближний переход на программу начальной загрузки |
3 | 8 | Название фирмы-изготовителя операционной системы и версия |
11 | 25 | Extended BPB - расширенный блок параметров BIOS |
36 | 1 | Физический номер устройства (0 -НГМД, 80h -НМД) |
37 | 1 | Зарезервировано |
38 | 1 | Символ ')' - признак расширенной загрузочной записи |
39 | 4 | Серийный номер диска (Volume Serial Number), создается во время форматирования диска |
43 | 11 | Метка диска (Volume Label) |
54 | 8 | Зарезервировано, обычно содержит запись типа 'FAT12 ', которая идентифицирует формат таблицы размещения файлов FAT |
Первые два поля в загрузочном секторе аналогичны описанным раньше.
Поле со смещением 38 всегда содержит символ ')'. Этот символ означает, что используется формат расширенной загрузочной записи.
Серийный номер диска формируется во время форматирования диска на основе даты и времени форматирования. Это поле может быть использовано для определения факта замены дискеты.
Метка
диска формируется при
Рассмотрим более детально формат расширенного блока параметров BIOS.
Поле загрузочного сектора со смещением 11 содержит расширенный блок параметров BIOS . Он состоит из обычного блока BPB и дополнительного расширения, структура расширенного блока представлена в виде табл. 3.
Таблица 3
Расширенный блок параметров BIOS
Смещение, байт | Размер, байт | Имя поля | Описание |
1 | 2 | 3 | 4 |
0 | 2 | sect_siz | Количество байт в одном секторе диска |
2 | 1 | clustsiz | Количество секторов в одном кластере |
3 | 2 | res_sect | Количество зарезервированных секторов |
5 | 1 | fat_cnt | Количество таблиц FAT |
6 | 2 | root_siz | Максимальное количество дескрипторов файлов в корневом каталоге диска |
8 | 2 | tot_sect | Общее количество секторов на носителе данных (в разделе MS-DOS) |
10 | 1 | media | Байт-описатель среды носителя данных |
11 | 2 | fat_size | Количество секторов, занимаемых одной копией FAT |
13 | 2 | sectors | Количество секторов на дорожке |
15 | 2 | heads | Количество магнитных головок |
17 | 2 | hidden_l | Количество скрытых секторов для раздела, который по размеру меньше 32 Мбайт |
1 | 2 | 3 | 4 |
19 | 2 | hidden_h | Количество скрытых секторов для раздела, превышающего по размеру 32 Мбайт |
21 | 4 | tot_secs | Общее количество секторов на логическом диске для раздела, превышающего по размеру 32 Мбайт |