ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

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

     

    Інформатика, програмування

    Одеська державна академія холоду

    Інститут інформаційних технологій кафедра інформаційних систем

    курсової роботи з дисципліни

    "Теорія операційних систем"

    "модель файлової системи FAT"

    Виконав студент 322Б групи Холод Денис.

    Керівник Чмир І.О.

    ОДЕСА

    1997

    Зміст:

    | Мета курсової роботи | 3 |
    | Ідея програми | 3 |
    | Про систему FAT | 4 |
    | Структура системи файлів FAT | 5,6 |
    | Про реалізацію завдання | 7 |
    | Про застосованих рівнях абстракції | 8 |
    | Про інтерфейсі | 9 |
    | Оригінальний текст: Макроси, що викликаються подіями | 10 |
    | Оригінальний текст: Базові події | 13 |
    | Оригінальний текст: Макроси нижнього рівня абстракції | 15 |
    | Список літератури, застосованої при підготовці курсової | 17 |
    | роботи | |

    Мета:

    Розробка програми, що моделює організацію файлової системи FAT.

    Ідея програми:

    Програма позвовяет експериментально досліджувати логічну структуруфайлової системи FAT, що складається з трьох областей: FAT (File Allocation
    Table), кореневий каталог і область файлів. [1] Є панель описуоперацій з файлами, що знаходяться на диску, а саме: додати файл, видалитифайл, перезаписати файл (зі зміною розміру). Крім того, наданаможливість графічного відображення відповідності файлів секторів на диску.

    Файлова Система 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 завдяки зняття обмежень на розміри томи,поліпшенню Стратегія розподілу, кешування імен шляху, і переміщеннятаблиць і буферів у розширену пам'ять. Але вони можуть розцінюватися тількияк тимчасові заходи, тому що файлова система просто не підходила довеликим пристроїв довільного доступу.

    Структура системи файлів 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. додати

    3. видалити

    4. перезаписати

    5. Візуалізація FAT

    6. показати файл

    7. прибрати стрілки

    Виходячи з контексту питання паралельне виконання процесів абопотоків (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 < p>. 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 <22 'перегляд області FAT

    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 <17

    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 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 + StartCell) = ""' і потім її очищаємо

    End If
    End Sub

    Список літератури, застосованої при підготовці курсової роботи.


    | Microsoft Systems Journal, Sept 1989. Отримано з Computer Library |
    | Periodicals, Jan 1990, Doc # 14753 |
    | Професійна робота в MS-DOS, Р. Данкан, Мир, 1993 |
    | Excel 5.0 для професіоналів, Н. Ніколь, Р. Альбрехт, Москва, "Еком", |
    | 1996 |

    -----------------------< br>[1] Необхідно зауважити, що саме така структура використовувалася в першуверсії MS-DOS.
    [2] PressAddFile
    PressDeleteFile
    PressRemakeFile
    DialogRemakePressName
    DialogRemakePressOK
    Visualisation

    [3] AddFile
    DeleteFile
    Visualisation
    Refresh

    [4] FreeSize
    ToFAT
    NextFreeCellFAT
    AddFileToCatalog
    DeleteCellFromFAT
    DeleteFileFromCatalog

    --------------- --------

    Файл Д

    Файл В

    Файл Б

    Каталог

    Файл Г

    Каталог

    Каталог

    Файл А

    Ідентифікатор дисковода

    Кореневий каталог < p> (мітка тому)

    Типовий блок керування файлом

    Елементи структури

    Відносний кінцевий адреса в байтах

    Відносний початковий адреса в байтах

    Розширений блок керування файлом

    Відносний початковий адреса в байтах

    Елементи структури

    Відносний кінцевий адреса в байтах

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status