Внимание! finddiplom.ru не продает дипломы, аттестаты об образовании и иные документы об образовании. Все услуги на сайте предоставляются исключительно в рамках законодательства РФ.

Заказать курсовую работу

 8-800-554-34-23

КОНТРОЛЬНЫЕ РАБОТЫ
КУРСОВЫЕ РАБОТЫ
ОТЧЕТ ПО ПРАКТИКЕ
ДИПЛОМНЫЕ РАБОТЫ
КУРСОВОЙ ПРОЕКТ

Модель файловой системы FAT

дипломные работы на заказ, рефераты и авторские курсовые работы
Особенности управления малым предприятие

Дипломный проект содержит 07 рисунков, 00 таблиц. ВВЕДЕНИЕ Малый и средний бизнес, как таковой, существовал в нашей стране всегда. Первые массовые, легальные виды его проявления приходятся на конец в

Уголовная ответственность, косвенный умысел, неосторожность

Уголовная ответственность представляет собой разновидность юридической ответственности и устанавливается за совершение преступлений. Между преступлением и уголовной ответственностью существует правова

ГОСТ

Прямые измерения с многократными наблюдениями. Методы обработки результатов наблюдений. Основные положения ГОСТ 2603-79 Ацетон. Технические условия ГОСТ 6709-72 Вода дистиллированная. Технические

Соучастие

Законодательная конструкция большинства статей УК РФ такова, что предполагает совершение преступления одним лицом. Однако преступление может быть совершено двумя или более лицами. В последнем случае

Конкуренция как внутренний регулятор рыночной экономики

Конкуренция превращает потребителя в мерило предпринимательской деятельности. Конкуренция возникла одновременно с товарным производством, однако лишь при капитализме она превратилась в главный рычаг

Партесное пение

Реферат «Партесное пение». Выполнила студентка 2 курса Г группы Левадная Олеся. Проверила Хусниярова Л.М. Стерлитамак 2004. Содержание. I. Введение. 3стр. II. Основная часть. 1. Зарождение партесн

Льюис Кэрол

Известно также, что превращению мрачного чудака в фантазера и сказочника способствовали не просто дети, а исключительно маленькие девочки. К которым этот чудесный сказочник испытывал - о ужас! - вовсе

Тревожность

Тревожность не связана с какой-либо определенной ситуацией и проявляется и проявляется почти всегда. Б.И.Кочубей и Е.В.Новикова считают, что тревожность развивается вследствие наличия у ребенка внутре

Скачать работу - Модель файловой системы FAT

Файловая Система FAT: Так называемая файловая система FAT использовалась во всех версиях МСДОС и в первых двух выпусках OS/2 (версии 1.0 и 1.1). Каждый логический том имеет собственный FAT, который выполняет две функции: содержит информацию распределения для каждого файла в томе в форме списка связей модулей распределения (кластеров) и указывает, какие модули распределения свободны. Когда FAT был изобретен, это было превосходное решение для управления дисковым пространством, главным образом потому что гибкие диски, на которых он использовался, редко были размером более, чем несколько Mb. FAT был достаточно мал, чтобы находиться в памяти постоянно, позволял обеспечивать очень быстрый произвольный доступ к любой части любого файла. Когда FAT был применен на жестких дисках, он стал слишком большим для резидентного нахождения в памяти и ухудшал производительность системы. Кроме того, так как информация относительно свободного дискового пространства рассредотачивалась 'поперек' большого количества секторов FAT, он был непрактичен при распределении файлового пространства, и фрагментация файлов оказалась препятствием высокой эффективности. Кроме того, использование относительно больших кластеров на жестких дисках привело к большому количеству неиспользуемых участков, так как в среднем для каждого файла половина кластера была потрачена впустую.

