Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
дроб.язко.doc
Скачиваний:
4
Добавлен:
29.10.2018
Размер:
253.44 Кб
Скачать

7)Вказати основні способи організації розривної пам’яті.

Розривна пам’ять – є одним із способів організації пам’яті.

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

Розрізняють наступні способи організації розривної пам’яті:

  1. сторінкова організація,

  2. сегментна організація,

  3. сегментно-сторінкова.

Сторінкова організація:

Віртуальний адресний простір на сторінки фіксованої довжини (2 кб найчастіше), тоді віртуальна адреса складається з адреси сторінки і зміщення від її початку.

Відображення на фізичну сторінку здійснюється за допомогою таблиця-сторінок. Для кожного процесу створюється своя таблиця. І для поточного процесу адреса цієї сторінки таблиці записується у спеціальному регістрі.

Якщо сторінки немає в пам’яті - вона зовні, то відбувається підкачування, якщо є куди. Зазвичай підкачування здійснюється за запитом (за так званим сторінковим перериванням).

Сегментна організація:

Програми розглядаються як сукупність окремих частин-сегментів. Віртуальна адреса тоді складається з адреси сегмента і зміщення відносно початку сегмента. Сегменти розміщуються в пам’яті не обов’язково підряд. Для кожного процесу створюється таблиця його сегментів, в якій фізичні адреси сегментів, розмір сегменту, ознака присутності в операційній пам’яті.

Таблиця сегментів Операційна пам’ять

Регістр містить початкову адресу процесу

Сегментно-сторінкова організація:

Програма поділяється на сегменти, а сегменти на сторінки фіксованого розміру.

Адреси складаються з 3-ох компонентів: сегмента, сторінки, позиція на сторінці. Відповідно є 2 таблиці: таблиця сегментів і таблиця сторінок.

Елемент таблиці сегментів вказує на відповідну таблицю сторінок, а з таблиці сторінок зчитується фізична адрес сторінки

8)Визначте поняття віртуальної пам’яті і особливості її реалізації в сучасних системах

Віртуальним називається ресурс, який користувачу чи користувацькій програмі представляється володіючим властивостями, якими він у дійсності не володіє. Так, наприклад, користувачу може бути надана віртуальна ОП, розмір якої перевершує всю наявну в системі реальну ОП. Користувач пише програми так, ніби в його розпорядженні наявна однорідна ОП великого обсягу, але в дійсності всі дані, використовувані програмою, зберігаються на одному чи декількох різнорідних ЗП, звичайно на дисках, і при необхідності частинами відображаються в реальну пам'ять.

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

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

Для реалізації механізму віртуальної пам’яті існує два підходи: свопінг та механізм віртуальної пам'яті. Механізм віртуальної памяті передбачає переміщення частини програми, сторінки, сегмента, що є більш ефективно та менш тривало.

Свопінг – алгоритм реалізації віртуальної пам'яті. Його можна розбити на три частини: керування простором на пристрої вивантаження, вивантаження процесів з основної пам'яті і підкачування процесів в основну пам'ять.

Використання віртуальної пам’яті має ряд очевидних переваг:

  • програма не обмежена обсягом фізичної пам'яті;

  • можливість розмістити в пам'яті більше програм;

  • обсяг уведення-виведення для вивантаження частини програми на диск може бути менше, ніж у варіанті класичного свопінга, у підсумку кожна програма буде працювати швидше.

З поняттям свопінга нерозривно зв'язані три стратегії: вибірка (fetch), розміщення (placeme) і заміщення (replaceme).

  1. Вибірка визначає, у який момент необхідно переписати сторінку з диска в пам'ять.

  2. Розміщення визначає, у яке місце оперативної пам'яті необхідно помістити сторінку, яка підвантажується.

  3. Заміщення починає діяти з того моменту, коли в оперативній пам'яті комп'ютера не залишається вільного місця для розміщення сторінки, яка підвантажується.

Частина ядра Windows XP, що займається керуванням віртуальною пам'яттю, називається VMM - Virtual Memory Manager. Це незалежний привілейований процес, що постійно знаходиться в оперативній пам'яті комп'ютера. VMM підтримує спеціальну структуру, названу базою даних сторінок (page-frame database). У ній утримуються елементи для кожної сторінки.

Сторінки, з якими процес працює протягом фіксованого інтервалу часу, є його робочою множиною на цьому інтервалі. У класичній теорії операційних систем ідеальної вважається наступна стратегія: заміщенню підлягає сторінка, що не буде використовуватися в майбутньому довше інших. У тій же класичній теорії ця стратегія визнається нездійсненною, оскільки немає ніякого розумного способу визначити, яка зі сторінок підпадає під цей критерій. Програмістам Microsoft вдалося наблизитися до цієї стратегії на основі аналізу робочої множини процесу. У Windows XP використовується досить близька стратегія: з пам'яті витісняються сторінки, що вийшли з робочої безлічі процесу. Періодично VMM переглядає список сторінок з атрибутом Valid і намагається викрасти їх у процесу. Але VMM дуже швидко зробить цю сторінку знову доступною процесові, оскільки вона реально знаходиться в пам'яті. Якщо сторінка знаходиться поза робочою множиною, то звертань до неї не буде і вона згодом перейде в розряд Free, а потім Zeroed і стане доступна іншим процесам системи.

Введення віртуальної пам'яті дозволяє вирішувати іншу, не менш важливу задачу – забезпечення контролю доступу до окремих сегментів пам'яті і, зокрема, захист користувальницьких програм один від одного і захист ОС від користувальницьких програм.

Кожна з трьох схем керування пам'яттю – сторінкової, сегментної і сегментно-сторінкової – придатна для організації віртуальної пам'яті. Найчастіше використовується сегментно-сторінкова модель, що є синтезом сторінкової моделі й ідеї сегментації. Причому для тих архітектур, у яких сегменти не підтримуються апаратно, їхня реалізація – задача архітектурно-незалежного компонента менеджера пам'яті. Сегментна організація в чистому виді зустрічається рідко.