Дефрагментація диску

Дефрагментація вільного місця. Файлова система FAT. Дефрагментація даних, що часто використовуються. Сортування за іменем. Алгоритм роботи першого візуального блоку MainWindows.cs. Опис роботи програми. Використані бібліотеки та структури даних.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 12.04.2014
Размер файла 2,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

Міністерство освіти і науки, молоді та спорту України

Державний вищий навчальний заклад

«Криворізький національний університет»

Факультет інформаційних технологій

Кафедра комп'ютерних систем та мереж

КУРСОВА РОБОТА

з дисципліни «Системне програмування»

на тему: «Дефрагментація диску»

Виконала

студентка гр. КСМ-10-2

А. А. Команкова

Керівник курсової роботи

Ю. В. Юрко

Кривий Ріг

2012

ЗМІСТ

ПЕРЕЛІК СКОРОЧЕНЬ

ВСТУП

1. АНАЛІЗ ТА ОГЛЯД ІСНУЮЧИХ РІШЕНЬ

1.2 Огляд існуючих рішень

1.2 Файлова система FAT

1.3 Постановка задачі

2. ПОБУДОВА АЛГОРИТМІВ ТА СТРУКТУР ДАНИХ

2.1 Опис існуючих алгоритмів дефрагментації

2.1.1 Проста дефрагментація

2.1.2 Дефрагментація вільного місця або цілковита дефрагментація

2.1.3 Дефрагментація часто даних, що використовуються

2.1.4 За датою останнього змінення

2.1.5 Сортування за іменем

2.2 Алгоритмізація

2.3 Опис роботи програми

3. КОДУВАННЯ

3.1 Використані бібліотеки та структури даних

3.2 Розробка візуального оформлення програми

4. ТЕСТУВАННЯ

4.1 Основна програма

4.2 Рекомендації

4.3 Тестування програми

ВИСНОВКИ

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ

ПЕРЕЛІК СКОРОЧЕНЬ

FAT (File Allocation Table) - таблиця розміщення файлів, класична архітектура файлової системи, яка використовується в флеш-накопичувачах.

NTFS (New Technology File System - «файлова система нової технології») -- стандартна файлова система для операційних систем Microsoft Windows NT.

exFAT (Extended FAT -- «розширена FAT») - нова файлова система, яка призначена для заміни FAT32.

MFT (Master File Table -- «Головна файлова таблиця») -- головна файлова таблиця (база даних), в якій зберігається інформація про вміст тому з файловою системою NTFS, яка представляє собою таблицю, рядки якої відповідають файлам тома, а стовбці -- атрибутам файлів.

MBR (master boot record - головний завантажувальний запис) - код і дані, які необхідні для наступного завантаження операційної і розміщені у перших фізичних секторах (частіше в самому першому) на жорсткому диску або іншому пристрої зберігання інформації.

NOP или NOOP (No OPeration) - інструкція процесора на мові асемблера, або команда протоколу, яка пропонує нічого не робити.

LCN (logical cluster number) - порядковий номер кластера тому.

VCN (virtual cluster number) - порядковий номер всередині файлу.

Размещено на http://www.allbest.ru

ВСТУП

Метою курсового проекту є виконання та захист роботи, основною задачею якої є розробка програми дефрагментації диску.

Довгі дані записуються на диск в декількох кластерах. Якщо місця для запису певного файлу достатньо, то всі кластери розміщуються послідовно. Однак якщо простір частково заповнено, для великого файлу може не виявитись цільної вільної області для його розміщення. У такому випадку дані будуть записані у вільні кластери, за умови, що їх сумарний обсяг задовольняє даний файл. У цьому випадку файл записується у вигляді декількох фрагментів. Більше того: у багатьох файлових системах (приклад FAT32) початок файлу записується в початок кластера, отже, якщо сам файл або його частина за об'ємом менше розміру кластера, то місце, що залишилося в кластері залишається невикористаним. Тому фрагментація диска обернено пропорційна ефективності використання його простору.

Фрагментація дискового простору. Ефект, що виникає в процесі активної роботи з файлами (створення, видалення, переміщення, зміна розмірів) і виражається у відсутності на жорсткому диску достатньої кількості послідовних вільних блоків. На фрагментованому диску вільні блоки розкидані по всій поверхні диска, і при подальшій роботі з диском, це призводить до фрагментації даних.

Так ми можемо сказати, що фрагментація даних є негативним ефектом. Дроблення файлів ускладнює роботу з ними і збільшує навантаження на апаратну частину комп'ютера. На сильно фрагментованих областях жорсткого диска буде потрібно затратити набагато більше часу для запису або зчитування файлу, ніж на мало фрагментовані областях. Це пояснюється тим, що велика кількість кластерів зайнятих конкретним файлом розташовуються не послідовно, а, можна сказати, хаотично розкидані по всьому об'єму вінчестера. І саме цей факт змушує головку затрачати зайвий час на пошук чергової частини файлу.

Таким чином, можна зробити висновок, що мінімальна фрагментація не тільки збільшить швидкодію системи, але і збільшить термін служби деяких пристроїв.

Щоб уникнути фрагментації дискового простору необхідно проводити процес дефрагментації.

Дефрагментація - процес оновлення і оптимізації логічної структури розділу диска з метою забезпечити зберігання файлів в безперервній послідовності кластерів. Після дефрагментації прискорюється читання та запис файлів, а отже і робота програм. Інше визначення дефрагментації: перерозподіл файлів на диску, при якому вони розташовуються в безперервних областях .

Размещено на http://www.allbest.ru

1. АНАЛІЗ ТА ОГЛЯД ІСНУЮЧИХ РІШЕНЬ

1.1 Огляд існуючих рішень

Для порівняння ефективності виконання дефрагментації диску, запустимо на виконання вже існуючи програми: Defraggler Windows, IObit Smart, Auslogics Disk Defrag.

Defraggler - дефрагментатор для Windows. Програма працює з системами файлів FAT32, NTFS, ExFAT. Підтримує обробку не тільки томів диска, але й окремих файлів або їх груп. Defraggler - це зручний, безкоштовний і простий інструмент для впорядкованого зберігання всіх файлів на комп'ютері. З даною утилітою прискорюється запис і читання файлів. Тобто і загальна швидкість роботи комп'ютера також збільшитися. Крім безпосередньо дефрагментації програма надає можливість пошуку помилок на дисках, аналіз їх стану, температурного режиму і т.д.

Можливості Defraggler:

Швидка і повна дефрагментація

Організація порожнього місця таким чином, щоб запобігти подальшій фрагментацію

Дефрагментація вільного місця

Надання звіту з повною картою фрагментованих файлів

Багатомовна підтримка (з російською мовою включно)

Пошук помилок на диску

Аналіз стану дисків

Підтримка операційної системи Windows 8

Запустимо Defraggler Windows:

Рисунок 1.1 - головне меню програми Defraggler Windows(вкладка «Диск С»)

Виконаємо аналіз та визначимо, чи необхідна дефрагментація заданого диску, тобто диску С:

Рисунок 1.2 - результат аналізу диску С.

Виконаємо дефрагментацію диску С за допомогою Defraggler Windows:

