Відмінності між версіями «Віртуальна пам'ять»
3522390 (обговорення • внесок) |
3522390 (обговорення • внесок) |
||
(не показано 15 проміжних версій цього учасника) | |||
Рядок 1: | Рядок 1: | ||
==Що таке віртуальна пам'ять?== | ==Що таке віртуальна пам'ять?== | ||
− | '''Віртуальна пам'ять''' - це | + | '''Віртуальна пам'ять''' - це схема адресації пам'яті комп'ютера, при якій пам'ять для запущеної програми реалізується однорідним масивом. |
− | + | ||
− | + | ||
==Які існують типи адрес?== | ==Які існують типи адрес?== | ||
'''Типи адрес:''' | '''Типи адрес:''' | ||
Рядок 14: | Рядок 12: | ||
'''Перевага''' такого методу - простота реалізації.<br /> | '''Перевага''' такого методу - простота реалізації.<br /> | ||
'''Недоліком''' методу є нестача фіксованого розділу (який би не був маленький процес, він займе весь розділ, або навпаки, якщо процес дуже великий, то він не буде завантажений). | '''Недоліком''' методу є нестача фіксованого розділу (який би не був маленький процес, він займе весь розділ, або навпаки, якщо процес дуже великий, то він не буде завантажений). | ||
− | [[Файл: | + | [[Файл:30yana.png|міні|центр|500пкс|Розподіл пам'яті фіксованими розділами із загальною чергою]] |
[[Файл:2.png|міні|центр|500пкс|Розподіл пам'яті фіксованими розділами з окремими чергами]] | [[Файл:2.png|міні|центр|500пкс|Розподіл пам'яті фіксованими розділами з окремими чергами]] | ||
− | |||
− | |||
− | |||
− | |||
====Розподіл пам'яті розділами змінної величини==== | ====Розподіл пам'яті розділами змінної величини==== | ||
− | Принцип роботи даного розподілу: розділи виділяються за потребою -> завантажується наступний вільний процес -> у вільному місці виділяється стільки місця, скільки потрібно для процесу -> завантажується наступний процес ...<br /> | + | '''Принцип роботи даного розподілу:''' розділи виділяються за потребою -> завантажується наступний вільний процес -> у вільному місці виділяється стільки місця, скільки потрібно для процесу -> завантажується наступний процес ...<br /> |
− | Розділи виділяються "впритик". | + | Розділи виділяються "впритик". Коли завершується один процес, розділ, який він займав, звільняється. |
+ | [[Файл:3.png|міні|центр|500пкс|Розподіл пам'яті динамічними розділами]] | ||
====Розподіл пам'яті розділами, що переміщуються==== | ====Розподіл пам'яті розділами, що переміщуються==== | ||
+ | Для боротьби з фрагментацією вводиться процедура стиснення.<br /> | ||
+ | '''Фрагментація''' - це явище, коли в пам'яті є велика кількість настільки малих розділів, що в них не може бути завантажений жоден процес, хоча сумарно вільний простір є. | ||
+ | [[Файл:4yana.png|міні|центр|500пкс|Розподіл пам'яті розділами, що переміщуються]] | ||
===Методи розподілу пам'яті з використанням дискового простору=== | ===Методи розподілу пам'яті з використанням дискового простору=== | ||
====Сторінковий розподіл пам'яті==== | ====Сторінковий розподіл пам'яті==== | ||
+ | '''Принцип роботи даного розподілу:''' пам'ять поділяється на сторінки фіксованого розміру -> процес займає декілька сторінок. | ||
+ | [[Файл:5yana.png|міні|центр|500пкс|Сторінковий розподіл пам'яті]]<br /> | ||
+ | [[Файл:6yana.png|міні|центр|500пкс|Сторінковий розподіл пам'яті]] | ||
====Сегментний розподіл пам'яті==== | ====Сегментний розподіл пам'яті==== | ||
+ | '''Принцип роботи даного розподілу:''' процес поділяється на сегменти за логікою програми. Як правило, розділи утворюються різної величини. | ||
+ | [[Файл:7yana.png|міні|центр|500пкс|Сегментний розподіл пам'яті]] | ||
====Сегментно-сторінковий розподіл пам'яті==== | ====Сегментно-сторінковий розподіл пам'яті==== | ||
+ | '''Принцип роботи даного розподілу:''' фрагментації немає. Віртуальна адреса (g, p, s) переходить в фізичну адресу(n, s). | ||
+ | [[Файл:8yana.png|міні|центр|500пкс|Сегментно-сторінковий розподіл пам'яті]] |
Поточна версія на 16:07, 20 листопада 2015
Зміст
Що таке віртуальна пам'ять?
Віртуальна пам'ять - це схема адресації пам'яті комп'ютера, при якій пам'ять для запущеної програми реалізується однорідним масивом.
Які існують типи адрес?
Типи адрес:
- символьні адреси (ідентифікатори змінних, які створюються під час написання програми);
- віртуальні адреси (умовні адреси,які створюються компілятором під час компіляції);
- фізичні адреси (номери комірок фізичної пам'яті, тобто реальна фізична адреса комірки пам'яті).
Методи розподілу пам'яті
Методи розподілу пам'яті без використання дискового простору
Розподіл пам'яті розділами фіксованої величини
Даний розподіл заздалегідь поділяється на розділи фіксованої величини.
Перевага такого методу - простота реалізації.
Недоліком методу є нестача фіксованого розділу (який би не був маленький процес, він займе весь розділ, або навпаки, якщо процес дуже великий, то він не буде завантажений).
Розподіл пам'яті розділами змінної величини
Принцип роботи даного розподілу: розділи виділяються за потребою -> завантажується наступний вільний процес -> у вільному місці виділяється стільки місця, скільки потрібно для процесу -> завантажується наступний процес ...
Розділи виділяються "впритик". Коли завершується один процес, розділ, який він займав, звільняється.
Розподіл пам'яті розділами, що переміщуються
Для боротьби з фрагментацією вводиться процедура стиснення.
Фрагментація - це явище, коли в пам'яті є велика кількість настільки малих розділів, що в них не може бути завантажений жоден процес, хоча сумарно вільний простір є.
Методи розподілу пам'яті з використанням дискового простору
Сторінковий розподіл пам'яті
Принцип роботи даного розподілу: пам'ять поділяється на сторінки фіксованого розміру -> процес займає декілька сторінок.
Сегментний розподіл пам'яті
Принцип роботи даного розподілу: процес поділяється на сегменти за логікою програми. Як правило, розділи утворюються різної величини.
Сегментно-сторінковий розподіл пам'яті
Принцип роботи даного розподілу: фрагментації немає. Віртуальна адреса (g, p, s) переходить в фізичну адресу(n, s).