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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



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

Через обмежену ємність основної пам’яті, а також розміщення в ній, крім програм користувача, програм операційної системи, всі програми в багатопрограмних комп’ю­терних системах не можуть розміщуватись в основній пам’яті.

Але в цьому немає великої необхідності, так як в певний момент часу виконується не вся програма, а певна її частина. Тому основна пам’ять використовується для зберіган­ня активних частин виконуваних програм, а решта інформації зберігається в зовнішній пам’яті. При цьому може виникнути необхідність заміни тих частин виконуваних програм, які стали неактивними. Звідси випливає потреба розподілу пам’яті між програмами.

Якщо вся необхідна основна пам’ять для програм призначається до початку їх ви­конання - це статичний розподіл пам’яті. Цей тип розподілу основної пам’яті викорис­товувався в перших комп’ютерах. Кожний програміст наперед замовляв потрібну йому ємність основної пам’яті. Зрозуміло, що статичний розподіл основної пам’яті не є до­сконалим. З одного боку, неефективно використовується пам’ять, так як важко наперед передбачити потрібну ємність основної пам’яті, а з іншого боку, на програміста покла­дається проблема заміни інформації в основній пам’яті.

В сучасних багатопрограмних комп’ютерних системах використовується динамічний розподіл пам’яті, відповідно до якого основна пам’ять розподіляється між програмами під час їх виконання. Для цього при підготовці цільових програм використовуються умовні адреси, а в процесі виконання програми комп’ютер перетворює умовні адреси в виконавчі, виділяючи програмі місце в пам’яті. Найчастіше це здійснюється з викорис­танням апаратних засобів, щоб прискорити звернення до пам’яті. Існує декілька спосо­бів динамічного розподілу пам’яті. Далі розглянемо два методи динамічного розподілу основної пам’яті: за допомогою базових адрес та сторінкової організації.

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

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

Рис. 10.15. Розподіл пам’яті за допомогою базових адрес

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

Недоліки розподілу пам’яті за допомогою базових адрес:

■ необхідність розміщувати програму в послідовних комірках основної пам’яті, що призводить до неефективного її використання;

* необхідність вводити програми в основну пам’ять повністю (або ті її частини, в яких використовується одна базова адреса);

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

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

 

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

 

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

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

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

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

 



Поделиться:


Последнее изменение этой страницы: 2016-08-01; просмотров: 230; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.188.44.223 (0.006 с.)