Рисунок 1.3 - результат виконання дефрагментації.

В результаті дефрагментації бачимо, що фрагментованих файлів 8, тобто 169,4 Мб, тобто 73 фрагменти, тобто 1%. Дана програма усунула отриману фрагментацію.

IObit SmartDefrag - проста у використанні програма для дефрагментації диска, що запобігає гальмування, зависання і збої системи. Після установки IObit SmartDefrag переходить в автоматичний режим роботи і непомітно для користувача і продуктивності системи дефрагментує файли під час звичайної роботи комп'ютера.

Головною перевагою утиліти є те, що на відміну від інших автоматизованих дефрагментаторів, Smart Defrag не виконує постійний аналіз та дефрагментацію, тим самим пошкоджуючи ваш диск і зменшуючи тривалість його працездатність. Технологія інтелектуальної безпеки Smart Defrag забезпечує безпеку і працездатність диска, вирішуючи, коли і як почати дефрагментацію.

Для більш швидкого читання утиліта не тільки дефрагментує файли, але і впорядковує їх розташування відносно один одного. SmartDefrag розміщує найбільш використовувані файли на самі швидкі секції диска, оптимізуючи, таким чином, роботу диска, забезпечуючи швидкість і стабільність роботи.

Основні можливості IObit SmartDefrag:

Забезпечує повну безпеку від ушкодження файлів на диску.

Вибір режимів роботи: проста дефрагментація, дефрагментація і оптимізація, глибока дефрагментація.

Ручний і автоматичний режими.

Планувальник завдань.

Інтерфейс - багатомовний (11 мов).

Запустимо IObit Smart:

Рисунок 1.4 - головне меню програми IObit Smart (вкладка «Статус (С:))

- вільний простір.

- не часто використовувані.

- часто використовувані.

- каталоги.

- MFT.

- непереміщувані.

- фрагментовані.

- переміщувані.

Виконаємо аналіз та визначимо, чи необхідна дефрагментація заданого диску, тобто диску С:

Рисунок 1.5 - результат аналізу диску С.

В результаті аналізу бачимо, що фрагментація складає 0,74%, це означає що не має потреби здійснювати дефрагментацію але для визначення як швидко виконається програма з отриманою фрагментацією, виконаємо дефрагментацію.

Виконаємо дефрагментацію за допомогою IObit Smart:

Рисунок 1.6 - результат виконання дефрагментації.

У результаті дефрагментації бачимо, що фрагментація значно зменшилась ( з 0,93% до 0,72%), кількість файлів, які були дефрагментовані - 61. Витрачений час на виконання дефрагментації становить 1 час та 30 хвилин.

Auslogics Disk Defrag призначена для дефрагментації файлової системи за рахунок оптимізаційних і профілактичних робіт, а також упорядкування файлів для поліпшення продуктивності і швидкодії роботи програм і операційної системи Microsoft Windows.

Можливості

Простий у використанні графічний інтерфейс.

Автоматична перевірка.

Оптимізація всієї файлової системи одним кліком миші.

Консолідація вільного дискового простору.

Планувальник завдань.

Дефрагментація вибраних файлів або окремих папок.

Підтримка жорстких дисків, розмір яких перевищує терабайт.

Мінімальне споживання системних ресурсів.

Повний звіт про всі проведені дії програми.

Інтернаціональна підтримка.

Можливість дефрагментації декількох дисків одночасно.

Запустимо Auslogics Disk Defrag:

Рисунок 1.7 - головне меню програми Auslogics Disk Defrag (вкладка «Общая»)

- немає файлів.

- зайняті.

- головна файлова таблиця.

- непереміщувані файли.

- оброблювані.

- фрагментовані.

- дефрагментовані.

Виконаємо дефрагментацію за допомогою Auslogics Disk Defrag:

Рисунок 1.8 - результат виконання дефрагментації.

Рисунок 1.9 - звіт результату дефрагментації.

Висока швидкість роботи і наявність найнеобхідніших опцій роблять цю програму дуже зручним інструментом для роботи з жорстким диском. Незважаючи на відносно малі обсяги, є дуже гарним засобом дефрагментації. Однак найчастіше програма пропускає великі файли, це відбувається у разі відсутності відповідного нерозділеного обсягу вільного місця на диску. Програма не здатна проводити дефрагментацію вільного простору. Також не проводиться дефрагментація заблокованих системою файлів.

Програма має українську та російську локалізації, останню версію можна безкоштовно завантажити на офіційному сайті.

У програмі можна вказати винятки - папки, які не слід дефрагментувати. Перед початком процесу дефрагментації програма може видалити тимчасові файли, що дозволить виконати роботу швидше, очистити місце на диску і прискорити роботу системи. У налаштуваннях можна вибрати дефрагментацію всього диска, папки або окремого файлу. Програма може працювати за розкладом і підтримує автодефрагментацію.

Відразу після виконання дефрагментації користувачеві представляється короткий звіт, в якому виділено найважливіші відомості. Також можна переглянути повний звіт.

У результаті дефрагментації диску бачимо, що кількість фрагментованих файлів - 13. Загальна кількістю файлів на диску - 107901, папок - 14372 . Швидкість виконання дефрагментації - 1час 6 хвилин.

Побудуємо порівняльну таблицю розглянутих програм:

Таблиця 1.1 - порівняльна таблиця програм.

Назва

Підтримка платформ

Сумісність із системами

Робота в системі

Швидкість виконання дефрагментації

Наявність

звіту

Р-нь фрагм. до виконання програми

Р-нь фрагм. після виконання програми

Defraggler Windows

Windows

32-, 64-бітні

NTFS, FAT32, exFAT

-

-

23%

1%

IObit Smart

Windows

32-, 64-бітні

NTFS, FAT32

1 час 30 хвилин

+

0,93%

0,72%

Auslogics Disk Defrag

Windows

32-, 64-бітні

NTFS, FAT32

1час 6 хвилин

+

4,21%

0%

У результаті порівняння трьох програм, призначених для дефрагментації дисків, кращою виявилась програма - Auslogics Disk Defrag, тому що вона більш зручна у використанні та швидша за інші. Після її закриття та запуску через деякий час можливий перегляд результату попередньої дефрагментацію, що дуже зручно, якщо ви не зберегли звіт.

1.2 Файлова система FAT

При форматуванні носія інформації на ньому створюється файлова система.

Форматування можна порівняти з установкою полиць з ящиками з доданим списком з відомостями, за якими можна дізнатися, в якому ящику які речі знаходяться, і які речі підходять один одному. У цьому списку також відзначені зіпсовані і порожні ящики.

FAT (File Allocation Table - «таблиця розміщення файлів») - класична файлова система, без підтримки журналювання. Існує три версії FAT - FAT12, FAT16 і FAT32.

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

Том, відформатований для використання файлової системи FAT, розмічається по кластерам. Розмір кластера за замовчуванням визначається розміром тома. При використанні файлової системи FAT номер кластера повинен мати довжину не більше ніж 16 біт і представляти собою одну зі степенем 2.

FAT складається з 5 областей. Вони перераховані в наступній таблиці. Також в таблиці вказані формули для розрахунку початку кожної області.

