- •1 Аналітична частина
- •1.1 Віртуальна пам’ять в Windows
- •1.2 Керування віртуальною пам’яттю
- •1.3 Структура віртуального адресного простору
- •1.4 Віртуальний адресний простір 32–бітних систем
- •1.5 Сторінковий файл
- •1.6 Апаратна підтримка
- •1.7 Сегментна організація пам’яті в реальному режимі роботи мікро процесорів x86
- •1.8 Базові адреси та формування лінійних адрес
- •1.9 Сегментація пам’яті в захищеному режимі
- •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.16 Висновки
В даному розділі були проаналізовані теоретичні метеріали та принципи роботи роботи віртуальної пам’яті.
Спочатку були визначені призначення та область застосування об’єкта проекту. Далі проведений огляд способів та засобів вирішення поставлених задач.
Наступним кроком був аналіз існуючих методів та програмних засобів які працюють з віртуальною пам’яттю, таких мало.
Після всіх вище описаних кроків було сформовано завдання на виконання дипломної роботи.
2 Аналіз вимог до програмного забезпечення створення засобів опису програми для побудови її автоматної моделі
2.1 Виділення первинних вимог
Аналіз вимог полягає в визначенні потреб та умов які висуваються щодо нового, чи зміненого продукту, враховуючи можливо конфліктні вимоги різних замовників, таких як користувачі.
Аналіз вимог є критичним для успішної розробки проекту. Вимоги мають бути задокументованими, вимірними, протестованими, пов’язаними з бізнес–потребами, і описаними з рівнем деталізації достатнім для конструювання системи. Вимоги можуть бути архітектурними, структурними, поведінковими, функціональними, та не функціональними
Основні вимоги для створення системи:
підтримка сучасних версій операційних систем сімейства Windows;
установка значення розміру фізичної пам’яті при старті системи;
визначення розміру сторінки пам’яті при запуску системи;
можливість додавання сегментів пам’яті із довільним розміром (в тому числі розміром, що перевищує розмір фізичної пам’яті);
вибір кольору сегменту для наочного представлення сегменту у віртуальній пам’яті;
введення імені сегменту;
візуальне представлення моделі віртуальної пам’яті;
візуалізація завантаження сегменту у фізичну пам’ять;
інтерактивна демонстрація емуляції звертання до сторінок у віртуальній пам’яті;
реалізація як вибіркових звертань до сторінки сегменту із типом читання та запису, так і реалізація випадкових звертань;
реалізація алгоритмів заміщення, додавання, витіснення.
2.2 Виділення детальних вимог через uml–діаграми
2.2.1 Діаграма прецедентів
Діаграма прецедентів — в UML, діаграма, на якій зображено відношення між акторами та прецедентами в системі. Також, перекладається як діаграма варіантів використання.
Діаграма прецедентів є графом, що складається з множини акторів, прецедентів (варіантів використання) обмежених границею системи (прямокутник), асоціацій між акторами та прецедентами, відношень серед прецедентів, та відношень узагальнення між акторами. Діаграми прецедентів відображають елементи моделі варіантів використання.
Суть даної діаграми полягає в наступному: проектована система представляється у вигляді безлічі сутностей чи акторів, що взаємодіють із системою за допомогою так званих варіантів використання. Варіант використання використовують для описання послуг, які система надає актору. Іншими словами, кожен варіант використання визначає деякий набір дій, який виконує система при діалозі з актором. При цьому нічого не говориться про те, яким чином буде реалізована взаємодія акторів із системою.
Діаграма прецедентів системи представлена на рис. 2.1.
Рис. 2.1 – Діаграма прецедентів системи
В даній системі є один актор, що є безпосереднім користувачем додатку. За допомогою взаємодії з графічним інтерфейсом, він виконує всі дії, що зображені на діаграмі.
Початковим прецедентом системи є завантаження системи. При цьому, даний прецедент розширюють два інші — встановлення розміру фізичної пам’яті та встановлення розміру сторінки пам’яті. Дані значення використовуються в подальшій роботі системи для обрахунків, що стосуються моделі віртуальної пам’яті.
Наступним прецедентом системи є додавання системи. Оскільки при запуску додатку, список сегментів буде порожній, до даний прецедент логічно слідує з попереднього. При додаванні сегменту вказується такі параметри як ім’я, розмір та колір (для графічної візуалізації), що відповідають трьом включаючим прецедентам на діаграмі.
Прецедент завантаження сегменту виконує графічну візуалізацію завантаження сегменту в фізичну пам’ять. Оскільки розмір фізичної пам’яті може бути менший за розмір сегментів, тут потрібний механізм віртуалізації пам’яті.
Основним прецедентом системи є емуляція звертання до сторінки. Він виконує основну функціональну роль системи. При звертанні до сторінки пам’яті, вона може бути відсутня у фізичній пам’яті і її потрібно завантажити із зовнішньої. В таких випадках може виникати ряд проблемних ситуацій, зв’язаних в першу чергу відсутністю вільного місця в фізичній пам’яті. Тому повинна бути реалізація алгоритмів додавання, витіснення і заміщення, що зображено відповідними прецедентами на діаграмі. Основним алгоритмічним суб’єктом в даному випадку є алгоритм заміщення. В різних архітектурах використовують різні реалізації таких алгоритмів.
