Віртуальна пам'ять
Зміст
Що таке віртуальна пам'ять?
Віртуальна пам'ять - це:
- схема адресації пам'яті комп'ютера, при якій пам'ять для запущеної програми реалізується однорідним масивом;
- файл підкачки (Windows-системи), або окремий розділ на диску (Unix-системи);
Які існують типи адрес?
Типи адрес:
- символьні адреси (ідентифікатори змінних, які створюються під час написання програми);
- віртуальні адреси (умовні адреси,які створюються компілятором під час компіляції);
- фізичні адреси (номери комірок фізичної пам'яті, тобто реальна фізична адреса комірки пам'яті).
Методи розподілу пам'яті
Методи розподілу пам'яті без використання дискового простору
Розподіл пам'яті розділами фіксованої величини
Даний розподіл заздалегідь поділяється на розділи фіксованої величини.
Перевага такого методу - простота реалізації.
Недоліком методу є нестача фіксованого розділу (який би не був маленький процес, він займе весь розділ, або навпаки, якщо процес дуже великий, то він не буде завантажений).
Розподіл пам'яті розділами змінної величини
Принцип роботи даного розподілу: розділи виділяються за потребою -> завантажується наступний вільний процес -> у вільному місці виділяється стільки місця, скільки потрібно для процесу -> завантажується наступний процес ...
Розділи виділяються "впритик". Коли завершується один процес, розділ, який він займав, звільняється.
Розподіл пам'яті розділами, що переміщуються
Для боротьби з фрагментацією вводиться процедура стиснення.
Фрагментація - це явище, коли в пам'яті є велика кількість настільки малих розділів, що в них не може бути завантажений жоден процес, хоча сумарно вільний простір є.
Методи розподілу пам'яті з використанням дискового простору
Сторінковий розподіл пам'яті
Принцип роботи даного розподілу: пам'ять поділяється на сторінки фіксованого розміру -> процес займає декілька сторінок.
Сегментний розподіл пам'яті
Принцип роботи даного розподілу: процес поділяється на сегменти за логікою програми. Як правило, розділи утворюються різної величини.