Таблиця 1.2 - структура FAT.

Назва

Адреса сектора (зсув)

Головний завантажувальний запис MBR(Master Boot Record)

= 0

Завантажувальний запис розділу PBR(Partition Boot Record)

= 1C8h(4байта) у головному завантажувальному записі

Записи FAT

= завантажувальний запис розділу + 0Eh (2 байта) у завантажувальному записі розділу

Записи каталогу

= записи FAT + (16h (2 байта) * 10h (1байт)) в завантажувальному записі розділу

Область даних (кластер 0)

= записи каталогу + (11h (2байта) * 32/512) у завантажувальному записі розділу.

Розмір сектору завжди складає 512 байтів. Це число також вказане у позиції завантажувальному записі розділу 0Вh (розмір запису 2 байта) в байтах.

Кластер утворюється з декількох об'єднаних секторів. Кількість секторів в кластері:

Таблиця 1.3 - кількість секторів у класторі.

Об'єм носія даних

Розмір кластера FAT16

Розмір кластера FAT32

Розмір кластера NTFS

7 Мб - 16 Мб

2 Кб

Не підтримумується

512 байтів

17 Мб - 32 Мб

512 байтів

Не підтримумується

512 байтів

33 Мб - 64 Мб

1 Кб

512 байтів

512 байтів

65 Мб - 128 Мб

2 Кб

1 Кб

512 байтів

129 Мб - 256 Мб

4 Кб

2 Кб

512 байтів

257 Мб - 512 Мб

8 Кб

4 Кб

512 байтів

512 Мб - 1 Гб

16 Кб

4 Кб

1 Кб

Кількість секторів у кластері також вказані в позиції завантажувального запису розділу 0Dh (розмір запису 1 байт).

Головний завантажувальний запис (MBR).

Він містить інформацію про жорсткий диск и його розділи.

Таблиця 1.4 - головний завантажувальний запис.

Адреса

Опис

Розмір, байтів

000h

Головний завантажувальний запис

446

1BEh

Запис розділу

16

1CEh

Запис розділу

16

1DEh

Запис розділу

16

1EEh

Запис розділу

16

1FEh

Сигнатура DIOS (55hAAh)

2

Перший запис розділу містить наступні відомості:

Таблиця 1.5 - відомості в першому записі розділу .

Адреса

Опис

Розмір поля, байтів

00h

Статус розділу: 0 якщо неактивний, 80h якщо активний

1

01h

Головка, на якій починається розділ

1

02h

Доріжка, на якій починається розділ (біти 16 - 6), і сектор, на якому починається розділ (біти 5 - 0).

2

04h

