Віртуальна пам’ять та її організація
Віртуальна пам’ять та її організація
Системи віртуальної пам’яті можна розділити на 2 класи:
1) системи з фіксованим розміром блоків (сторінка);
2) системи з змінним розміром блоків (сегмент).
1) Основна і зовнішня пам’ять діляться на блоки або сторінки фіксованої довжини. Кожному користувачу надається деяка частина адресного простору, яка може перевищувати основну пам’ять комп’ютера і яка обмежена тільки можливостями адресації, які закладені в системі команд. Ця частина адресного простору називається віртуальною пам’яттю користувача. Кожне слово в віртуальній пам’яті користувача визначається віртуальним адресом, який складається з двох частин: старші розряди (адреса розглядається як номер сторінки) і молодші (як номер слова(байт) в середині сторінки). Для внесення відповідності між віртуальними сторінками і сторінками основної пам’яті ОС повинна сформувати таблицю сторінок для кожної програми і розмістити її в основної пам’яті комп’ютера.
2) Сегментація пам’яті базується на програмах які за звичаєм розділені на окремі області – сегменти. Кожен елемент представляє собою окрему одиницю інформації, яка вміщує сукупність даних чи програм і розміщена в адресному просторі користувача. В кожному сегменті встановлюється власна нумерація слів починаючи з 0. Сегменти є окремими логічними одиницями інформації які необхідно захищати і саме на цьому рівні вводяться різні режими доступу до сегментів. Є два типи сегментів – програмний сегмент; сегмент даних. В системах з сегментацією пам’яті кожне слово в адресному просторі користувача визначається віртуальним адресом, що складається з двох частин: - старші розряди адреса розглядаються як номер сегменту; - молодші – номер слова в середині сегменту. Для забезпечення перетворення віртуального адресу в реальний фізичний адрес основної пам’яті для кожного користувача ОС має сформувати таблицю сегментів.
Таблиця сегментів користувачів зберігається в основній пам’яті.