ЗНАЕТЕ ЛИ ВЫ?

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



Уci методи керування пам'яттю можуть бути поділені на два класи: методи, що використовують переміщення процесів між оперативною пам'яттю i диском та методи, що не виконують цього (малюнок 2.8). Почнемо з останнього, простішого класу методів.

Мал. 2.8. Класифікація методів розподілу пам'яті.

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

Найпростішим способом керування оперативною пам'яттю є поділ її на кілька розділів фасованої вепичини. Це може бути виконане вручну оператором під час старту системи, чи під час її генерації. Чергова задача, що надійшла на виконання, міститься або в загальній черзі (малюнок 2.9,а), або ж в черзі до якогось розділу (малюнок 2.9,б).

Підсистема керування пам'яттю, в цьому випадку, виконує наступні задачі:

• порівнюючи розмір програми, що надійшла на виконання, i вільних розділів, вибирає придатний розділ;

• здійснює завантаження програми i настроювання адрес.

При очевидній перевазі - простоті реалізації - даний метод має істотний недолік - твердість. Оскільки в кожному розділі може виконуватися тільки одна програма, то рівень мультипрограмування заздалегідь обмежений числом розділів, не залежно від того, який розмір мають програми. Навіть якщо програма має невеликий обсяг, вона займає весь розділ, що призводить до неефективного використання пам'яті. 3 iншoгo боку, навіть якщо обсяг оперативної пам'яті машини дозволяє виконати програму, розбивка пам'яті на розділи не дозволяє зробити цього.

 

Мал. 2.9. Розподіл пам'яті фіксованими розділами: а - із загальною чергою; б - з окремими чергами.

 

 

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

У цьому випадку пам'ять машини не поділяють заздалегідь на розділи. Спочатку вся пам'ять вільна. Кожній задачі виділяється необхідна їй пам'ять. Якщо достатній обсяг пам'яті відсутній, то задача не приймається на виконання i стоїть в черзі. Після завершення задачі, пам'ять звільняється i на це місце може бути завантажена інша задача. Таким чином, у довільний момент часу оперативна пам'ять є випадковою послідовністю зайнятих i вільних ділянок (poзділів) довільного розміpy. На малюнку 2.10 зображених стан пам'яті в piзні моменти часу, при використанні динамічного розподілу. Так у певний момент у пам'яті знаходиться тільки ОС, а до моменту t1 пам'ять поділена між 5 задачами, причому задача П4, завершуючись, залишає пам'ять. На звільнене місце завантажується задача П6, що надійшла в момент t3.

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

 

Задачами операційної системи, за умови реалізації даного методу, керування пам'яттю є:

• ведення таблиць вільних i зайнятих областей, де вказуються початкові адреси i розміри ділянок пам'яті;

• при надходженні нової задачі - аналіз запиту, переглядають таблиці вільних областей i вибирають розділ, розмір якого достатній для розміщення задачі, що надійшла;

• завантаження задачі у виділений для неї розділ i коректування таблиць вільних i зайнятих областей;

Вибір розділу для задачі можуть здійснювати за певними правилами, такими, наприклад, як "перший розділ достатнього розміру", або ж "розділ, що має найменший достатній розмір", чи "розділ, що має найбільший достатній розмір". Уci ці правила мають свої переваги i недоліки.

У порівнянні з методом розподілу пам'яті фіксованими розділами, даний метод має набагато більшу гнучкість, але йому властивий дуже вагомий недолік – пам’ять фрагментами. Фрагментація - це наявність великого числа несуміжних ділянок вільної пам'яті дуже маленького розміру (фрагментів). Настільки маленького, що жодна із програм, що надходять не може поміститися в жодній з ділянок, хоча сумарний обсяг фрагментів може скласти значну величину, що набагато перевищує необхідний обсяг пам'яті.

 

Переміщувані розділи

Одним з методів боротьби з фрагментацією є переміщення вcix зайнятих до старших або молодших адрес, так, щоб уся вільна пам'ять утворювала єдину вільну область (малюнок 2.11). У даному випадку в ОС повинна ще час від часу копіювати вміст розділів з одного місця пам'яті в інше, коректуючи таблицю вільних i зайнятих областей. Ця процедура називається "стиском". Стиск може виконуватися або при завершені задачі, або ж тільки тоді, коли для нової задачі немає вільного розділу достатнього розміру. Першомий випадок потребує менше обчислювальної роботи при коректуванні таблиць, а в другому - рідше виконується процедура стиску. Оскільки програми переміщуються по оперативній пам'яті протягом виконання, то перетворення адрес із віртуальної форми у фізичну повинно виконуватися динамічнішим способом.

Мал. 2.11. Розподіл пам'яті переміщуваними розділами.

 

Хоча процедура стиску i призводить до ефективнішого використання пам'яті, вона може зажадати значного й часу, що є істотним недоліком

.

 





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

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