Бакуменко Володимир - "Сегментний розподіл"

Матеріал з Вікі ЦДУ
Версія від 13:18, 8 січня 2012; XxxSACREDxxx (обговореннявнесок)

(різн.) ← Попередня версія • Поточна версія (різн.) • Новіша версія → (різн.)
Перейти до: навігація, пошук

При сторінковій організації ВАП процесу поділяється механічно на рівні частини. Це не дозволяє диференціювати способи доступу до різних частин програми (сегментам), а ця властивість часта буває дуже корисною. Наприклад, можна заборонити звертатися з операціями запису і читання в кодовий сегмент програми, а для сегмента даних дозволити тільки читання. Крім того, розбивка програми на "осмислені" частини робить принципово можливим поділ одного сегмента декількома процесами. Наприклад, якщо два процеси використовують ту саму математичну підпрограму, то в ОП може бути завантажена тільки одна копія цієї підпрограми.

Розглянемо, яким чином сегментний розподіл пам'яті реалізує ці можливості (рис. 24). ВАП процесу поділяється на сегменти, розмір яких визначається програмістом з урахуванням значення інформації, що міститься в них. Окремий сегмент може являти собою підпрограму, масив даних і т.п. Іноді сегментація програми виконується по замовчуванню компілятором.