- •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.10.7 Сторінкова пам’ять
Описані вище схеми недостатньо ефективно використовують пам’ять, тому в сучасних схемах управління пам’яттю не прийнято розміщувати процес в оперативній пам’яті одним безперервним блоком.
У найпростішому і найбільш поширеному випадку сторінкової організації пам’яті (або paging) як логічний адресний простір, так і фізичний представляються набором блоків або сторінок однакового розміру. При цьому утворюються логічні сторінки (page), а відповідні одиниці у фізичній пам’яті називають фізичними сторінками або сторінковими кадрами (page frames). Сторінки (і сторінкові кадри) мають фіксовану довжину, зазвичай є ступенем числа 2, і не можуть перекриватися. Кожен кадр містить одну сторінку даних. При такій організації зовнішня фрагментація відсутня, а втрати через внутрішню фрагментації, оскільки процес займає ціле число сторінок, обмежені частиною останньої сторінки процесу.
Логічна адреса в сторінкової системі – упорядкована пара (p, d), де p – номер сторінки у віртуальній пам’яті, а d – зміщення в рамках сторінки p, на якій розміщуються адресовані елементи. Зауважимо, що розбиття адресного простору на сторінки здійснюється обчислювальною системою непомітно для програміста. Тому адреса є двовимірна лише з точки зору операційної системи, а з точки зору програміста адресний простір процесу залишається лінійним.
Описувана схема дозволяє завантажити процес, навіть якщо немає безперервної області кадрів, достатньою для розміщення процесу цілком. Але одного базового регістра для здійснення трансляції адреси в даній схемі недостатньо. Система відображення логічних адрес у фізичні зводиться до системи відображення логічних сторінок у фізичні і являє собою таблицю сторінок, яка зберігається в оперативній пам’яті. Іноді кажуть, що таблиця сторінок – це кусково–лінійна функція відображення, задана в табличному вигляді.
Інтерпретація логічного адреси показана на рис. 1.5. Якщо виконуваний процес звертається до логічного адресою v = (p, d), механізм відображення шукає номер сторінки p в таблиці сторінок і визначає, що ця сторінка знаходиться в сторінковому кадрі p’, формуючи реальну адресу з p’ і d.
Рис. 1.5 – Зв’язок логічної і фізичної адрес при сторінкової організації пам’яті
Таблиця сторінок (page table) адресується за допомогою спеціального регістра процесора і дозволяє визначити номер кадру за логічною адресою. Крім цієї основної задачі, за допомогою атрибутів, записаних в рядку таблиці сторінок, можна організувати контроль доступу до конкретної сторінки і її захист.
Відзначимо ще раз відмінність точок зору користувача і системи на активну пам’ять. З точки зору користувача, його пам’ять – єдиний безперервний простір, що містить лише одну програму. Реальне відображення приховано від користувача і контролюється ОС. Зауважимо, що процесу користувача чужа пам’ять недоступна. Він не має можливості адресувати пам’ять за межами своєї таблиці сторінок, яка включає тільки його власні сторінки.
Для управління фізичної пам’яттю ОС підтримує структуру таблиці кадрів. Вона має один запис на кожен фізичний кадр, що показує його стан.
Відображення адрес має бути здійснено коректно навіть у складних випадках і зазвичай реалізується апаратно. Для посилання на таблицю процесів використовується спеціальний регістр. При перемиканні процесів необхідно знайти таблицю сторінок нового процесу, покажчик на яку входить в контекст процесу.