Ограничения FAT на наименование файлов и каталогов унаследованы из CP/M. Когда Paterson создавал 86DOS, одной из его первых целей было облегчить импорт из CP/M в его новую операционную систему. А следовательно принятые в CP/M ограничения на имена файлов и расширений перенеслись в 86DOS. В течение нескольких лет Microsoft и IBM сделали попытку продлить жизнь файловой системы FAT благодаря снятию ограничений на размеры тома, улучшению cтратегий распределения, кэширования имен пути, и перемещению таблиц и буферов в расширенную память. Но они могут расцениваться только как временные меры, потому что файловая система просто не подходила к большим устройствам произвольного доступа.

Структура системы файлов FAT
Файл Д
Файл В
Файл Б
Каталог
Файл Г
Каталог
Каталог
Файл А
Идентификатор дисковода
Корневой каталог (метка тома)
00Н 01Н Идентификатор дисковода
01Н 09Н Имя файла (8 символов)
09Н 0СН Расширение (3 символа)
0СН 0ЕН Номер текущего блока
0ЕН 10Н Размер записи
10Н 14Н Размер файла
14Н 16Н Дата создания (обновления)
16Н 18Н Время создания (обновления)
18Н 20Н Зарезервировано
20Н 21Н Номер текущей записи
Типичный блок управления файлом
Элементы структуры
Относительный конечный адрес в байтах
Относительный начальный адрес в байтах
21Н
25Н Номер относительной записи
00Н 01Н 0FFH
01Н 06Н Зарезервировано
06Н 07Н Байт атрибута
07Н 08Н Идентификатор дисковода
08Н 10Н Имя файла (8 символов)
10Н 13Н Расширение (3 символа)
13Н 15Н Номер текущего блока
15Н 17Н Размер записи
17Н 1ВН Размер файла
1BН 1DН Дата создания (обновления)
1DН 1FН Время создания (обновления)
1FН 27H Зарезервировано
27H 28H Номер текущей записи
28H 2CH Номер относительной записи
Расширенный блок управления файлом
Относительный начальный адрес в байтах
Элементы структуры
Относительный конечный адрес в байтах
Резюме Резюме. О реализации задания Модель файловой системы представляет собой рабочий лист Microsoft Excel, на котором в виде ячеек представлены три логические структуры файловой системы: · Каталог файлов · Таблица распределения · Область файлов На рабочем листе также расположены две панели управления: 1) Операции с файлами · добавить · удалить · перезаписать 2) Визуализация FAT · показать файл · убрать стрелки Исходя из контекста вопроса параллельное выполнение процессов или потоков (MultiThreading) реализовывать нет необходимости.

Учитывая эти факторы, а также необходимость разработки “дружественного” интерейса с применением графических примитивов, было решено использовать язык программирования VisualBasic (VBA) от фирмы Microsoft и электронную таблицу Excel 5.0 фирмы Microsoft. Так как модель является типичной управляемой событиями системой, то алгоритм ее работы достаточно прост, а точнее представляет собой ряд алгоритмов, которые пересекаются только в среднем уровне абстракции. (см. ниже) События вызываются пользователем посредством воздействия на органы управления. О примененных уровнях абстракции Все возможные события были тщательно проанализированы автором и разделены на три категории, или на три уровня абстракции: · События, вызываемые внешними воздействиями.

Таковыми являются все события, вызываемые пользователем посредством вызова пунктов из групп операций с файлами. [2] · События фундаментальной природы, т.е. базовые события, порождаемые предудущими. Их значительно меньше, и они никак не вникают в суть породивших из внешних событий. [3] · События низкого уровня абстракции, которые являются искуственно синтезированными из предыдущих двух групп событиями и имеют целью понизить сложность системы за счет абстрагирования от непринципиальных тонкостей и усложнений в системе, диктуемых контекстом.

