logo
AOM / Мельник А

10.3.2. Розподіл основної пам'яті за допомогою базових адрес

Відповідно до методу динамічного розподілу пам'яті за допомогою базових адрес кожній програмі виділяється деяка область основної пам'яті, і, крім того, програма пи­шеться з використанням умовних адрес. Для цього кожній програмі ставиться у відпо­відність базова адреса, що встановлюється операційною системою. При всіх зверненнях до пам'яті базова адреса додається на суматорі CM (рис. 10.15) до умовної адреси, визна­ченої програмою, утворюючи виконавчу адресу пам'яті.

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

378

■ фрагментація пам'яті, тобто її.поділ на використовувані і не використовувані частини (іншими словами - наявність в пам'яті дірок).

Як приклад на рис. 10.16а наведено розподіл основної пам'яті між трьома програма­ми А, В, С в деякий момент часу. Після завершення виконання програми В (рис. 10.16b) в пам'яті вивільнилося місце, яке разом з областю пам'яті D (вільні області В та D виділені штриховими лініями) є більшим за розміром, ніж потрібно програмі Е, однак ця про­грама не може бути записаною до основної пам'яті, оскільки вона є більшою за кожну з областей В та Е, які розміщені в пам'яті не підряд.

Виходом з цієї ситуації є, наприклад, переміщення програми із області С ближче до області А, що дозволяє вивільнити місце програмі Е, як це показано, наприклад, на рис. 10.17а.

Однак це пов'язано з втратами часу на переміщення програми, а часто і з необхідніс­тю редагування програми і завантаження її заново, оскільки змінилися адреси.

Іншим варіантом є чекання, доки не звільниться область необхідної ємності, як це показано на рис. 10.17b,коли завершилось виконання програми А і з'явилось достат­ньо місця для програми Е. Виходить, що програма чекає своєї черги на завантаження до основної пам'яті, хоча є ділянки пам'яті великого розміру, але вони розміщені в різних областях основної пам'яті.

Таким чином, при використанні описаного способу розподілу в основній пам'яті за­вжди будуть наявні дірки, які в сумі можуть займати значну частину її ємності.

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

379