Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SysSoft Lecture 04.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.7 Mб
Скачать

Боротьба з фрагментацією

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

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

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

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

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

Стратегії розміщення інформації в пам’яті

1. Стратегія найбільш відповідного (підходящого). Завдання розміщається в тій вільній ділянці, в якій йому найбільш „тісно”, так що залишається мінімально можливий простір, що не використовується.

2. Стратегія першого відповідного. Завдання розміщується в першу ліпшу вільну ділянку основної пам’яті достатнього розмір. (Швидкість).

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

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

Всі системи, що розглядалися, припускають, що програми користувача залишаються в основній пам’яті до моменту звернення.

Схема, що називається „стопінг”, не накладає такого обмеження.

Всю ОП в кожний біжучий момент часу займає одне завдання. Це завдання виконується доти, доки не вийде певний час, а потім звільнюється як пам’ять, так і ЦП для наступного завдання.

Така програма працює до того часу, доки не відбудеться одна з таких подій:

- видали запит на ввід/вивід;

- з’явиться сигнал таймера;

- програма закінчилась.

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

Системи з розподілом часу. Сторінкова організація пам’яті. Концепція віртуальної (уявної) пам’яті.

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

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

Діапазон реальних адрес, що існують в конкретному комп’ютері, називаються простором реальних адрес (R) цього комп’ютера.

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

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

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

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

1. Розміщувати дані в запам’ятовуючих пристроях різного типу (ОП, диск)

2. Переміщувати дані при необхідності між запам’ятовуючими пристроями різного типу.

3. Перетворювати віртуальні адреси у фізичні.

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

Є різні механізми, наприклад: динамічного перетворення адрес (ДАТ) під час виконання процесів.

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

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

Стратегії керування віртуальною пам’яттю поділяються на три категорії:

Стратегія вштовхування – мета – визначити, коли треба переписати чергову сторінку або сегмент в основну пам’ять.

Способи організації пам’яті

Реальна

Реальна

Віртуальна

Системи з одним користувачем

Мультипрограмні системи з реальною пам’яттю

Мультипрограмні системи з віртуальною пам’яттю

З фіксованими розділами

Із змінними розділами

Чисті сторінки

Чисті сегменти

Комбінація сторінок і сегментів

Модулі абсолютні

Модулі, що переміщуються

Стратегія розміщення – мета – визначити, в яке місце первинної пам’яті розміщати чергову сторінку або сегмент.

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

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