Віртуальна пам'ять, розподіл пам'яті

У даній статті, ми поговоримо на такі теми, як віртуальна пам'ять. і розглянемо основні методи розподілу віртуальної пам'яті в операційних системах.

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

Класифікація методів розподілу пам'яті представлена ​​на наступному малюнку:

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

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

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

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

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

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

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

Вибір розділу для нові надходження завдання може здійснюватися за різними правилами, таким, наприклад, як «перший-ліпший розділ достатнього розміру», або «розділ, що має найменший достатній розмір», або «розділ, який має найбільший достатній розмір». Всі ці правила мають свої переваги і недоліки.

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

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

Розподіл пам'яті переміщуваними розділами ілюструє наступний малюнок:

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

Розподіл віртуальної пам'яті

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

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

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

У даній ситуації може бути використано багато різних критеріїв вибору, найбільш популярні з них наступні:

  • довше за все не використовувалася сторінка.
  • перша-ліпша сторінка.
  • сторінка, до якої останнім часом було найменше звернень.

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

Сегментний розподіл пам'яті представлено на наступному малюнку:

Сторінково-сегментний розподіл

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

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

Поділися інформацією з друзями в:

У даній статті, ми поговоримо на такі теми, як віртуальна пам'ять, і розглянемо основні методи розподілу віртуальної пам'яті в операційних системах.

Можливо вам буде цікаво:

У цій статті ми поговоримо на такі теми, як процеси і потоки, дискриптори процесу, поговоримо про сінзронізаціі потоків і торкнемося всіма улюблений диспетчер задач windows.

У цій статті ми поговоримо на такі теми, як системні процеси, а саме: планування процесів операційною системою, виділення ресурсів процесу, стану процесу в ОС.

сьогодні читають

Отримай 1500 Gold безкоштовно в World of tanks при покупці антивіруса
Wargaming - і "Лабораторія Касперського" оголосили про початок спільної акції. Тепер при покупці ліцензійного програмного забезпечення Kaspersky Internet Security, Kaspersky CRYSTAL, а також Kaspersky ONE.

Безкоштовна trial версія Diablo III - вже доступна для скачування
Вже як три місяці ми насолоджуємося довгоочікуваним релізом Diablo III. Щасливі володарі ліцензії, так само отримали в комплекті ваучер, який дає можливість грати в Starter Edition версію.

GTA San Andreas - модифікована движком GTA 4 (скачати мод)
Шанувальники - легендарної серії ігор Grand Theft Auto вирішили розробити глобальний мод, GTA San Andreas буде поставлена ​​на движок від GTA 4. Посилання для скачування мода ви знайдете в кінці цієї статті.

Як скачати музику з контакту на комп'ютер - програма VKSaver 3.1
У цій статті ми відповімо на питання: як скачати музику з контакту на комп'ютер абсолютно безкоштовно, а використовувати для цього ми будемо безкоштовну програму - VKSaver 3.1


Схожі статті