Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Sam_R_OS.doc
Скачиваний:
2
Добавлен:
19.11.2019
Размер:
5.27 Mб
Скачать

Переміщувані розділи

Одним з методів боротьби з фрагментацією є переміщення вcix зайнятих до старших або молодших адрес, так, щоб уся вільна пам'ять утворювала єдину вільну область (малюнок 2.11). У даному випадку в ОС повинна ще час від часу копіювати вміст розділів з одного місця пам'яті в інше, коректуючи таблицю вільних i зайнятих областей. Ця процедура називається "стиском". Стиск може виконуватися або при завершені задачі, або ж тільки тоді, коли для нової задачі немає вільного розділу достатнього розміру. Першомий випадок потребує менше обчислювальної роботи при коректуванні таблиць, а в другому - рідше виконується процедура стиску. Оскільки програми переміщуються по оперативній пам'яті протягом виконання, то перетворення адрес із віртуальної форми у фізичну повинно виконуватися динамічнішим способом.

Мал. 2.11. Розподіл пам'яті переміщуваними розділами.

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

.

Методи розподілу пам'яті з використанням дискового простору. Поняття віртуальної пам'яті.

Уже досить давно користувачі зіштовхнулися з проблемою розміщення в пам'яті програм, poзмір яких перевищував вільну пам'ять. Рішенням цієї проблеми стала розбивка програми на частини, названі оверлеями. О - вий оверлей починав виконувався першим. Коли він закінчував своє виконання, то викликав інший оверлей. Bci оверлеї зберігалися на диску i переміщалися між пам'яттю i диском засобами операційної системи. Однак розбивку програми на частини i планування їхнього завантаження в оперативну пам'ять повинен був здійснювати програміст.

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

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

• розміщує дані в запам'ятовуючих пристроях різного типу, наприклад, частина програми - в оперативній пам'яті, а частина - на диску;

• переміщує за необхідності, дані між запам'ятовуючими пристроями різного типу, наприклад, довантажує потрібну частину програми з диска в оперативну пам'ять;

• перетворює віртуальні адреси у фізичні.

Уci ці дії виконуються автоматично, без участі програміста, тобто механізм віртуальної пам'яті є прозорим стосовно користувача. Найбільш розповсюдженою реалізацією віртуальної пам'яті є сторінковий, сегментний i сторінково - сегментний розподіл пам'яті, а також свопінг.

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