- •Базові дисципліни планування
- •Причини переривання виконання процесу
- •Кількісні показники оцінки ефективності системи
- •Вимоги до дисциплін планування.
- •Стратегії менеджера пам’ті
- •Моделі віртуальної пам’яті
- •Область пам’яті «дірка»
- •Внутрішні дірки
- •Зовнішні дірки
- •Односегментна модель
- •Дескриптор сегменту
- •Багатосегментна модель
- •Сторінкова модель
- •Дескриптор сторінки
- •Сегментно-сторінкова модель
- •Плоска модель
- •Поняття процессу
- •Стани процесу
- •Стан виконання
- •Стан готовності до виконання
- •Стан блокування або чікування
Стратегії менеджера пам’ті
У загальному випадку проектування менеджера пам'яті у складі ОС вимагає вибору трьох основних стратегій:
стратегії розміщення: яку область реальної пам'яті виділити процесу? як вести облік свободной/занятой реальної пам'яті?
стратегії підкачки: коли розміщувати процес (або частина його) в реальній пам'яті?
стратегії витіснення: якщо реальної пам'яті не вистачає для задоволення чергового запиту, то у якого процесу відібрати раніше виділений ресурс реальної пам'яті (або частина його)?
Моделі віртуальної пам’яті
Для забезпечення коректної адресації незалежно від розташування програми в оперативній пам'яті комп'ютера в якості віртуальних адрес використовуються відносні адреси, тобто зміщення від деякої базової адреси
о Пласка (flat) модель пам'яті
• Кожному процесу виділяється єдина неперервна послідовність віртуальних адрес
• Зміщення дозволяє однозначно вказати на положення даних або команди в адресному просторі процесу
о Сегментна модель пам'яті
• Адресний простір процесу поділяється на окремі частини, які називаються сегментами (зустрічаються також інші назви: секції, області)
• Віртуальна адреса задається парою чисел (n, m), де n визначає сєгмент, а m - зміщення в даному сегменті
• Сегментна модель є більш складною, але й більш гнучкою.
Область пам’яті «дірка»
У більш загальному випадку для процесу може виділятися і декілька розділів пам'яті, причому їх виділення/звільнення може виконуватися динамічно (приклад - MS DOS). Проте, загальними завжди є наступні правила:
розділ займає безперервну область реальної пам'яті;
виділений розділ фіксується в реальній пам'яті;
після виділення розділу процес працює з реальними адресами в розділі.
Завдання ефективного розподілу пам'яті (у будь-якій її моделі) зводиться перш за все до мінімізації сумарного об'єму "дірок". Нижче ми даємо визначення дірок, загальні для всіх моделей пам'яті.
Діркою називається область реальної пам'яті, яка не може бути використана. Розрізняють дірки зовнішні і внутрішні. Малюнок 3.2 ілюструє зовнішні і внутрішні дірки в системі OS/360.
Внутрішні дірки
Внутрішньою діркою називається пам'ять, яка розподілена процесу, але їм не використовується. Так, на Рис 3.2.а процесу 1 виділений розділ P1, але віртуальний адресний простір процесу менше розміру розділу, простір розділу, що залишився, складає внутрішню дірку
Зовнішні дірки
Зовнішньою діркою називається область реальної пам'яті, яка не розподілена ніякому процесу, але дуже мала, щоб задовольнити запит на пам'ять. На Рис 3.2.б сумарний розмір вільних областей, можливо, перевищує запит, але кожна з цих областей окремо менше запиту, тому всі ці вільні області є зовнішніми дірками.
Односегментна модель
Нам невідомі ОС, що підтримують односегментную модель "в чистому вигляді", але її розгляд полегшить розуміння складніших моделей.
Зовні (з погляду програміста) ця модель дуже схожа на модель з фіксованими розділами: програма-процес готується в плоскому віртуальному адресному просторі. Процес займає безперервний простір віртуальної пам'яті, і в реальну пам'ять він також завантажується в один безперервний розділ (сегмент). Сегмент може починатися з будь-якої адреси реальної пам'яті і мати будь-який розділ, що не перевищує, проте, розміру реальної пам'яті. Істотна відмінність сегментної моделі полягає в тому, що вона використовує апаратну динамічну трансляцію адрес. Завантажений в реальну пам'ять і процес, що виконується, продовжує звертатися до пам'яті, використовуючи віртуальні адреси, і лише при кожному конкретному зверненні віртуальна адреса апаратний переводиться в реальний.