Таковыми, например, являются события обработки неправильных ситуаций. [4] Об интерфейсе Интерфейс является интуитивно понятным и не навязчивым, всегда, насколько это возможно, является “демократичным” по отношению к пользователю. В программах, написанных таким стилем, очень четко прослеживается причинно-следственная связь, хорошо знакомая любому человеку и являющаяся неотъемлемой частью образного мышления. Это делат программу весьма простой в использовании, а алгоритм работы простым в понимании. Вся необходимая для работы информация представлена в диалогах, о неправильных ситуциях программа сообщает пользователю и это единственный (и законный) случай нарушения свободы действий пользователя. Далее приводится исходный текст программы с обширными комментариями, в которых делается упор не на особенности языка программирования и конкретной реализации, а на представление составляющих файловой системы как объектов, а процедур и функций как методов, применяемых к этим объектам.

Макросы, вызываемые событиями Public Type FileID 'Тип, описывающий файл: имя,размер и точка входа в FAT Name As String Size As Integer First As Integer End Type Sub PressAddFile() 'Макрос, вызываемый кнопкой 'Добавить Файл' DialogSheets('Add').EditBoxes('Name').Text = '' 'подготовка диалога 'Добавление файла' DialogSheets('Add').EditBoxes('Size').Text = '' 'очистка полей ввода Sheets('Add').Show 'Вызов диалога 'Добавление файла' With DialogSheets('Add') 'Проверка на правильность введенных данных If (.EditBoxes('Name').Text = '') Or (.EditBoxes('Size').Text = '') Or (.EditBoxes('Size').Text = '0') Then Exit Sub End With Dim NewFile As FileID 'Экземпляр переменной с описанием создаваемого файла With DialogSheets('Add') NewFile.Name = .EditBoxes('Name').Text NewFile.Size = .EditBoxes('Size').Text End With Call AddFile(NewFile) 'Вызов процедуры добавления файла Refresh 'обновили графическое изображение размещения файлов End Sub Sub PressDeleteFile() 'в основном рабочем листе нажата кнопка Удалить Файл temp = 4 With DialogSheets('Delete') 'подготавливаем к работе диалог Delete .ListBoxes('Name').RemoveAllItems While Sheets('Sheet').Cells(temp; 2) <> '' 'заполняем список имеющимися в каталоге файлами .ListBoxes('Name').AddItem Text:=Worksheets('Sheet').Cells(temp; 2).Value; Index:=temp - 3 temp = temp + 1 Wend .Show 'показываем диалог Delete If .ListBoxes('Name') = 0 Then Exit Sub Dim File As FileID 'переменная для идентификатора удаляемого файла.Передается процедуре DeleteFile File.Name = Sheets('Sheet').Cells(.ListBoxes('Name') + 3; 2) File.Size = Sheets('Sheet').Cells(.ListBoxes('Name') + 3; 3) File.First = Sheets('Sheet').Cells(.ListBoxes('Name') + 3; 4) Call DeleteFile(File) 'Вызываем процедуру удаления файла Refresh 'обновили графическое изображение размещения файлов End With End Sub Sub PressRemakeFile() 'нажата кнопка Изменить_размеры_файла 'по этому поводу подготавливаем к работе диалог Remake temp = 4 With DialogSheets('Remake') .ListBoxes('Name').RemoveAllItems .EditBoxes('Size').Text = '' While Sheets('Sheet').Cells(temp; 2) <> '' 'заполняем список имеющимися в каталоге файлами .ListBoxes('Name').AddItem Text:=Worksheets('Sheet').Cells(temp; 2).Value; Index:=temp - 3 temp = temp + 1 Wend .Show 'показываем диалог Remake 'при нажатии кнопки OK в диалоге запустится макрос DialogRemakePressOK End With End Sub Sub DialogRemakePressName() 'в диалоге Перезапись выбран файл из списка With DialogSheets('Remake') 'и поэтому в диалоге Перезапись обновляем поле размера файла в соотв. с выбранным файлом .EditBoxes('Size').Text = Sheets('Sheet').Cells(3 + .ListBoxes('Name').ListIndex; 3).Value End With End Sub Sub DialogRemakePressOK() 'в диалоге изменение размеров файла нажата кнопка OK With DialogSheets('Remake') .Hide 'убрали с экрана диалог If .ListBoxes('Name').ListIndex = 0 Then Exit Sub Dim File As FileID 'Экземпляр типа FileID - идентификатор файла File.Name = Sheets('Sheet').Cells(3 + .ListBoxes('Name').ListIndex; 2).Text File.Size = Sheets('Sheet').Cells(3 + .ListBoxes('Name').ListIndex; 3).Value File.First = Sheets('Sheet').Cells(3 + .ListBoxes('Name').ListIndex; 4).Value 'проверка на наличие изменений If .EditBoxes('Size').Text = File.Size Or .EditBoxes('Size').Text = '0' Then Exit Sub 'проверка на помещаемость If .EditBoxes('Size').Text > (FreeSize + ((File.Size - 1) 8 + 1) * 8) Then temp = MsgBox('Файл ' & File.Name & ' размером ' & .EditBoxes('Size').Text & ' не может быть размещен'; vbExclamation; 'Перезапись файла') Exit Sub End If 'перезапись: удаление, а затем запись файла, но с другим размером Call DeleteFile(File) 'удалили File.Size = .EditBoxes('Size').Text 'изменили размер Call AddFile(File) 'записали Refresh 'обновили таблицу распределения файлов End With End Sub Sub Visualisation() 'визуализация файла temp = 4 With DialogSheets('Visualisation') 'подготавливаем к работе диалог Visualisation .ListBoxes('Name').RemoveAllItems While Sheets('Sheet').Cells(temp; 2) <> '' 'заполняем список имеющимися в каталоге файлами .ListBoxes('Name').AddItem Text:=Worksheets('Sheet').Cells(temp; 2).Value; Index:=temp - 3 temp = temp + 1 Wend .Show 'показываем диалог Visualisation If .ListBoxes('Name') = 0 Then Exit Sub 'выбрали ли что-нибудь ? Dim NumberFile As Integer NumberFile = .ListBoxes('Name').ListIndex 'номер по каталогу визуализируемого файла Sheets('Sheet').Cells(NumberFile + 3; 2).ShowDependents 'показываем линии, проходящие от ячейки каталога с именем визуализируемого файла до всех занятых им ячеек области файлов End With End Sub Базовые события Const ColorOfPaper = 33 'цвет фона области файлов Const ColorUsedPartOfFAT = 2 'цвет занятой части области файлов Sub AddFile(NewFile As FileID) 'Процедурa добавления файла 'Проверка наличия присутствия в достаточном для создания файла количестве свободного пространства If NewFile.Size > FreeSize Then temp = MsgBox('Файл ' + NewFile.Name + ' не может быть размещен из-за нехватки свободного места.'; vbExclamation; 'Процесс создания файла') Exit Sub End If count = NewFile.Size 'счетчик уже записанной части файла NewFile.First = NextFreeCellFAT ' задание точки входа в FAT для данного файла Dim PreviousCellFAT As Integer 'Номер последней модифицировавшейся ячейки FAT PreviousCellFAT = NextFreeCellFAT Call ToFAT(PreviousCellFAT; 0) 'Записали в нее ноль-признак того, что это последний (пока) кластер данного файла count = count - 8 'как минимум 8 байт файла уже размещены While count > 0 'пока весь файл не разместился Call ToFAT(PreviousCellFAT; NextFreeCellFAT) 'в последнюю модифицировавшуюся ячейку FAT вносим указатель на следующую свободную ячейку PreviousCellFAT = NextFreeCellFAT Call ToFAT(PreviousCellFAT; 0) 'Записали в нее ноль-признак того, что это последний (пока) кластер данного файла count = count - 8 'как минимум 8 байт файла уже размещены Wend Call AddFileToCatalog(NewFile) 'добавили файл в каталог End Sub Sub DeleteFile(File As FileID) 'процедура удаляет заданный файл без разговоров Call DeleteCellFromFAT(File.First) Call DeleteFileFromCatalog(File.Name) End Sub Sub Refresh() 'обновление изображения области файлов With Sheets('Sheet') .Range('F6:U13').Interior.ColorIndex = ColorOfPaper 'окрасили область файлов в цвет фона .Range('F6:U13').Value = '' 'очистили все ячейки области файлов .Range('F6:U13').NumberFormat = '0' 'формат числа для области файлов-целые числа .ClearArrows 'убрали все стрелки Dim PointerToFile As String NumberFile = 1 While .Cells(NumberFile + 3; 2) <> '' 'последовательно просматриваем область файлов. Для каждого файлавыполняется следующая процедура: NumberCellFAT = .Cells(NumberFile + 3; 4) 'точка входа в FAT N-ного файла PointerToFile = '=R' & NumberFile + 3 & 'C2' 'указатель на ячейку каталога с именем N-ного файла Relation = (.Cells(NumberFile + 3; 3) - 1) Mod 8 'смещение.