Тип розділу (1h - FAT12, 4h - FAT16 < 32Мб, 6h - FAT16 > 32Мб, Bh - FAT32

1

05h

Головка, на якому закінчується розділ

1

06h

Доріжка, на якому закінчується розділ (біти 16 - 6)б і сектор, на якому закінчується розділ (біти 5 - 0).

2

08h

Відстань між секторами MBR і першим сектором, в секторах

4

0Ch

Загальна кількість секторів в розділі

4

Завантажувалиний запис розділу (PBR).

Знаходиться у розділі і містить відомості про форматування цього розділу.

Таблиця 1.6 - PBR.

Адреса

Опис

Розмір поля, байтів

00h

Вказання переходу + NOP

3

03h

ОЕМ назва

8

0Bh

Кількість байтів в секторі на жорсткому диску

2

0Dh

Кількість секторів в кластері

1

0Eh

Кількість зарезервованих секторів

2

10h

Кількість копій FAT, як правило, 2

1

11h

Кількість можливих записів у кореневому каталозі: 512 при FAT16

2

13h

Кількість секторів в менших розділах

2

15h

Тип носія: F8 для жорстких дисків; F0 для дисків

1

16h

Секторів на FAT

2

18h

Секторів на доріжку

2

1Ah

Число голівок

2

1Ch

Зарезервованих секторів на початку жорсткого диску

4

20h

Загальна кількість секторів в розділі

4

24h

Номер дисководу. Перший жорсткий диск має позначення 80h, інший 81h і т.д.

2

26h

Розширена завантажувальна сигнатура (29h)

1

27h

Серійний номер носія даних

4

2Bh

Найменування носія даних

11

36h

Назва FAT (FAT16)

8

3Eh

Виконуючий код

448

1FEh

Сигнатура (55h AAh)

2

Записи FAT.

Кожний запис має розмір 2 байта, а її позиція відповідає відповідному кластеру в області даних.

Запис містить в собі або номер наступного кластера файлу, або стан поточного кластера.

Рисунок 1.11 - записи FAT

Позначення:

Таблиця 1.7 - позначення.

0000

Кластер, який не використовується

Від 1 до кількості кластерів

Номер кластеру з наступною частиною файлу

FFFF0h - FFFF6

Зарезервований кластер

FFF7

Зіпсований кластер

FFF8h - FFFFh

Кінець файлу (ця позиція відповідає останньому кластеру файлу)

Записи каталогу

Таблиця 1.8 - записи каталогу.

Адреса

Розмір, байтів

Значення

0h

8

И`мя файлу

8h

3

Розширення

0Bh

1

Властивості файлу (00ARSHDV)

00: зарезервовані біти

А: біт «архівний»

R: біт «тільки для читання»

S: біт «системний»

D: біт «каталог»

V: біт «том»

16h

2

Час

18h

2

Дата

1Ah

2

Перший кластер

1Ch

4

Розмір

Область даних (кластер 0)

Дані файлу починаються у відповідному кластері без попереднього попередження. Якщо останній кластер не повний, байти які залишились мають значення 00h. Таким чином, якщо файл містить 1 байт, цей файл займе 1 Кбайт пам'яті (якщо розмір кластеру дорівнює двом секторам). 1023 байта кластера, які залишилися, будуть містити нуль. Щоб знайти останній байт файлу, потрібно взяти величину файлу з позиції запису каталогe 1Ch (4 байта) і відняти від нього значення (кількість кластерів - 1) * розмір кластера.

При дефрагментації даних кластери файлу приєднуються послідовно один до одного (якщо це можливо).

1.3 Постановка задачі

В даному курсовому проекті треба розробити програму, яка буде виконувати дефрагментацію диску (флешки), яка буде містити:

Зручний інтерфейс;

карту тому;

інформацію про стан тому, тобто, кількість фрагментованих файлів, кількість екстент, загальна кількість файлів, відсоток фрагментованих файлів, кількість фрагментів;

повідомлення про завершення роботи програми;

повідомлення про помилки під час виконання програми;

після виконання програми програма мусить відображати результат, тобто файл, який буде мати один кластер ний ланцюг.

Размещено на http://www.allbest.ru

2. ПОБУДОВА АЛГОРИТМІВ ТА СТРУКТУР ДАНИХ

2.1 Опис існуючих алгоритмів дефрагментації

2.1.1 Проста дефрагментація

Даний спосіб використовується найбільш часто і є найбільш простим в реалізації, швидким серед інших алгоритмів. Проводиться сканування диска в пошуках всіх кластерів одного файлу. Після складання карти файлу його фрагменти переміщуються в вільне місце, в яке може поміститися файл повністю.

На першому етапі задається файл, який необхідно дефрагментувати. Далі проводиться пошук всіх кластерів, які займає файл. Якщо кластери не утворюють нероздільний ланцюг - це означає, що файл фрагментований.

На наступному етапі проводиться пошук відповідного місця для переміщення файлу. Після успішного виконання попереднього кроку виконується переміщення кластерів файлу в нове місце на диску. Якщо ж місце для файлу не знайдено (особливо актуально для великих за обсягом файлів), то він пропускається і залишається фрагментованим.

На рисунках 2.1. и 2.2. представлен, в графічному вигляді, принцип роботи алгоритма. На рисунку 2.3 зображені умовні позначення.

Рисунок 2.1 - область диску до дефрагментації.

Рисунок 2.2 - використаний «простий» метод.

Рисунок 2.3 - «Легенда».

Переваги: швидка і ефективна робота. Невелике споживання системних ресурсів. Максимальний розмір файлу, який може бути дефрагментований, визначається вільною нерозділеною ділянкою дискового простору.

Недоліки: не здатний дефрагментувати вільний простір, що призводить до сильної фрагментації не зайнятих кластерів. Не виконується ніякого сортування даних.

2.1.2 Дефрагментація вільного місця або цілковита дефрагментація

Метод повної дефрагментації або дефрагментації вільного місця використовувався одним з перших. Даний спосіб дефрагментує всі файли і поміщає їх у початку розділу, що дозволяє звільнити максимально можливу вільну область диска. Після проведення дефрагментації всі файли будуть розташовані в сусідніх областях, утворюючи, таким чином, безперервний ланцюжок.

В даний час такий спосіб дефрагментації використовується вкрай рідко, як основний метод, так як він займає тривалий час і вимагає відносно багато вільного дискового простору.

На першому етапі проводиться пошук фрагментованих файлів з подальшою дефрагментацією, але, на відміну від попереднього методу, переміщення фалів здійснюється не в будь-яке підходяще місце на диску, а в кінець розділу, таким чином, утворюється область даних без вільних кластерів. Після того як всі необхідні файли були дефрагментовані виконується переміщення цих даних у вільні кластери на початку тома. Якщо вільного місця між двома блоками даних не достатньо для поміщення чергового файлу, то наступний блок переноситься в кінець розділу, тим самим вивільняє простір для розміщення файлу. Таким чином, проводиться реорганізація файлової структури, завдяки якій на початку дискового розділу створюється область даних, а в кінці - доступний вільний дисковий простір.

На рисунках 2.4 и 2.5 представлено, в графічному вигляді, принцип роботи алгоритма. На рисунку 2.6 зображене умовне позначення.

Рисунок 2.4 - область диску до дефрагментації.

Рисунок 2.5 - дефрагментація вільного місця.

Рисунок 2.3 - «Легенда»

Переваги: метод ефективний для сильно фрагментованих дисків. Дефрагментація вільного місця запобігає подальшу фрагментацію даних. При проведенні дефрагментації пропущеними фрагментованими залишається набагато менше файлів, ніж при «простій дефрагментації».

Недоліки: процес займає тривалий час. Потрібно багато вільного місця на диску. Через часте переміщення даних збільшується навантаження на комп'ютер, особливо, на жорсткий диск. Даний метод не є оптимальним для проведення планової дефрагментації, або дефрагментації у фоновому режимі.

2.1.3 Дефрагментація часто даних, що використовуються

Такий метод розміщує файли на жорсткому диску згідно з частотою їх використання. Він займає тривалий проміжок часу і вимагає великих ресурсів. Найчастіше даний метод застосовується на серверних машинах.

Для мінімальної фрагментації і підтримки високої продуктивності слід використовувати даний метод регулярно.

Проводиться звичайний процес дефрагментації файлів. Особливістю даного методу є реорганізація файлової структури. Після завершення дефрагментації файли сортуються за часом останнього доступу. Файл з найменшою частотою використання розміщується на початок розділу. Часто використовувані файли розміщаються в кінці розділу. У такому випадку рідко використовувані файли будуть дефрагментовані і не виникне необхідності їх переміщати. Даний метод можна віднести до «повної» дефрагментації, так як при сортуванні та переміщенні даних на жорсткому диску утворюються великі обсяги суміжних вільних областей.

На рисунках 2.7 і 2.8 представлений, в графічному вигляді, принцип роботи алгоритму. На рисунку 2.9 зображені умовні позначення.

Рисунок 2.7 - область диску до дефрагментації.

Рисунок 2.8 - дефрагментація даних, які часто використовуються.

Рисунок 2.9 - «Легенда»

Переваги: реорганізація даних підвищує продуктивність на серверних станціях. Повна дефрагментація дозволяє об'єднати більшість вільного місця на жорсткому диску.

Недоліки: потрібно багато вільного дискового простору для початку процесу дефрагментації. Високе споживання системних ресурсів. Не універсальність даного типу сортування.

За датою останнього змінення.

Даний метод сортує і розміщує дані на диску згідно часу їх останньої зміни. Він проводить повну реорганізацію структури розміщення файлів на диску. На виконання повної дефрагментації потрібно багато часу. Даний метод рідко використовують на домашніх комп'ютерах або ноутбуках. Його ефективніше використовувати на серверних машинах.

Метод поєднує в собі кілька алгоритмів: швидкої і повної дефрагментації. Першим виконується звичайна дефрагментація файлів. Потім проводиться читання атрибутів файлів і визначення їх місця по завершенню роботи. Файли, які не змінювалися тривалий час, розміщуються на початку розділу. Часто змінювані файли записуються в кінець розділу, що дозволяє, надалі, провести їх швидку дефрагментацію не зачіпаючи решти даних. Такий метод оптимальним при використанні на файлових серверах, при зберіганні баз даних.

На рисунках 2.10 і 2.11 представлений, в графічному вигляді, принцип роботи алгоритму. На рисунку 2.12 зображені умовні позначення.

Рисунок 2.10 - область диску до дефрагментації.

Рисунок 2.11 - за датою останнього змінення.

Рисунок 2.12 - «Легенда»

Для збереження високої продуктивності та малої фрагментації необхідно проводити регулярну дефрагментацію, або налаштувати автоматичний режим, використовуючи даний метод.

Переваги: сортування даних підвищує продуктивність системи, але слід враховувати, що даний метод не буде оптимальний для будь-якої системи. Недоліки: потрібний великий вільний простір на жорсткому диску, щоб почати процес дефрагментації. Під час дефрагментації використовується багато системних ресурсів. Затрачується тривалий час для першої реорганізації файлової структури.

2.1.4 Сортування за іменем

Алгоритм повної дефрагментації з можливістю сортування файлів. Метод реорганізує файлову структуру таким чином, що файли будуть розташовуватися на диску відповідно до алфавіту. Такий метод зазвичай використовують на системних дисках. Сортування по імені дозволяє скоротити час доступу до файлу в каталогах.

Проводиться пошук і дефрагментація необхідних фалів з переміщенням їх у кінець жорсткого диска. Після чого зчитуються атрибути файлів і переміщуються на початок розділу, слідуючи алфавітному порядку. Спершу сортуються кореневі каталоги, потім файли і підкаталоги. Якщо відобразити структуру файлів, то вони будуть йти в такому ж порядку, як і відображаються в провіднику, при сортуванні «За алфавітом».

Використання такого методу дефрагментації дозволяє прискорити процес роботи комп'ютера, зокрема завантаження операційної системи. Це пояснюється тим, що при завантаженні більшість необхідних бібліотек завантажуються з декількох каталогів «C: \ Windows \ System32 \», «C: \ Windows \ System32 \ drivers»).

Даний алгоритм рекомендується використовувати на системних дисках, на яких файли рідко змінюються.

На рисунках 2.13 і 2.14 представлений, в графічному вигляді, принцип роботи алгоритму. На рисунку 2.15 зображені умовні позначення.

Рисунок 2.13 - область диску до дефрагментації.

Рисунок 2.14 - сортування за іменем.

Рисунок 2.15 - «Легенда».

Переваги: алгоритм повної дефрагментації сортує всі файли на жорсткому диску. Підвищує швидкість роботи операційної системи.

Недоліки: тривалий час дефрагментації. Файли на диску не повинні змінюватися часто або створюватися нові, так як це вимагає нового сортування і може призвести до переміщення не фрагментованих даних, що буде відповідати повній реструктуризації файлової системи.

2.2 Алгоритмізація

У даному підрозділі необхідно розробити загальну блок-схему роботи програми дефрагментації флешки.

Дана програма складається з двох візуальних вікон. У першому вікні визначається том, відбувається його сканування на наявність фрагментованих файлів. В іншому вікні відбувається саме дефрагментцвання знайдених фрагментованих файлів( або за бажання можна вибрати будь який файл носія.

Розглянемо алгоритм роботи першого візуального блоку MainWindows.cs (алгоритм вмісту кожної функції наведено в додатку А):

Рисунок 2.16 - алгоритм роботи першого вікна програми.

Пояснимо кожну подію:

Блок 2. Це подія, яка викликається після натиснення клавіші «Более детальный анализ». Для її реалізації спочатку створюємо змінні (максимальна кількість фрагментів, кількість фрагментів, кількість фрагментованих файлів, кількість, файлів що не переміщуються) та масив файлів. Далі перевіряємо чи був зупинений аналіз, якщо так, то програма видає повідомлення « Аналіз зупинено», якщо ні - продовжуємо аналіз. Отримуємо список фрагментів файлу (ця функція створена у класі DefragClass). Якщо отримуємо біт стоп, то повертаємось. Отримуємо ширину зображення карти тому (за допомогою функції Width). Далі перевіряємо файл, якщо він порожній, то перейти до іншого файлу. Якщо кількість екстент (знаходяться у класі DefragClass) у файлі більше 3-х, то додаємо цей файл у список, якщо ж ні - заносимо в список але не виводимо на екран. Кількість фрагментів збільшуємо на кількість екстент у файлі. Якщо кількість знайдених екстент більше максимальної кількості фрагментів, то присвоюємо максимальному значенню знайдене. Після цього визначаємо чи файл може бути переміщений, якщо ні, то кількість не переміщених файлів збільшується на 1 (їх ми зафарбовуємо червоним кольором на карті). Якщо кількість фрагментів дорівнює 0, то цей файл не фрагментований. Після того, як знайшли всі потрібні данні виводимо їх на екран.

Блок 3. Ця подія посилається на другий візуальний блок. Тобто, якщо після отримання списку фрагментованих файлі, вибираємо один за допомогою кліку мишки, то ми після натиснення «Дефрагментировать файл» автоматично переходимо до іншої форми.

Блок 4. Ця подія відбувається сомою першою при запуску програми. Вона відповідає за початковий поверхневий аналіз тому. Де спочатку створюється масив кластерів файлу на карті. Далі отримуємо список неперервно вільних кластерів ( ця функція розроблена у класі DefragClass). Якщо карта кластеру не порожня, звільнюємо її та за допомогою вбудованих функцій зафарбовуємо вільні місця білим кольором.

Блок 5. Подія, яка відповідає за автоматичну побудову поверхневого аналізу. Я подія реалізується за допомогою вбудованого класу EventArgs.

Розглянемо алгоритм другого візуального блоку DefragmentFile.cs(алгоритм вмісту кожної функції наведено в додатку А):

Рисунок 2.17- алгоритм роботи другого вікна програми.

Блок 6. Дана подія відбувається, якщо користувач бажає вибрати файл не зі списку, а з іншого місця. Для реалізації цього блоку були використані стандартні функції відкриття діалогового вікна (CD.Title - відкрити діалогове вікно та задати його назву, CD.Filter - відкрити та задати фільтр, CD.ShowDialog() - відкрити діалогове вікно; txtFileName.Text- поле з ім'ям файлу ). Після вибору файлу на формі виводиться кількість кластерів (за допомогою функції cmdRefresh_Click, яка спрацьовує автоматично за допомогою стандартного класу EventArgs()).

Блок 7. Дана функція необхідна для подальшого її використання у дефрагментації. Вона полягає у тому, що ми створюємо виключення (помилку) за допомогою try-catch-throw. Це виключення відстежує за допомогою catch задані у try помилки, і якщо такі є з'являється повідомлення.

Блок 8. Ця подія призначена для повідомлення користувача про вдале або не вдале дефрагментування. Для її реалізації спочатку було створено два флага(bDefragmenting - вказує на те чи відбувається дефрагментування (true) чи ні - bDefragStop(false)) та змінна ret, яка приймала результат дефрагментуваня. Якщо не зупинка дефрагментації, то продовжуємо процес. Якщо трапилась зупинка, тобто bDefragStop, то виводимо повідомлення про зупинку процесу. В іншому випадку записуємо результат у ret та виводемо повідомлення про успішне завершення процесу завдяки switch-case-default. Після виконання дефрагментації у текстовому полі автоматично зяблюється список кластерів одного цілого ланцюга (виконується за замовчуванням за допомогою EventArgs()).

Блок 9. Саме у цій ця події відображаються список кластерів файлу, які знаходяться в класі DefragClass.cs функцією GetFileBitmap.

Процес дефрагментації, переміщення файлу, інформація про кластери та інше описано в класі DefragClass, який використовується в обох візуальних вікнах.

Розглянемо алгоритм роботи класу (алгоритм вмісту кожної функції наведено в додатку А):

Рисунок 2.18 - загальний алгоритм роботи програми.

Рисунок 2.19 - продовження алгоритму роботи програми.

Перш за все для розробки функцій створимо структури, які будуть використовуватись.

Блок 20. Ця функція відповідає за отримання списку кластерів файлу. Для її реалізації, перш за все створимо змінну, яка характеризує назву файлу (File). Далі створюємо змінну FileBitmap структури RETRIEVAL_POINTERS_BUFFER, яка описує карту розміщення. Початкову кількість екстент приймаємо рівную 0. Створюємо початкову адресу структури LARGE_INTEGER, яка використовується для представлення 64-х бітного знакового цілочисельного значення і містить змінні, які визначають молодші та старші 32 біти. Потім за допомогою функції CreateFile задаємо параметри файлу та відкриваємо його, записуючи дескриптор у змінну hfile. Якщо отримали, що файл зайнятий іншим процесом, то вказуємо, що його переміщувати не можна і знову задаємо параметри файлу функцією CreateFile. (якщо файл зайнят іншим процесом, то повертаємо результат списку кластерів файлу (result). Ця змінна описана в структурі STARTING_VCN_INPUT_BUFFER). В іншому випадку вказуємо, що кластери файлу можна переміщувати. Обнуляємо адреса структури LARGE_INTEGER.

Далі виконуємо безпосередньо пошук кластерів файлу на диску. Виконуємо уву, поки не отримали всіх кластерів файлу. Для цього використовуємо код FSCTL_GET_RETRIEVAL_POINTERS (для використання цього коду треба викликати функцію DeviceIoControl). Результат записується у змінну FileBitmap. Далі визначаємо чи перевищує кількість екстент 512, якщо так, то додаємо цей фрагмент в кінець та записуємо адресу екстента і повертаємось у цикл.

Блок 21. Ця функція необхідна для ProgressBar (поле, в яеому відображається процес аналізу). Створюємо список файлів. За допомогою DirectoryInfo отримуємо список усіх файлів у томі. Визначаємо розмір масиву. Для цього розміру, якщо в створену на початку змінну tmp потрапив байт стоп, то отримали потрібну інформацію, якщо ні, то збільшуємо розмір бару. Для того, щоб вікно оновлювалось і код міг обробляти інші події застосовується Application.DoEvents().

Блок 22. Для переміщення файлів використовуємо структуру FSCTL_MOVE_FILE та записуємо їх у змінну tempRefParam. Якщо змінна ret (в неї записуємо результат дефрагментації) дорівнює 0, то повідомляємо про помилку.

Блок 23. Безпосередньо дефрагментації файлу. Створюємо список вільних кластерів (volFreeClusters). Отримуємо дескриптор тому та записуємо його у змінну volHandle. Якщо том зайнятий іншим процесом, повідомляємо про помилку. Записуємо в volFreeClusters карту неперервно вільних кластерів, а у fClusters список кластерів файлу. Якщо файл містить більше одного екстента, то отримуємо дескриптор цього файлу (якщо файл зайнятий іншим процесом повідомляємо про помилку та вивільнюємо дескриптор, який пов'язаний із томом). Виконаємо переміщення екстент файлу за допомогою вже створеної функції MoveFileExtent, результат запишемо у змінну result.

Блок 24. Отримуємо дескриптор тому за допомогою функції CreateFile.

Блок 25. Вивільнюємо дескриптор, який пов'язаний з томом, за допомогою підключення спеціальної бібліотеки "kernel32.dll".

Блок 26. Отримаємо вільні діапазони карти кластерів за допомогою функції VOLUME_BITMAP_BUFFER. Виконаємо побітну операцію зсуву для визначення чи співпадають верхні та нижні адреси, якщо так, то доріжка розміщена не у файлі, а на томі. Її адресація починається з 0. Шукаємо вільні кластери (функція GetVolumeBitmap)та копіюємо їх у масив результату дефрагментації.

Блок 27. Функція отримання вільних кластерів (GetVolumeBitmap) використовуючи функцію VOLUME_BITMAP_BUFFER. Виконуємо цикл, поки неперервний ланцюг вільних кластерів, отримуємо дескриптор тому, перевіряємо кластери та збільшуємо адресу (повертаємо у цикл). Потім повертаємо список вільних кластерів.

Побудуємо схему взаємодії блоків один з одним, що розглянуті у попередньому підрозділі.

Рисунок 2.20 - Схема взаємодії блоків програми.

2.3 Опис роботи програми

Після запуску програми користувач обирає том та одразу отримує карту фрагментації диску. Функція, яка виконує цю дію - drvLetters_SelectedIndexChanged().

Далі виконує аналіз, після якого надається інформація про носій, а саме, кількість екстентів, кількість файлів, кількість непереміщенних файлів, кількість фрагментованих файлів, кількість фрагментів, відсоток фрагментованих файлів, відсоток фрагментів для кожного файлу, максимальна кількість екстентів. Все це виконує функція cmdAnalyseMore_Click(). Також в результаті аналізу отримуємо список фрагментованих файлів, які необхідно дефрагментувати.

Після натиснення на кнопку «Дефрагментировать файл» відкривається наступне вікно програми, в якому можна одразу дефрагментувати обраний файл на попередньому кроці або обрати інший файл за допомогою функції cmdBrowse_Click().

Після натискання кнопки «Обн.», тобто оновлення, з'являється інформація про про кількість екстентів та кластерів. Цю дію виконую функція cmdRefresh_Click().

Останнім кроком програми є дефрагментування файлу, після натиснення відповідної кнопки відбувається процес дефрагментації. Цю дію виконує функція cmdDefrag_Click(). В результаті успішності виконання або навпаки з'являється повідомлення. Якщо ви бажаєте на деки час зупинити дефрагментацію потрібно використовувати кнопку «Остановка дефрагментации».

Для перевірки виконання програми можна повернутись в перше вікно та знову виконати аналіз, результатом якого буде зменшення кількості дефрагментованих файлів на один.

Размещено на http://www.allbest.ru

3. КОДУВАННЯ

3.1 Використані бібліотеки та структури даних

Розглянемо бібліотеки, які були підключені при написанні програми:

бібліотека System - це простір імен, що включає в себе фундаментальні та базові класи, що визначають загальні типи значень і посилальні типи даних, події та обробники подій, інтерфейси, атрибути та виключення обробки.

System.Collections.Generic. Простір імен містить інтерфейси і класи, які визначають універсальні колекції, які дозволяють користувачам створювати строго типізовані колекції, які забезпечують більшу безпеку типу і продуктивності, ніж незагального суворо типізованих колекцій.

System.Data. Простір імен забезпечує доступ до класів, які представляють архітектуру ADO.NET, що дозволяє створювати компоненти, ефективно працюють з даними з різних джерел.

System.Drawing. Простір імен забезпечує доступ до функціональних можливостей графічного інтерфейсу GDI +.

System.IO. Простір імен System.IO містить типи, які дозволяють читання і запису файлів і потоків даних, і типи, які забезпечують основну файлів і каталогів підтримку.

System.Windows.Forms простір імен містить класи для створення програми Windows, які приймають всі переваги функцій користувальницького інтерфейсу предикати і функції, доступних в операційній системі Microsoft Windows.

System.Runtime.InteropServices. Простір імен надає широкий спектр членів, що підтримують COM-взаємодія та служби виклику некерованого коду.

System.Diagnostics. Надає набір методів і властивостей, що використовуються при трасуванні виконання коду.

System.Collections. Простір імен System.Collections містить інтерфейси і класи, які визначають різні колекції об'єктів, такі як списки, черги, двійкові масиви, хеш-таблиці та словники.

Microsoft.VisualBasic. Простір імен Microsoft.VisualBasic містить типи, які підтримують середовище виконання Visual Basic в Visual Basic.

"kernel32.dll" - додаткова бібліотека, яка відповідає за обробку пам'яті, операцій введення-виведення і переривань в операційних системах Windows. В нашому випадку вона необхідна для роботи на пряму з диском

Розглянемо змінні, які були використані в програмі:

Таблиця 3.1 - Основні змінні програми та їх опис

Змінна

Тип

Опис

DELETE

int

Змінна для надання права на видалення

FILE_READ_ACCESS

int

Змінна для надання дозволу на читання вмісту файлу

FILE_FLAG_BACKUP_SEMANTICS

int

Змінна для надання права створення резервної копії файлу

OPEN_EXISTING

int

Відкрити тільки існуючі файли

FILE_SHARE_READ

int

Файли для читання

FILE_SHARE_WRITE

int

Файли для запису

GENERIC_READ

int

Змінна для отримання права на читання файла та його атрибути

GENERIC_WRITE

int

Змінна для запису з файлу

ExtentCount

int

Змінна, яка визначає кількість екстент

FileHandle

int

Дескриптор файлу

ClusterCount

int

Кількість кластерів

ERROR_MORE_DATA

int

Змінна для повідомлення про системну помилку

Moveable

int

Переміщення файлів

bt

int

Змінна бит

status

int

Змінна статусу кластера

x

int

Змінна лічильник

hFile

int

Змінна файлу

ub

int

Верхній межа файлу

volHandle

int

Дескриптор тому

nClusterFree

int

Кількість вільних кластерів

maxNumFrag

int

Максимальна кількість фрагментів

numFrag

int

Кількість фрагментів

numFragFiles

int

Кількість фрагментованих файлів

numNonMoveable

int

Кількість файлів, що не переміщуються

volSize

int

Розмір тому

w

int

Ширина зображення

bStop

bool

Тип, який приймає значення true або false. Змінна означає біт стоп.

bDefragStop

bool

Змінна зупинки дефрагментації

bDefragmenting

bool

Змінна процесу дефрагментації.

bCanStop

bool

Змінна зупинки аналізу

File

string

Використовується для знаходження списку кластерів файлу

Buffer

byte

Масив, який використовується для отримання списку вільних кластерів.

bitShifts

byte

Масив,на скільки вліво переміщуватись при пошуку вільних кластерів.

Extents

List<Extent>

Список екстент

ret

tmp

List<VolumeFreeClusters>

Список вільних кластерів

Структури, які були використані при написанні програми:

Структура STARTING_VCN_INPUT_BUFFER (блок 11). Ця структура коду FSCTL_GET_RETRIEVAL_POINTERS. Містить в собі змінні StartingVcn (початкова адреса кластерів), result (результат, в який буде зберігатись список кластерів).

Структура Extent. Містить в собі змінну NextVcn, яка вказує на початок наступної екстенти та змінну LCN, яка вказує на початок екстент у томі.

Структура RETRIEVAL_POINTERS_BUFFER. Ця структура коду FSCTL_GET_RETRIEVAL_POINTERS. Містить в собі змінні: ExtentCount - кількість екстент у масиві екстент, StartingVcn - початковий Vcn (початкова адреса кластерів).

Структура MOVE_FILE_DATA. Ця структура коду FSCTL_MOVE_FILE. Містить в собі FileHandle - дескриптор файлу, StartingVcn - номер кластера відносно початку файлу, StartingLcn - номер кластеру відносно тому, ClusterCount - кількість кластерів, які повинні бути переміщені.

Структура LARGE_INTEGER. Використовується для представлення 64-х бітного знакового цілочисельного значення. Містить в собі LowDWORD - визначає молодші 32-біти, HighDWORD - визначає старші 32-біти.

Структура STARTING_LCN_INPUT_BUFFER. Ця структура коду FSCTL_GET_VOLUME_BITMAP. Містить в собі StartingLcn значення, з якого починається операція опису карти.

Структура VOLUME_BITMAP_BUFFER. Представляє зайняті та вільні кластери диску. Ця структура коду FSCTL_GET_VOLUME_BITMAP. Містить StartingLcn - значення, з якого починається операція опису карти, BitmapSize - кількість кластерів на томі, починаючи з початкового Lcn, які повертаються в StartingLcn цієї структури.

Структура VolumeFreeClusters. Містить startLCN та ClusterCount - кількість кластерів.

Структура fileClusters містить інформацію про кластери. File - імя файлу, Moveable -чи може бути файл переміщений, ExtentsCount - кількість екстент файлу, List<Extent> Extents - список екстент.

3.2 Розробка візуального оформлення програми

Для візуальної реалізації програми були підключені дві форми:

MainWindow

Рисунок 3.1 - перша форма.

DefragmentsFile

Рисунок 3.2 - друга форма.

На першій форму розміщено:

DriveListBox (drvLettes) - відповідає за вибір диску;

PictureBox (picVolume) - відповідає за виведення зображення карти тому;

ListView (LvFiles) - відповідає за виведення переліку фрагментованих файлів;

Label (lblSummary) - відповідає за представлення інформації про том;

ProgressBar (PB) - відповідає за відображення процесу аналізу тому;

Button (cmdAnaliseMore) - кнопка, яка запускає процес аналізу;

Button (cmdGefrag) - кнопка, яка відкриває другу форму.

На другій формі розміщено:

TextBox(txtFileName) - текстове поле, яке відповідає за представлення шляху файлу;

Button (cmdBrowse) - кнопка, після натиснення якої відкривається діалогове вікно, в якому можна вибрати файл не з отриманого списку;

Button (cmdRefresh) - кнопка, після натиснення якою в ListBox зявляється інформація;

ListBox (lstCluster) - відповідає за надання інформації про адресу кластеру на томі та кількість кластерів у файлі

Button (cmdDefrag) - кнопка, після натиснення якої відбувається процес дефрагментації вибраного файлу, після завершення процесу зявляється повідомлення про успішне завершення процесу.

Размещено на http://www.allbest.ru

4. ТЕСТУВАННЯ

4.1 Основна программа

Лістинг програми наведений в додатку Б.

Рекомендації

Дана програма написана у середовищі програми Microsoft Visual Studio 2012 на мові С#/ Мова є C подібною, має невеликі відмінності, які значно покращують якість коду. Ця мова має безліч бібліотек, велика кількість готових функцій, має безліч можливостей, написання коду займає значно менше часу, в порівнянні з іншими мовами.

Вимоги до системи. Розроблена програма не має визначених системних вимог, для її реалізації згодиться будь - який комп'ютер, на якому встановлена Microsoft Visual Studio 2012 . Але все таки наведемо характеристики комп'ютера, на якому була зроблена дана програма.

Таблиця 4.1 - Вимоги до системи.

Назва

Вимоги

Платформа

X86

Операційна система

Windows XP

Процесор

AMD Athlon (tm) '' Dual-core M 320

Частота

2.10 GHz

Об'єм фізичної пам'яті

2 048 МБ

Потужність процесора

34.92 Вт

Дисплей

ATI Mobility Radeon HD 4500 Series

4.2 Тестування програми

Після запуску файлу Defrag.exe, програма має вигляд:

Рисунок 4.1 - Зовнішній вигляд програми.

Одразу ми бачимо, що представлена карта тому. Для того, щоб проаналізувати, тобото виявити фрагментовані файли, отримати інформацію про фрагменти, виконаємо «Более глибокий анализ…».

В результаті виконання чого бачимо наступне:

Рисунок 4.2 - результат аналізу.

Отримали список фрагментованих файлів, кількість фрагментів у яких більше 3. Така умова пов'язана з тим, що дефрагментувати файли з меншою кількістю фрагментів не ефективно, тобто немає різниці в часі роботи головки диску для зчитування інформації.

Далі вибираємо файл, який бажаємо дефрагментувати та натискаємо кнопку «Дефрагментировать файл». Після чого з'являється вікно, де вказано шлях файлу. Натиснемо кнопку «Обн.», тобто оновити та отримуємо:

Рисунок 4.3 - результат оновлення інформації файлу.

Далі, виконуємо дефрагментацію файлу, натиснувши кнопку «Дефрагментировать». Після успішної дефрагментації отримуємо наступне:

Рисунок 4.4 - результат успішної дефрагментації.

Після натиснення кнопки «ОК». Отримуємо

Рисунок 4.5 - отримана адреса файлу та кількість кластерів у ньому.

Щоб пересвідчитись у виконання дефрагментації виконаємо повторний аналіз:

Рисунок 4.6 - результат повторного аналізу.

В результаті повторного аналізу бачимо, що кількість фрагментованих файлів зменшилась на той один файл, що ми дефрагментували.

Размещено на http://www.allbest.ru

ВИСНОВКИ

У процес виконання роботи була досліджена FAT система. Досліджена причина фрагментації файлів, наслідки даного явища. Під час виконання завдання були вивчені популярні алгоритми для дефрагментації файлів, їх методи роботи, особливості, переваги і недоліки. Був проведений аналіз існуючих програм дефрагментації дисків, їх порівняння, визначення найкращого. Додаток розроблювався в універсальному середовищі розробки Microsoft Visual Studio 2012. Для забезпечення більш високої швидкості роботи дефрагментатора код був написаний на мові високого рівня С#, відкомпільований стандартним компілятором Microsoft.

Завдяки зібраним даним та отриманим навичкам, була розроблена програма-дефрагментатор. Вона здатна сканувати диск, для знаходження кількості займаних кластерів, і кількості фрагментів, для подальшої дефрагментації. Дефрагментація виконується за алгоритмом «проста дефрагментація», тобто всі фрагменти файлу переміщується в нове місце на диску. Користувач може вибрати певні файли для їх дефрагментації. Програма була протестована на різних жорстких дисках, результат тесту був успішний.

Основним недоліком програми є те, що в результаті виявлення фрагментованих файлів не має можливість дефрагментувати всі файли одночасно, тільки по черзі. Тобто, вибираємо перший файл, дефрагментуємо, потім обираємо другий, третій і т.д.

Размещено на http://www.allbest.ru

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ

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

Сайт «program.com.ua» [ Електронний ресурс] - Режим доступу: http://programy.com.ua/ru/iobit_smart_defrag/

Сайт «Компьютерный портал… или портал компьюторщика» [Електронний ресурс] - Режим доступу: http://it.sander.su/disk-fragmentation.php

Сайт «Заметки сис. админа» [Електронний ресурс] - Режим доступу: http://sonikelf.ru/defragmentiruem-zhestkie-diski/

Сайт «PIClist RUS» [Електронний ресурс] - Режим доступу: http://piclist.ru/S-FAT-MMC-RUS/S-FAT-MMC-RUS.html

Стаття «Файловая система FAT» [Електронний ресурс] - Режим доступу: http://www.shalumov.pp.ru/fat.htm

Сайт «ComputerBooks» [Електронний ресурс] - Режим доступу: http://www.computerbooks.ru/%D0%BA%D0%BD%D0%B8%D0%B3%D0%B0/4.%D0%B2%D0%BD%D1%83%D1%82%D1%80%D0%B5%D0%BD%D0%BD%D0%B5%D0%B5%20%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%BE%20windows%20(%D0%B3%D0%BB.%2012-14)

Размещено на Allbest.ru


Подобные документы

  • Утиліти як сервісні програми, що розширюють можливості ОС, допомагають діагностувати й усувати проблеми, забезпечувати роботу системи. Очистка та дефрагментація жорстких дисків. Архівування файлів на жорстких дисках серверів і клієнтських комп'ютерів.

    аттестационная работа [2,7 M], добавлен 28.11.2013

  • Створення програми, що видає результати голосування та підсумки виборів. Алгоритм розробки програми. Опис структури даних та вимоги до них, стандартних процедур та функцій, файлів та їх призначення. Приклад тестування та результати роботи програми.

    курсовая работа [1,0 M], добавлен 28.06.2012

  • Розробка програми автоматизації роботи з матрицями. Оформлення даних у вигляді матриць цілих чисел. Перелік операцій над матрицями, які реалізуються у програмі. Програмне забезпечення, мови програмування. Опис логічної структури та алгоритм програми.

    курсовая работа [312,2 K], добавлен 01.04.2016

  • Задача сортування даних в програмуванні. Алгоритм сортування обміном за критерієм або вибором, деревом, пірамідальне, швидке, сортування Хоара та метод цифрового сортування. Системні вимоги та інструкція для користувача. Алгоритм та лістинг програми.

    курсовая работа [20,6 K], добавлен 08.08.2009

  • Опис структури даних та вимоги до них, процедур і функцій користувача, файлів та їх призначення. Інструкція для роботи з програмою. Результати роботи програми, її структура та функціональні компоненти, принципи роботи та сфери практичного застосування.

    курсовая работа [330,6 K], добавлен 04.02.2015

  • Аналіз методів і засобів вирішення задачі автоматизації робочого місця працівника бібліотеки. Розробка логічної моделі бази даних "Бібліотека", інтерфейсу програми. Створення візуального додатку, що дозволяє переглядати, додавати інформацію в базу даних.

    курсовая работа [2,8 M], добавлен 06.02.2013

  • Регулярний тип даних мови Pascal, що дозволяє в програмі задавати структуру даних, яка називається масивом. Поняття одновимірного та багатовимірного масиву. Прямі методи сортування масивів, типи даних. Таблиця результативності гравців футбольної команди.

    лекция [411,2 K], добавлен 24.07.2014

  • Аналіз предметної області і постановка задачі на розробку програми для автоматизації роботи автопідприємства. Перелік та опис використаних компонентів та основних процедур програми. Опис структур та методів обробки даних. Інструкція для користувача.

    курсовая работа [2,3 M], добавлен 15.02.2012

  • Схема алгоритму програми. Алгоритм процедури введення даних, виведення результатів сортування, побудови дерева, перестановки елементів, "вирішення сімейного конфлікту". Приклад для масиву з 20 елементів. Користувацьке вікно та побудова піраміди.

    курсовая работа [3,0 M], добавлен 21.02.2011

  • Мови програмування. Алгоритм програми, функціональні обмеження на застосування. Опис логічної структури. Типи комп'ютерів, що використовуються при роботі програми. Виклик і завантаження. Організація, характер та попередня підготовка вихідних даних.

    курсовая работа [95,0 K], добавлен 01.04.2016

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.