Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
report (1).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
946 Кб
Скачать
☆

1.10 Функції системи управління пам’яттю

Щоб забезпечити ефективний контроль використання пам’яті, ОС повинна виконувати наступні функції:

– відображення адресного простору процесу на конкретні галузі фізичної пам’яті;

– розподіл пам’яті між конкуруючими процесами;

– контроль доступу до адресних просторів процесів;

– вивантаження процесів (цілком або частково) в зовнішню пам’ять, коли в оперативній пам’яті недостатньо місця;

– облік вільної та використаної пам’яті.

Кожна схема включає в себе певну ідеологію управління, а також алгоритми і структури даних і залежить від архітектурних особливостей використовуваної системи.

1.10.1 Найпростіші схеми управління пам’яттю

Перші ОС застосовували дуже прості методи управління пам’яттю. Спочатку кожен процес користувача повинен був повністю поміститися в основній пам’яті, займати безперервну область пам’яті, а система брала до обслуговування додаткові користувацькі процеси до тих пір, поки всі вони одночасно поміщалися в основній пам’яті. Потім з’явився "простий свопінг" (система як і раніше розміщує кожен процес в основний пам’яті цілком, але іноді на підставі деякого критерію цілком скидає образ деякого процесу з основної пам’яті в зовнішню і замінює його в основної пам’яті чином іншого процесу). Такого роду схеми мають не лише історичну цінність. В даний час вони застосовуються в навчальних і науково–дослідних модельних ОС, а також в ОС для вбудованих (embedded) комп’ютерів.

1.10.2 Схема з фіксованими розділами

Найпростішим способом управління оперативною пам’яттю є її попереднє (зазвичай на етапі генерації або в момент завантаження системи) розбиття на кілька розділів фіксованої величини. Процеси що поступають поміщаються в той чи інший розділ. При цьому відбувається умовне розбиття фізичного адресного простору. Зв’язування логічних і фізичних адрес процесу відбувається на етапі його завантаження в конкретний розділ, іноді – на етапі компіляції.

Кожен розділ може мати свою чергу процесів, а може існувати і глобальна черга для всіх розділів(рис. 1.2.).

Ця схема була реалізована в IBM OS / 360 (MFT), DEC RSX–11 і ряді інших систем.

Підсистема управління пам’яттю оцінює розмір надійшовшого процесу, вибирає підходящий для нього розділ, здійснює завантаження процесу в цей розділ і налаштування адресу.

Рис. 1.2 – Схема з фіксованими розділами

Очевидним недоліком цієї схеми – число одночасно виконуваних процесів обмежено числом розділів.

Іншим істотним недоліком є те, що пропонована схема сильно страждає від внутрішньої фрагментації – втрати частини пам’яті, виділеної процесу, але не використовуваної ним. Фрагментація виникає тому, що процес не повністю займає виділений йому розділ або тому, що деякі розділи занадто малі для виконуваних програм користувача.

1.10.3 Один процес в пам’яті

Окремий випадок схеми з фіксованими розділами – робота менеджера пам’яті однозадачної ОС. У пам’яті розміщується один користувальницький процес. Залишається визначити, де розташовується користувача програма по відношенню до ОС – у верхній частині пам’яті, в нижній або у середній. Причому частина ОС може бути в ROM (наприклад, BIOS, драйвери пристроїв). Головний фактор, що впливає на це рішення, – розташування вектора переривань, який зазвичай локалізована в нижній частині пам’яті, тому ОС також розміщують у нижній. Прикладом такої організації може служити ОС MS–DOS.

Захист адресного простору ОС від користувача програми може бути організовано за допомогою одного граничного регістра, що містить адресу кордону ОС.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]