- •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. Висновки
- •Висновки
- •Список використаних джерел
- •Текст програми
4.3. Детальне тестування програмного засобу
Досить важливим етапом проектування будь–якої програми є її тестування. Даний крок необхідний як на етапі проектування так і на етапі розробки, адже він дозволяє оцінити ступінь коректності роботи програми і в разі виникнення помилок прийняття необхідних міри по їх усуненню.
Методи тестування розрізняються підходами до проектування тестів. Традиційно методи динамічного тестування розділяють на дві категорії – «чорний ящик» (без доступу до початкового коду) і “білий ящик” (з доступом до початкового коду). Загальна класифікація методів тестування зображена на рис. 4.4.
Рис. 4.4 – Класифікація методів тестування
Отже, проаналізувавши існуючі методи тестування программного забезпечення, було обрано метод функціонального тестування для створеної системи. Цей метод застосовується для тестування зовнішніх та внутрішніх функцій системи.
Після запуску програми на екрані зʼявиться вікно програми під назвою “Ініціалізація”, зображено на рис. 4.5.
4.5 – Вікно “Ініціалізація”
За допомогою цього вікна користувач задає кількість сторінок фізичної пам’яті та розмір сторінки пам’яті. Після натиску кнопки “ОК” з’явиться головне вікно програми, з параметрами які задав користувач або вихідними параметрами які вже задані за змовчанням. Після натиску на кнопку “Відміна” користувач побачить головне вікно, а програма завантажиться з параметрами встановленими за змовчанням. Також є змога закрити програму натиснувши на кнопку “Закрити”, вона знаходиться у правому верхньому куті вікна.
Після входу до головного вікна програми, рис 4.6, в якому будуть відображатися всі операції, користувачем, користувач на екрані побачить чотири форми:
Сегменти;
Фізична пам’ять;
Емуляція роботи;
Зовнішня пам’ять.
Рис. 4.6 – Головне вікно програми
Форма “Сегменти”, зображена на рис. 4.7, призначена для додавання та завантаження сегментів. На цій формі розміщено дві кнопки, “Додати” – для додавання сегментів та “Завантажити” – для завантаження сегмента, вона є неактивною поки користувач не додасть сегмент.
Рис 4.7 – Форма “Сегменти”
Після натиску на кнопку “Додати” перед користувачем з’являється вікно “Додати сегмент”, воно зображене на рис. 4.8.
Рис. 4.8 – Вікно “Додати сегмент”
Дане вікно включає в себе:
Поле для введення імені сегменту;
Поле для вибору кольору, для візуального відображення;
Поле для введення розміру сторінки;
Кнопка “ОК;
Кнопка “Відміна”.
Після появи цього вікна користувач повинен ввести, бажане, ім’я, сегменту, вибрати його колір та розмір сторінки, якщо цього не робити то всі параметри будуть встановлені за змовчанням, потім натиснути кнопку “ОК”. Після цього вікно програми набуває вигляду – Рис. 4.9.
Рис. 4.9 – Головне вікно програми після додавання сегментів
Тепер сегменти завантажені в зовнішню пам’ять і користувач має можливість маніпулювати сторінками пам’яті.
Щоб почати процес емуляції роботи пам’яті потрібно вибрати потрібний сегмент і завантажити його за допомогою кнопки “Завантажити”, що знаходиться на формі “Сегменти”. Після завантаження сторінок в фізичну пам’ять головне вікно приймає наступний вигляд – рис 4.10.
Рис. 4.10 – Головне вікно після завантаження сегментів в фізичну пам’ять
Маніпуляція зі сторінками проводиться за допомогою форми – “Емуляція роботи” (рис. 4.11). Ця форма включає в себе наступні поля:
Сегмент;
Сторінка пам’яті;
Тип доступу;
Вибір алгоритму заміщення;
Також на формі розміщені дві клавіші:
Запит;
Рандомний запит;
Рис. 4.11 – Форма “Емуляція роботи”
Для початку роботи треба спочатку вибрати алгоритм заміщення сторінок. В полі “Сегмент” треба вибрати сегмент з яким користувач збирається працювати. В полі “Сторінка” обрати сторінку цього сегмента. Та обрати тип доступу (читання або запис). Після цього натиснути кнопку “Запит”. Програма робить запит до вибраної сторінки, під час запиту колір сторінки змінюється на зелений (якщо це читання), або червоний (якщо це запис). Кнопка “Рандомнй запит” робить запит до певної, рандомної, сторінки вибраного сегмента.
