Автор: Пользователь скрыл имя, 12 Апреля 2011 в 13:33, курсовая работа
Целью данного проекта является наглядное моделирование работы файловой системы FAT16, которая использовалась в MS-DOS 3.31.
ВВЕДЕНИЕ 3
1 ПОСТАНОВКА ЗАДАЧИ 4
1.1 ТЕОРЕТИЧЕСКОЕ ВВЕДЕНИЕ 4
1.2 ПОСТАНОВКА ЗАДАЧИ 7
2 ПРОЕКТИРОВАНИЕ 8
2.1 ВЫБОР ОПЕРАЦИОННОЙ СИСТЕМЫ 8
2.2 ВЫБОР ЯЗЫКА ПРОГРАММИРОВАНИЯ 8
2.3 ВЫБОР ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ПРОМЕЖУТОЧНОГО УРОВНЯ 8
2.4 ВЫБОР ИНСТРУМЕНТАЛЬНЫХ СРЕДСТВ 8
3 РАЗРАБОТКА 9
3.1 ВЫБОР АРХИТЕКТУРЫ СИСТЕМЫ 9
3.2 ПОСТРОЕНИЕ ДИАГРАММ ПРЕЦЕДЕНТОВ И ПОСЛЕДОВАТЕЛЬНОСТИ 9
3.3 РАЗРАБОТКА ВАРИАНТОВ ИСПОЛЬЗОВАНИЯ 11
3.4 РАЗРАБОТКА ГРАФИЧЕСКОГО ИНТЕРФЕЙСА 13
3.5 РАЗРАБОТКА АРХИТЕКТУРЫ ПРИЛОЖЕНИЯ 14
3.6 РАЗРАБОТКА АЛГОРИТМОВ РАБОТЫ ПРОГРАММЫ 16
3.6.1 Метод FileCreate_Click класса Mainform. 17
3.6.2 Метод FileDelete_Click класса Mainform. 18
4 ТЕСТИРОВАНИЕ ПРОГРАММЫ 19
4.1 ТЕСТИРУЕМЫЕ ФУНКЦИИ 19
4.2 ТЕСТИРОВАНИЕ 19
5 РУКОВОДСТВО ОПЕРАТОРА 21
5.1 НАЗНАЧЕНИЕ ПРОГРАММЫ 21
5.2 ТЕХНИЧЕСКИЕ СРЕДСТВА ДЛЯ ЗАПУСКА ПРОГРАММЫ 21
5.3 РАБОТА С ПРОГРАММОЙ 21
ВЫВОДЫ 25
ПЕРЕЧЕНЬ ССЫЛОК 26
ПРИЛОЖЕНИЕ А 27
ПРИЛОЖЕНИЕ Б 31
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
Сложность программных продуктов, в том числе и операционных систем в настоящее время растет не по годам и десятилетиям, как пару десятков лет назад, а по месяцам и дням. Но изучить каждую ее часть, находящуюся на нынешнем уровне развития, представляет собой большую трудность. Именно поэтому проще начать с того, что легло в основу каждой подсистемы ОС.
С каждым днем количество людей, заинтересованных в том, как функционирует та или иная часть ОС, растет. Поэтому становится актуальным упрощение процесса обучения и знакомства пользователей с основами работы наиболее значимых частей операционной системы, а так же выполнение этой задачи в более интересном и наглядном виде.
Примером одной из основных частей ОС является файловая система. Это регламент, определяющий способ организации, хранения и именования данных на носителях информации. Она определяет формат физического хранения информации, которую принято группировать в виде файлов. Конкретная файловая система определяет размер имени файла (папки), максимальный возможный размер файла и раздела, набор атрибутов файла. Некоторые файловые системы предоставляют сервисные возможности, например, разграничение доступа или шифрование файлов.
Файловая система связывает носитель информации с одной стороны и API для доступа к файлам — с другой. Когда прикладная программа обращается к файлу, она не имеет никакого представления о том, каким образом расположена информация в конкретном файле, так же, как и на каком физическом типе носителя (CD, жёстком диске, магнитной ленте или блоке флеш-памяти) он записан. Всё, что знает программа — это имя файла, его размер и атрибуты. Эти данные она получает от драйвера файловой системы. Именно файловая система устанавливает, где и как будет записан файл на физическом носителе (например, жёстком диске).
С точки зрения операционной системы, весь диск представляет собой набор кластеров размером от 512 байт и выше. Драйверы файловой системы организуют кластеры в файлы и каталоги (реально являющиеся файлами, содержащими список файлов в этом каталоге). Эти же драйверы отслеживают, какие из кластеров в настоящее время используются, какие свободны, какие помечены как неисправные.
Целью данного проекта является наглядное моделирование работы файловой системы FAT16, которая использовалась в MS-DOS 3.31.
Для реализации данного проекта был выбран язык C#, как один из лучших объектно-ориентированных языков программирования на данный момент.
Результатом данной работы должна быть программа, которая сможет использоваться в процессе образования людьми, которым интересны основы системного программного обеспечения.
1 ПОСТАНОВКА ЗАДАЧИ
1.1 Теоретическое введение
Файловая система FAT представляет собой таблицу размещения файлов, в которой указываются:
1)
непосредственно адреса
2) свободные области дискового пространства;
3) дефектные области диска.
В этой таблице каждому блоку, предназначенному для хранения данных, соответствует 16-битовое значение. Если блок свободен, то значение будет нулевым. Если же блок принадлежит файлу, то значение равно адресу следующего блока этого файла. Если это последний блок в файле, то значение - OxFFF . Существует также специальный код для обозначения плохого блока, не читаемого из-за дефекта физического носителя. В каталоге хранится номер первого блока и длина файла, измеряемая в байтах. Емкость диска при использовании 12-битовой FAT ограничена 4096 блоками (2 Мбайт), что приемлемо для дискет, но совершенно не годится для жестких дисков и других устройств большой емкости. На таких устройствах DOS использует FAT с 16-битовыми элементами. На еще больших (более 32 Мбайт) дисках DOS выделяет пространство не блоками, а кластерами из нескольких блоков.
В таблице FAT кластеры, принадлежащие файлу или каталогу, связываются в цепочки. В 16-разрядной FAT можно иметь до 65536 кластеров. Логическое объединение секторов в кластеры позволяет уменьшить размер таблицы FAT и ускорить доступ к файлу. Однако слишком большой размер кластера приводит к неэффективному использованию области данных, особенно при большом количестве маленьких файлов. Например, при размере кластера в 32 сектора (16 Кб) средняя величина потерь на файл составляет 8 Кб. Поэтому в современных файловых системах размер кластера не превышает 4 Кб.
Поскольку файлы на диске подвержены изменению (удаляются, перемещаются, увеличиваются или уменьшаются), то выделение первого свободного кластера для новой порции данных приводит к фрагментации файлов. Данные одного файла могут располагаться не в смежных кластерах, а в удаленных друг от друга.
Таблица FAT является основой данной файловой системы, поэтому она хранится на диске в двух экземплярах. Обновляются копии FAT одновременно, а для работы используется только первый экземпляр. Если он окажется поврежденным, то произойдет обращение ко второму экземпляру. Утилиты проверки и восстановления файловой системы при обнаружении несоответствия первичной и резервной таблицы FAT осуществляет восстановление основной таблицы, используя данные из её копии.
Система FAT очень проста и имеет одно серьезное достоинство: врожденную устойчивость к сбоям. В то же время у нее есть и ряд серьезных недостатков. Первый недостаток состоит в том, что при каждой операции над файлами система должна обращаться к FAT. Это приводит к частым перемещениям головок дисковода и в результате к резкому снижению производительности. Действительно, исполнение программы на одной и той же машине под MS DOS и под DOS-эмулятором систем UNIX или OS/2 различается по скорости почти в 1,5 раза. Особенно это заметно при архивировании больших каталогов.
В
файловой системе FAT дисковое пространство
логического диска делится на системную
область и область данных. Системная область
создается и инициализируется при форматировании
диска, а в последующем обновляется при
работе. Область данных содержит файлы
и каталоги, которые образуют на диске
иерархическое дерево каталогов, с единственной
директорией не входящей в другие - корневым
каталогом. Область данных доступна через
пользовательский интерфейс операционной
системы. Системная область содержит загрузочную
запись, зарезервированные сектора, таблицу
размещения файлов и корневой каталог.
Для каждого файла и каталога в файловой
системе хранится справочная информация.
Каждый элемент такого справочника занимает
32 байта и содержит: имя файла или каталога,
расширение имени файла, атрибуты файла
- системный, архивный, только для чтения
и др., дату и время создания и последнего
изменения файла, номер начального кластера,
размер файла.
Рисунок 1.1 – Структура файловой системы FAT16
1.2 Постановка задачи
Программа, полученная в результате этого проекта должна в точности моделировать поведение файловой системы FAT16. Результаты работы программы должны выводиться на экран в виде карты диска – последовательных цепочек из заполненных, свободных или поврежденных кластеров.
Так как пользователь сам должен задавать параметры файловой системы и создаваемых файлов, то в GUI должны присутствовать такие поля для ввода данных как задание размера раздела; задание размера кластера; задание размера файла, а также его имени и расширения. Пользователю так же должна быть предоставлена возможность удаления файлов или внесения поврежденных кластеров в созданный раздел.
В том случае, если пользователь неправильно ввел значения или задал слишком большой размер файла, программа должна вывести предупреждение об ошибке и предложить повторить процедуру ввода.
При выходе программа должна предупредить пользователя о закрытии.
Предполагаемая
структура GUI изображена на рисунке
1.2.
Рисунок 1.2 – Интерфейс разрабатываемого ПО
2 ПРОЕКТИРОВАНИЕ
2.1 Выбор операционной системы
В качестве операционной системы для разработки программной системы была выбрана ОС Windows XP. Выбор операционной системы был определен ее функциональными возможностями, а также распространенностью данной ОС.
2.2 Выбор языка программирования
В качестве языка программирования был выбран язык «C#». Этот объектно-ориентированный, со статической типизацией. Он является основным языком разработки приложений для платформы Microsoft .NET.
2.3 Выбор программного обеспечения промежуточного уровня
.NET Framework является новейшей, разработанной компанией Microsoft, платформой для создания обычных программ и веб-приложений.. Данная платформа включает в себя языковую среду CLR. Основное назначение CLR — выполнение приложений, соблюдение всех программных зависимостей, управление памятью, обеспечение безопасности и изоляции приложений, интеграция с языками программирования и т.п.
Данная платформа получила широкое распространение и может быть использована на всех современных версиях операционных системах Windows (начиная с Windows 2000).
2.4 Выбор инструментальных средств
В качестве системы разработки была выбрана IDE Microsoft Visual Studio 2008. Данная система совместима с семейством операционных системам Windows и обладает рядом оптимизаций для программирования именно под эти ОС.
Данная среда разработки обладает рядом преимуществ: IntelliSense, система MSDN, встроенная подсветка ошибок.
IntelliSense – встроенная технология, позволяющая ускорить процесс набора текста программы путем автоматической генерации списка доступных для вставки в данном месте программы инструкций и ключевых слов.
Среда разработки интегрируется со справочной системой MSDN, которая содержит обширный набор информации о .NET Framework, языках программирования .NET и многом другом.
3 разработка
3.1 Выбор архитектуры системы
На
данный момент существует несколько
разновидностей системных архитектур.
Одним из примеров является двухуровневая
системная архитектура (рисунок 3.1). В основе
ее уровней находятся: User Interface, Business Logic.
Исходя из анализа поставленной задачи,
был выбран именно этот тип системной
архитектуры. Это можно объяснить тем,
что разрабатываемая программа должна
реализовывать определенный алгоритм
– Business Logic, взаимодействовать непосредственно
с пользователем – User Interface.
Рисунок 3.1 – Двухуровневая системная архитектура
3.2 Построение диаграмм прецедентов и последовательности
Проведя анализ поставленной задачи, мы выявили следующих активных актеров, работающих с разрабатываемой программой:
Функции, которые могут использовать файловая система и пользователь, а также отношения между ними можно визуализировать с помощью диаграммы прецедентов (рисунок 3.2).
Рисунок
3.2 – Диаграмма вариантов
Прецедент «Создание раздела» заключается в создании нового раздела FAT16 для работы с ним. При выполнении данного прецедента сразу попадаем в прецедент «Ввод данных с клавиатуры».
Прецедент «Создание файла» заключается в создании нового файла в заранее созданном разделе. При выполнении данного прецедента сразу попадаем в прецедент «Ввод данных с клавиатуры».
Прецедент «Удаление файла» заключается в удалении созданного файла по его порядковому номеру. При выполнении данного прецедента сразу попадаем в прецедент «Ввод данных с клавиатуры».