Реферат: Модель файловой системы FAT - текст реферата. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Реферат

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

Банк рефератов / Программирование

Рубрики  Рубрики реферат банка

закрыть
Категория: Реферат
Язык реферата: Русский
Дата добавления:   
 
Скачать
Microsoft Word, 237 kb, скачать бесплатно
Обойти Антиплагиат
Повысьте уникальность файла до 80-100% здесь.
Промокод referatbank - cкидка 20%!
Заказать
Узнать стоимость написания уникального реферата

Узнайте стоимость написания уникальной работы

модель файловой системы FAT Страница № 2 ОДЕССКАЯ ГОСУДАРСТВЕННАЯ АКАДЕМИЯ ХОЛОДА Институт информационных те хнологий кафедра информационных систем кУРСОВАЯ РАБ ОТА ПО ДИСЦИПЛИНЕ “тЕОРИЯ ОПЕРАЦИОННЫХ СИСТЕМ” “ модель файловой системы FAT ” Выполнил студент 322 Б группы Холод Денис. Руководитель Чмырь И.А. ОДЕССА 1997 Содержание : Цель курсовой ра боты 3 И дея программы 3 О системе FAT 4 Структура системы файлов FAT 5,6 О реализации задания 7 О примененных уровнях абстракции 8 Об интерфейсе 9 Исходный текст : Макросы , вызываемые с обытиями 10 Исходный текст : Базовые события 13 Исходный текст : Макросы н ижнего уровня абстракции 15 Список литературы , примененной при подготовке курсовой работы 17 Цель : Разработка программы , моделирующей о рганизацию файловой системы FAT. Идея программ ы : Программа позвовяет экспериментально исследовать логическую структ уру файловой системы FAT, состоящую из трех областей : FAT (File Allocation Table), корневой каталог и область файлов. Необходимо заметить , что именно т акая структура использовалась в первой версии MS-DOS. Имеется панель описания операций с файлами , нахо дящимися на диске , а именно : добавить файл , удалить ф айл , перезаписать файл (с изменением размера ). Кроме того , предоставлена возможность графичес кого отображения соответствия файлов секторам на диске. Файловая Система 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. Так как модель является типичной упр авляемой событиями системой , то алгоритм ее работы достаточно прост , а точнее представляет собой ряд алгоритмов , которые пересекаются только в среднем уровне абстр акции . (см . ниже ) События вызываются пользовател ем посредством воздействия на органы управлен ия . О примененных уровнях абстракции В се возможные события были тщательно проанализированы автором и разделе ны на три категории , или на три уровня абстракции : · События , вызываемые внеш ними воздействиями . Таковыми являются все соб ытия , вызываемые пользователем посредством вызова пунктов из г рупп операций с файл ами. PressAddFile PressDeleteFile PressRemakeFile DialogRemakePressName DialogRemakePressOK Visualisation · События фундаментальной природы , т.е . базовые события , порождаемые пред удущими . Их значительно меньше , и они ник ак не вникают в суть породивших и з внешних событий. AddFile DeleteFile Visualisation Refresh · События низкого уровня абстракции , которые являются искуственно син тезированными из предыдущих двух групп событи ями и имеют целью понизить сложность системы за счет абстрагирования от не принципиальных тонкостей и усложнений в систе ме , диктуемых контекстом . Таковыми , например , яв ляются события обработки неправильных ситуаций. FreeSize ToFAT NextFreeCellFAT AddFileToCatalog DeleteCellFromFAT DeleteFileFromCatalog Об интерфейсе Интерфейс является интуитивно понят ным и не навязчивым , всегда , насколько это возможно , является “демократичным” по отноше нию к пользователю . В программах , написанных таким стилем , очень четко прослеживается пр ичинно- следственная связь , хорошо знакомая любому человеку и являющаяся неотъемлемой частью образного мышления . Это делат программ у весьма простой в использовании , а алгори тм работы простым в понимании . Вся необход имая для работы информация представлена в диалог а х , о неправильных ситуциях программа сообщает пользователю и это един ственный (и законный ) случай нарушения свободы действий пользователя. Далее приводится исходный текст програм мы с обширными комментариями , в которых де лается упор не на особенности язы ка программирования и конкретной реализации , а на представление составляющих файловой системы как объектов , а процедур и функций ка к методов , применяемых к этим объектам. Макросы , вызываемые событиями 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 File ID 'переменная для идентификатора удаляемого файла.Передается проце дуре 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 в диалоге запустится макрос Dialo gRemakePressOK 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 & " не может быть размещен "; v bExclamation; "Перезапись файла ") 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 ColorOfPa per = 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 'работаем со следующим файлом W end End With End Sub Макросы ни жнего уровня абстракции Function FreeSize() As Integer 'Функц ия для определения количества свободного мест а в области файлов FreeSize = 0 temp = 6 While temp < 22 'просмотр области FAT If Sheets("She et").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 < 17 If Sheets("Sheet").Cells(3; NextFreeCellFAT + 5).Value = "" Then Exit Function NextFreeCellFAT = NextFreeCellFAT + 1 Wend End Function Sub AddFileToCatal og(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 <> NameDeletedFile Position = Position + 1 Wend For temp = Position To 16 + 3 'следующие за удаляемым файлом ячейки сдвигаются , _ затирая запись об удаляем ом фа йле Sheets("sheet").Range(Cells(temp; 2); Cells(temp; 4)).Value = _ Sheets("sheet").Range(Cells(temp + 1; 2); Cells(temp + 1; 4)).Value Next End Sub Sub ToFAT(NumberCell As Integer; Value As Integer) 'Процедура записи в заданн ую ячейку FAT заданного значения Sheets("Sheet").Cells(3; NumberCell + 5).Value = Value End Sub Sub DeleteCellFromFAT(StartCell As Integer) 'рекурсивная функция удаления це почки из FAT _ Вызывается с номером точки входа ' MsgBox ("DeleteCellFromFAT , StartCell=" & StartCell) If Sheets("Sheet").Cells(3; 5 + StartCell).Value = 0 Then 'если в рассматриваемой точ ке - 0, _ то это значит , что она является указателем конца файла Sheets("Sheet").Cells(3; 5 + StartCell) = "" 'и поэтому очищаем эту ячейку FAT Else 'в противном случае это указатель на следующую ячейку FAT - вызываем эту же п роцедуру DeleteCellFromFAT (Sheets("sheet").Cells(3; 5 + StartCell).Value) 'но с новым номером я чейки FAT Sheets("sheet").Cells(3; 5 + St artCell) = "" 'и затем ее очищаем End If End Sub Список литерат уры , примененной при подготовке курсовой рабо ты. 1. Microsoft Systems Journal, Sept 1989. Получен из Computer Library Periodicals, Jan 1990, Doc #14753 2. Профессиональн ая работа в MS-DOS, Р.Данкан , Мир , 1993 3. Excel 5.0 для п рофессионалов , Н.Николь , Р . Альбрехт , Москва , “ Эком ” , 1996
1Архитектура и строительство
2Астрономия, авиация, космонавтика
 
3Безопасность жизнедеятельности
4Биология
 
5Военная кафедра, гражданская оборона
 
6География, экономическая география
7Геология и геодезия
8Государственное регулирование и налоги
 
9Естествознание
 
10Журналистика
 
11Законодательство и право
12Адвокатура
13Административное право
14Арбитражное процессуальное право
15Банковское право
16Государство и право
17Гражданское право и процесс
18Жилищное право
19Законодательство зарубежных стран
20Земельное право
21Конституционное право
22Конституционное право зарубежных стран
23Международное право
24Муниципальное право
25Налоговое право
26Римское право
27Семейное право
28Таможенное право
29Трудовое право
30Уголовное право и процесс
31Финансовое право
32Хозяйственное право
33Экологическое право
34Юриспруденция
 
35Иностранные языки
36Информатика, информационные технологии
37Базы данных
38Компьютерные сети
39Программирование
40Искусство и культура
41Краеведение
42Культурология
43Музыка
44История
45Биографии
46Историческая личность
47Литература
 
48Маркетинг и реклама
49Математика
50Медицина и здоровье
51Менеджмент
52Антикризисное управление
53Делопроизводство и документооборот
54Логистика
 
55Педагогика
56Политология
57Правоохранительные органы
58Криминалистика и криминология
59Прочее
60Психология
61Юридическая психология
 
62Радиоэлектроника
63Религия
 
64Сельское хозяйство и землепользование
65Социология
66Страхование
 
67Технологии
68Материаловедение
69Машиностроение
70Металлургия
71Транспорт
72Туризм
 
73Физика
74Физкультура и спорт
75Философия
 
76Химия
 
77Экология, охрана природы
78Экономика и финансы
79Анализ хозяйственной деятельности
80Банковское дело и кредитование
81Биржевое дело
82Бухгалтерский учет и аудит
83История экономических учений
84Международные отношения
85Предпринимательство, бизнес, микроэкономика
86Финансы
87Ценные бумаги и фондовый рынок
88Экономика предприятия
89Экономико-математическое моделирование
90Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
Сейчас все ломают голову, где отмечать Новый год.
А я позаботился об этом ещё в августе, купив себе диван.
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

Обратите внимание, реферат по программированию "Модель файловой системы FAT", также как и все другие рефераты, курсовые, дипломные и другие работы вы можете скачать бесплатно.

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2017
Рейтинг@Mail.ru