Взаємодія з диском під час керування пам’яттю



· Підкачування сторінок пам’яті

· Зберігання і заміщення сторінок пам’яті

· Резидентна множина і пробуксовування

· Організація віртуальної пам’яті в Linux та Windows XP

Причини використання диска під час керування пам’яттю

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

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

· її використання призводить до значної фрагментації зовнішньої пам’яті;

· вона не дає змоги виконувати процеси, які мають потребу у більшому обсязі пам’яті, ніж доступно у системі;

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

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

Поняття підкачування

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

Розглянемо загальні принципи підкачування. Як відомо, зняття вимоги неперервності фізичного простору, куди відображається адресний простір процесу і можливість переміщення процесу в пам’яті під час його виконання дає змогу не тримати одночасно в основній пам’яті всі блоки пам’яті (сторінки або сегменти), які утворюють адресний простір цього процесу. Під час завантаження процесу в основну пам’ять у ній розміщають лише кілька його блоків ,які потрібні для початку роботи. Частину адресного простору, що у конкретний момент часу відображається на основну пам’ять, називають резидентною множиною процесу (resident set). Поки процес звертається тільки до пам’яті резидентної множини, виконання процесу не переривають. Як тільки здійснюється посилання на блок, що перебуває за межами резидентної множини (тобто відображений на диск), відбувається апаратне переривання. Оброблювач цього переривання призупиняє процес і запускає дискову операцію читання потрібного блоку із диска в основну пам’ять. Коли блок зчитаний, операційну систему сповіщають про це, після чого процес переводять у стан готовності й, зрештою, поновлюють, після чого він продовжує свою роботу, ніби нічого й не сталося; на момент його поновлення потрібний блок уже перебуває в основній пам’яті, де процес і розраховував його знайти.

Реалізація підкачування використовує правило «дев’яносто до десяти». Ідеальною реалізацією керування пам’яттю є надання кожному процесові пам’яті, за розміром порівнянної із жорстким диском, а за швидкістю доступу – з основною пам’яттю. Оскільки за правилом «дев’яносто до десяти» на 10 % адресного простору припадає 9- % посилань на пам’ять, як деяке наближення до ідеальної реалізації можна розглядати такий підхід: зберігати ці 10 % в основній пам’яті, а інший адресний простір відображається на диск. Як показано на рис. 9.1 ,частіше використовують сторінки 0, 3, 4, 6, тому їхній вміст зберігають в основній пам’яті, а сторінки 1, 2, 5 ,7 використовують рідше, тому їхній вміст зберігають на диску.

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

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

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


Дата добавления: 2018-04-05; просмотров: 1037; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!