Відмінності між версіями «Віртуальна пам'ять»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
Рядок 27: Рядок 27:
 
====Сторінковий розподіл пам'яті====
 
====Сторінковий розподіл пам'яті====
 
'''Принцип роботи даного розподілу:''' пам'ять поділяється на сторінки фіксованого розміру -> процес займає декілька сторінок.
 
'''Принцип роботи даного розподілу:''' пам'ять поділяється на сторінки фіксованого розміру -> процес займає декілька сторінок.
[[Файл:5yana.png|міні|центр|500пкс]]<br />
+
[[Файл:5yana.png|міні|центр|500пкс|Сторінковий розподіл пам'яті]]<br />
[[Файл:6yana.png|міні|центр|500пкс]]
+
[[Файл:6yana.png|міні|центр|500пкс|Сторінковий розподіл пам'яті]]
 
====Сегментний розподіл пам'яті====
 
====Сегментний розподіл пам'яті====
 
'''Принцип роботи даного розподілу:''' процес поділяється на сегменти за логікою програми. Як правило, розділи утворюються різної величини.
 
'''Принцип роботи даного розподілу:''' процес поділяється на сегменти за логікою програми. Як правило, розділи утворюються різної величини.
[[Файл:7yana.png|міні|центр|500пкс]]
+
[[Файл:7yana.png|міні|центр|500пкс|Сегментний розподіл пам'яті]]
 
====Сегментно-сторінковий розподіл пам'яті====
 
====Сегментно-сторінковий розподіл пам'яті====
 +
'''Принцип роботи даного розподілу:''' фрагментації немає. Віртуальна адреса (g, p, s) переходить в фізичну адресу(n, s).
 +
[[Файл:8yana.png|міні|центр|500пкс|Сегментно-сторінковий розподіл пам'яті]]

Версія за 19:42, 16 листопада 2015

Що таке віртуальна пам'ять?

Віртуальна пам'ять - це:

  • схема адресації пам'яті комп'ютера, при якій пам'ять для запущеної програми реалізується однорідним масивом;
  • файл підкачки (Windows-системи), або окремий розділ на диску (Unix-системи);

Які існують типи адрес?

Типи адрес:

  • символьні адреси (ідентифікатори змінних, які створюються під час написання програми);
  • віртуальні адреси (умовні адреси,які створюються компілятором під час компіляції);
  • фізичні адреси (номери комірок фізичної пам'яті, тобто реальна фізична адреса комірки пам'яті).

Методи розподілу пам'яті

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

Розподіл пам'яті розділами фіксованої величини

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

Розподіл пам'яті фіксованими розділами із загальною чергою
Розподіл пам'яті фіксованими розділами з окремими чергами

Розподіл пам'яті розділами змінної величини

Принцип роботи даного розподілу: розділи виділяються за потребою -> завантажується наступний вільний процес -> у вільному місці виділяється стільки місця, скільки потрібно для процесу -> завантажується наступний процес ...
Розділи виділяються "впритик". Коли завершується один процес, розділ, який він займав, звільняється.

Розподіл пам'яті динамічними розділами

Розподіл пам'яті розділами, що переміщуються

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

Розподіл пам'яті розділами, що переміщуються

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

Сторінковий розподіл пам'яті

Принцип роботи даного розподілу: пам'ять поділяється на сторінки фіксованого розміру -> процес займає декілька сторінок.

Сторінковий розподіл пам'яті

Сторінковий розподіл пам'яті

Сегментний розподіл пам'яті

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

Сегментний розподіл пам'яті

Сегментно-сторінковий розподіл пам'яті

Принцип роботи даного розподілу: фрагментації немає. Віртуальна адреса (g, p, s) переходить в фізичну адресу(n, s).

Сегментно-сторінковий розподіл пам'яті