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

Реферат

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

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

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

закрыть
Категория: Реферат
Язык реферата: Русский
Дата добавления:   
 
Скачать
Microsoft Word, 237 kb, скачать бесплатно
Заказать
Узнать стоимость написания уникального реферата

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

модель файловой системы 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 - 2016
Рейтинг@Mail.ru