- •1 Аналітична частина
- •1.1 Віртуальна пам’ять в Windows
- •1.2 Керування віртуальною пам’яттю
- •1.3 Структура віртуального адресного простору
- •1.4 Віртуальний адресний простір 32–бітних систем
- •1.5 Сторінковий файл
- •1.6 Апаратна підтримка
- •1.9 Сегментація пам’яті в захищеному режимі
- •1.7 Сегментна організація пам’яті в реальному режимі роботи мікро процесорів x86
- •1.8 Базові адреси та формування лінійних адрес
- •1.10 Функції системи управління пам’яттю
- •1.10.1 Найпростіші схеми управління пам’яттю
- •1.10.2 Схема з фіксованими розділами
- •1.10.3 Один процес в пам’яті
- •1.10.4 Оверлейна структура
- •1.10.5 Стопінг
- •1.10.6 Схема зі змінними розділами
- •1.10.7 Сторінкова пам’ять
- •1.11 Дескрипторні таблиці
- •1.11.1 Дескриптор
- •1.11.2 Глобальна дескрипторна таблиця
- •1.11.3 Дескрипторна таблиця переривань
- •1.11.4 Локальна дескрипторна таблиця
- •1.12 Стратегії управління сторінковою пам’яттю
- •1.13 Алгоритми заміщення сторінок
- •1.13.1 Алгоритм fifo. Виштовхування першої сторінки що прийшла
- •1.13.2 Аномалія Біледі (Belady)
- •1.13.3 Оптимальний алгоритм (opt)
- •1.13.4 Виштовхування сторінки що довше за все не використовувалася. Алгоритм lru
- •1.13.5 Виштовхування рідко використовуваної сторінки. Алгоритм nfu
- •1.14 Огляд способів і засобів вирішення поставлених задач
- •1.14.1 SoftPerfect ram Disk
- •1.15 Постановка задачі на розробку
- •1.16 Висновки
- •2 Аналіз вимог до програмного забезпечення створення засобів опису програми для побудови її автоматної моделі
- •2.1 Виділення первинних вимог
- •2.2 Виділення детальних вимог через uml–діаграми
- •2.2.1 Діаграма прецедентів
- •2.2.2 Діаграми діяльності
- •2.2.3 Діаграма станів
- •2.3 Висновки
- •3 Проектування програмного забезпечення створення засобів опису програми для побудови її автоматної моделі
- •3.1 Архітектурне проектування
- •3.1.1 Об’єктно орієнтована парадигма
- •3.1.2 Структурна ієрархія системи
- •3.1.3 Структурна схема системи
- •3.2 Детальне проектування
- •3.2.1 Діаграма класів
- •3.2.2 Діаграма послідовності
- •3.3 Висновки
- •4 Конструювання та тестування програмного забезпечення
- •4.1 Розробка інтерфейсу користувача
- •4.2 Кодування системи
- •4.2.1 Вибір мови програмування
- •4.2.2Опис розробки програмних компонентів
- •4.2.2.1 Модуль ядра
- •4.2.2.2 Модуль віджетів
- •4.2.2.3 Модуль алгоритмів заміщення
- •4.2.2.4 Модуль графічного інтерфейсу
- •4.3. Детальне тестування програмного засобу
- •4.4. Висновки
- •Висновки
- •Список використаних джерел
- •Текст програми
1.13.5 Виштовхування рідко використовуваної сторінки. Алгоритм nfu
Оскільки більшість сучасних процесорів не пропонують відповідної апаратної підтримки для реалізації алгоритму LRU, хотілося б мати алгоритм, досить близький до LRU, але не вимагає спеціальної підтримки.
Програмна реалізація алгоритму, близького до LRU, – алгоритм NFU (Not Frequently Used).
Для нього потрібні програмні лічильники, по одному на кожну сторінку, які спочатку дорівнюють нулю. При кожному перериванні за часом (а не після кожної інструкції) операційна система сканує всі сторінки в пам’яті і в кожної сторінки з встановленим прапором звернення збільшує на одиницю значення лічильника, а прапор звернення скидає.
Таким чином, кандидатом на звільнення виявляється сторінка з найменшим значенням лічильника, як сторінка, до якої найрідше зверталися. Головний недолік алгоритму NFU полягає в тому, що він нічого не забуває. Наприклад, сторінка, до якої дуже часто зверталися протягом деякого часу, а потім звертатися перестали, все одно не буде видалена з пам’яті, тому що її лічильник містить велику величину. Наприклад, в багатопрохідних компіляторах сторінки, які активно використовувалися під час першого проходу, можуть надовго зберегти великі значення лічильника, заважаючи завантаженні корисних надалі сторінок.
На щастя, можлива невелика модифікація алгоритму, яка дозволяє йому “забувати”. Достатньо, щоб при кожному перериванні за часом вміст лічильника зрушувалося вправо на 1 біт, а вже потім вироблялося б його збільшення для сторінок з встановленим прапором звернення.
Іншим, вже більш стійким недоліком алгоритму є тривалість процесу сканування таблиць сторінок.
1.14 Огляд способів і засобів вирішення поставлених задач
1.14.1 SoftPerfect ram Disk
SoftPerfect RAM Disk – вельми корисна і зручна програма для створення віртуального диска в оперативній пам’яті комп’ютера. Швидкість роботи оперативної пам’яті завжди набагато більше швидкості звичайного жорсткого диска, тому для отримання найкращих показників швидкості зручно зберігати тимчасові файли саме в оперативній пам’яті, а не на вінчестері. Якщо в системі присутній хоча б 1 Гб оперативної пам’яті, то можна сміливо її частина виділити під віртуальний накопичувач, тому в основному при роботі ПК вся пам’ять не використовується. Кількість створених віртуальних дисків може бути обмежене лише обсягом вільної оперативної пам’яті.
Використання SoftPerfect RAM Disk вигідно, тому і дає кілька переваг порівняно зі звичайною системою:
істотне збільшення швидкості роботи комп’ютера;
зниження фрагментації файлової системи через відсутність тимчасових файлів на жорсткому диску;
збільшення терміну служби вінчестера при зменшенні циклів запису і читання;
зменшення засмічених жорсткого диска тимчасовими файлами;
зменшення шумових ефектів внаслідок меншої роботи HDD.
1.15 Постановка задачі на розробку
Основною задачею під час розробки програмного забезпечення під час виконання дипломної роботи є – створення продукту який надасть користувачу змогу емулювати роботу віртуальної пам’яті використовуючи в роботі певні алгоритми заміщення сторінок.
Зазначимо основні функціональні вимоги до створюваного продукту:
– Встановлення розміру та кількості сторінок;
– Можливість додавання та завантаження сегментів;
– Можливість звернення до до сторінок сегментів;
– Емуляція роботи декількох алгоритмів;
– Графічне відображення роботи алгоритмів.
Також потрібно зазначити, що створювана програма повинна мати не великі апаратні та програмні вимоги, для того, щоб її могла використовувати велика кількість користувачів.
Для цього зазначимо мінімальні апаратні вимоги:
Процесор Intel Pentium 2 або еквівалентний йому;
не менше 5 МБ вільного місця на жорсткому диску для самої програми;
ОЗУ не менше 256 Мб;
відеокарта з об’ємом пам’яті не менше 32 М;
пристрої виведення (монітор);
пристрої введення (клавіатура, миша);
Зазначимо мінімальні програмні вимоги:
операційна система Windows XP або більш нові версії Windows;
.NET Framework 4.0.
