Пейджінг Operaсистема (ОС): що таке, переваги, приклад

⚡ Розумний підсумок

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

  • 📄 Визначення: Підкачка розділяє логічну пам'ять на сторінки фіксованого розміру, а фізичну пам'ять - на рівні фрейми, мапиping одна сторінка на один кадр.
  • 🗺️ Таблиця сторінок: Операційна система використовує таблицю сторінок для перетворення кожного логічного номера сторінки в адресу її фізичного кадру.
  • 🛡️ Захист: Біт дійсності/недійсності в кожному записі таблиці сторінок захищає пам'ять і позначає, до яких сторінок може отримати доступ процес.
  • переваги: Підкачка усуває зовнішню фрагментацію та здійснює підкачкуping між сторінками та рамками однакового розміру просто та швидко.
  • ⚠️ Компроміси: Підкачка може спричинити внутрішню фрагментацію та накладні витрати на таблицю сторінок, тоді як сегментація натомість використовує сегменти змінного розміру, які відповідають структурі програми.
  • 🤖 Кут штучного інтелекту: Машинне навчання налаштовує рішення щодо заміни сторінок, а Copilot допомагає писати код для підкачки та перетворення адрес.

Пейджінг Operating System

Що таке пейджинг в ОС?

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

Приклад підкачки в ОС

Щоб зрозуміти, як сторінки відображаються на фрейми, розглянемо простий приклад. Якщо розмір основної пам'яті становить 16 КБ, а розмір фрейму — 1 КБ, то основна пам'ять поділяється на колекцію з 16 фреймів по 1 КБ кожен.

У системі є 4 окремі процеси, а саме A1, A2, A3 та A4, кожен по 4 КБ. Тут усі процеси розділені на сторінки по 1 КБ кожна, щоб операційна система могла зберігати одну сторінку в одному фреймі.

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

Приклад пейджингу в ОС зі сторінками, завантаженими послідовно

У цьому прикладі видно, що A2 та A4 через деякий час переходять у стан очікування. Таким чином, вісім кадрів стають порожніми, і в ці порожні блоки можна завантажити інші сторінки. Процес A5, розміром 8 сторінок (8 КБ), чекає в черзі готовності.

Приклад пейджингу в ОС з процесом, завантаженим у несуміжні кадри

Тепер у пам'яті доступно вісім несуміжних кадрів, а сторінкове розбиття на сторінки забезпечує гнучкість зберігання процесу в різних місцях. Це дозволяє ОС завантажувати сторінки процесу A5 замість A2 та A4.

Що таке захист підкачки?

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

Переваги пейджінгу

Ось переваги використання методу пейджингу:

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

Недоліки пейджінгу

Ось недоліки та мінуси пейджингу:

  • Це може спричинити внутрішню фрагментацію.
  • Таблиці сторінок споживають додаткову пам'ять.
  • Багаторівнева сторінка може призвести до накладних витрат на посилання на пам’ять.

Що таке сегментація?

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

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

Переваги сегментації

Ось переваги та переваги сегментації:

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

Недоліки сегментації

Ось недоліки та недоліки сегментації:

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

Поширені запитання

Помилка сторінки виникає, коли процес запитує сторінку, якої наразі немає в основній пам'яті. Операційна система призупиняє процес, вибирає сторінку з вторинної пам'яті у вільний кадр, а потім відновлює виконання.

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

TLB — це невеликий, швидкий кеш, який зберігає нещодавню мапу сторінок за кадрами.pings. Це пришвидшує трансляцію адрес, уникаючи повного пошуку таблиці сторінок у пам'яті для часто використовуваних сторінок.

Сторінка — це блок процесу фіксованого розміру в логічній пам'яті, тоді як кадр — це блок фізичної пам'яті такого ж розміру. Під час підкачки кожна сторінка завантажується рівно в один вільний кадр.

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

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

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

Так. GitHub Copilot може генерувати код FIFO, LRU та оптимальної заміни сторінок, а також симуляції розбиття на сторінки на C. Javaабо PythonЗавжди перевіряйте кількість несправностей та граничних випадків, перш ніж покладатися на вихідні дані.

Підсумуйте цей пост за допомогою: