Поняття віртуальної пам'яті
Збільшення функціональності прикладного програмного забезпечення, при обмежених ресурсах оперативної пам’яті, поставило перед розробниками ОС проблему: розміщення в пам'яті програм, розмір яких перевищує вільну пам'ять. Одним із шляхів вирішення цієї проблеми був поділ програм на частини — оверлеї (логічно завершенні блоки програми): 0-ий оверлей починав виконуватися першим, коли він закінчував своє виконання, завантажувався інший оверлей. Всі оверлеї зберігалися на диску і переміщалися між пам'яттю і диском засобами операційної системи, однак поділ програми на частини і планування черговості їх завантаження в оперативну пам'ять здійснювався програмістом. Такий підхід зменшує надійність виконання програми та операційної системи. Розвиток методів організації обчислювального процесу в цьому напрямку привів до появи методу, відомого як віртуальна пам'ять.
Наприклад: 1) користувачу може бути надана віртуальна оперативна пам'ять, розмір якої перевершує всю наявну в системі фізичну оперативну пам'ять; 2) користувач пише програми так, начебто в його розпорядженні є однорідна оперативна пам'ять великого обсягу, але в дійсності всі дані, які використовуються програмою, зберігаються на одному чи кількох різнорідних запам'ятовуючих пристроях, як правило - дисках, і при необхідності частинами завантажуються у реальну пам'ять. Таким чином, віртуальна пам'ять - це сукупність програмно-апаратних засобів, що дозволяють користувачам писати програми, розмір яких перевершує наявну оперативну пам'ять. Операційна система при використанні віртуальної пам'яті повинна вирішувати задачі: · розміщення даних на запам'ятовуючих пристроях різного типу, наприклад, частина програми в оперативній пам'яті, а частина на диску; · переміщення, при необхідності, даних між запам'ятовуючими пристроями різного типу, наприклад, завантаження потрібної частину програми з диска в оперативну пам'ять; · перетворення віртуальних адрес у фізичні. Усі ці дії виконуються автоматично, тобто механізм віртуальної пам'яті є прозорим стосовно користувача та його програм. Найбільш розповсюдженими реалізаціями віртуальної пам'яті є: сторінковий, сегментний, сторінково-сегментний розподіл пам'яті, свопінг.
|