- •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. Висновки
- •Висновки
- •Список використаних джерел
- •Текст програми
3.1.2 Структурна ієрархія системи
Розроблювана система згідно її опису виконує наступні функції:
підтримка сучасних версій операційних систем сімейства Windows;
установка значення розміру фізичної пам’яті при старті системи;
визначення розміру сторінки пам’яті при запуску системи;
можливість додавання сегментів пам’яті із довільним розміром (в тому числі розміром, що перевищує розмір фізичної пам’яті);
вибір кольору сегменту для наочного представлення сегменту у віртуальній пам’яті;
введення імені сегменту;
візуальне представлення моделі віртуальної пам’яті;
візуалізація завантаження сегменту у фізичну пам’ять;
інтерактивна демонстрація емуляції звертання до сторінок у віртуальній пам’яті;
реалізація як вибіркових звертань до сторінки сегменту із типом читання та запису, так і реалізація випадкових звертань;
реалізація алгоритмів заміщення, додавання, витіснення.
Структурна ієрархія системи представлена на рис 3.1.
Рис. 3.1 – Структурна ієрархія системи
3.1.3 Структурна схема системи
У процесі проектування відбулася декомпозиція системи на базові компоненти. Кожен з них містить в собі певний набір функцій і пов’язаний з іншими (рис. 3.2).
Рис. 3.2 – Структурна схема системи
Центральним елементом системи є модуль ядра. Він є зв’язовуючою ланкою між іншими модулями системи. В ньому інкапсульована вся логіка системи. Також в даному модулі реалізований механізм подій, що дозволяє модулю графічного інтерфейсу підписуватись на них і таким чином адекватно реагувати на поведінку системи. Модуль ядра отримує на вході розмір фізичної пам’яті та сторінки пам’яті, після чого ініціює початкову ініціалізацію системи. В ньому реалізовані інтерфейсні методи для звертання із модулю графічного інтерфейсу. Також, в ньому знаходяться менеджер віртуальної пам’яті, абстракція фізичної та зовнішньої пам’яті, сторінки, сегменту. Також в модулі реалізовані базові класи для роботи з віртуальною пам’яттю, виконання запитів, виділення окремих потоків і асинхронна обробка відповідей після виконання запитів, оповіщення системи через механізм подій, бінарна сериалізація і десериалізація налаштувань програми. Ряд об’єктів в даному модулі є синглтон–об’єктами, тобто такими, що створюються в єдиному екземплярі.
Модуль графічного інтерфейсу є кінцевим модулем, що використовує модуль ядра, візуалізує його роботу, отримує команди а також виводить інформацію. Він реалізований у вигляді набору форм Windows, що містять логіку посилання повідомлень та обробку користувацьких подій, що визначені в модулі ядра. Кожна з форм містить набір візуальних та невізуальних компонент, таких як кнопки, поля вводу, таблиці, діаграми, тощо.
Модуль віджетів служить для візуалізації роботи віртуальної пам’яті. Він містить функціонал динамічного створення та знищення компонент, геометричні розрахунки для анімації, методи для анімування сторінок пам’яті та ряд інших важливих методів. Також модуль віджетів взаємодіє з такими механізмами операційної системи, як рендер, буферизація, маніпуляції з пам’яттю. Реалізований вигляді набору статичних класів.
Модуль алгоритмів заміщення призначений для підтримки таких алгоритмів у менеджері віртуальної пам’яті. Він включає базовий абстрактний клас, що містить загальний інтерфейс алгоритмів заміщення, а також конкретні реалізації таких алгоримтів. При ініціалізації менеджера віртуальної пам’яті, створюються екземпляри всіх алгоритмів, а користувач при роботі програми обирає необхідний, для візуалізацїї його роботи у віртуальній пам’яті.