Являет собой размер неполностью заполненного кластера While .Cells(3; NumberCellFAT + 5) <> 0 'просмотр FAT до признака конца цепочки .Range(Cells(6; NumberCellFAT + 5); Cells(6 + 7; NumberCellFAT + 5)).Interior.ColorIndex = ColorUsedPartOfFAT + NumberFile 'выделение цветом очередного непоследнего кластера N-ного файла .Range(Cells(6; NumberCellFAT + 5); Cells(6 + 7; NumberCellFAT + 5)).Font.ColorIndex = ColorUsedPartOfFAT + NumberFile .Range(Cells(6; NumberCellFAT + 5); Cells(6 + 7; NumberCellFAT + 5)).Formula = PointerToFile 'каждая ячейка этого кластера теперь указывает на ячейку с именем файла в каталоге NumberCellFAT = .Cells(3; NumberCellFAT + 5) 'взяли следующую ячейку FAT из цепочки Wend 'теперь обработка последнего кластера N-ного файла.

Отличается тем, что он может быть занят не полностью .Range(Cells(6; NumberCellFAT + 5); Cells(6 + Relation; NumberCellFAT + 5)).Interior.ColorIndex = ColorUsedPartOfFAT + NumberFile .Range(Cells(6; NumberCellFAT + 5); Cells(6 + Relation; NumberCellFAT + 5)).Font.ColorIndex = ColorUsedPartOfFAT + NumberFile .Range(Cells(6; NumberCellFAT + 5); Cells(6 + Relation; NumberCellFAT + 5)).Formula = PointerToFile NumberFile = NumberFile + 1 'работаем со следующим файлом Wend End With End Sub Макросы нижнего уровня абстракции Function FreeSize() As Integer 'Функция для определения количества свободного места в области файлов FreeSize = 0 temp = 6 While temp If Sheets('Sheet').Cells(3; temp).Value = '' Then _ FreeSize = FreeSize + 8 'если ячейка FAT пуста, то своб.места в ней 8 байт temp = temp + 1 Wend End Function Function NextFreeCellFAT() As Integer 'Функция возвращает номер первого найденного свободного элемента FAT NextFreeCellFAT = 1 While NextFreeCellFAT If Sheets('Sheet').Cells(3; NextFreeCellFAT + 5).Value = '' Then Exit Function NextFreeCellFAT = NextFreeCellFAT + 1 Wend End Function Sub AddFileToCatalog(File As FileID) 'добавление файла в область каталога temp = 4 With Sheets('Sheet') While .Cells(temp; 2) <> '' temp = temp + 1 'поиск свободного места в каталоге файлов Wend 'кто дочитает до этого места-бутылка шампанского ! .Cells(temp; 2) = File.Name 'Запись в каталог информации о файле .Cells(temp; 3) = File.Size .Cells(temp; 4) = File.First End With End Sub Sub DeleteFileFromCatalog(NameDeletedFile As String) 'удаление информации о файле из каталога Position = 4 While Sheets('Sheet').Cells(Position; 2).Text

оценка стоимости аренды помещения в Курске
оценка станка в Твери
оценка машин для наследства в Орле