Пейджинг в Operating System (OS): какво е, предимства, пример

⚡ Умно обобщение

Пейджингът е техника за управление на паметта, която съхранява процесите в страници с фиксиран размер и ги зарежда в еднакво големи кадри от физическа памет, позволявайки на операционната система да използва несвързана памет, да избягва външна фрагментация и да осъществява достъп до данни по-бързо.

  • 📄 Определение: Пейджингът разделя логическата памет на страници с фиксиран размер, а физическата памет - на равни рамки, мапвайкиping една страница към един кадър.
  • Таблица на страниците: Операционната система използва таблица на страниците, за да преобразува всеки логически номер на страница в неговия физически адрес на кадър.
  • Ниво на защита: Валиден/невалиден бит във всеки запис в таблицата на страниците защитава паметта и маркира до кои страници може да има достъп даден процес.
  • Предимства: Пейджингът премахва външната фрагментация и прави суапping между страници с еднакъв размер и рамки лесно и бързо.
  • ⚠️ Компромиси: Пейджингът може да причини вътрешна фрагментация и натоварване на таблицата на страниците, докато сегментирането вместо това използва сегменти с променлив размер, които съответстват на структурата на програмата.
  • 🤖 Ъгъл на изкуствен интелект: Машинното обучение настройва решенията за заместване на страници, а Copilot помага за писането на код за пейджинг и преобразуване на адреси.

Пейджинг в Operaтинг система

Какво е пейджинг в OS?

пейджинг е механизъм за съхранение, който позволява на операционната система да извлича процеси от вторично хранилище в основната памет под формата на страници. При метода на пейджинг, основната памет се разделя на малки блокове физическа памет с фиксиран размер, които се наричат ​​рамки (frames). Размерът на рамката се запазва същият като този на страницата, за да се постигне максимално използване на основната памет и да се избегне външна фрагментация. Пейджингът се използва за по-бърз достъп до данни и е логическа концепция.

Пример за страниране в OS

За да разберем как страниците се съпоставят с рамки, разгледайте един прост пример. Ако размерът на основната памет е 16 KB, а размерът на рамката е 1 KB, тогава основната памет е разделена на колекция от 16 рамки по 1 KB всяка.

В системата има 4 отделни процеса, а именно A1, A2, A3 и A4, всеки от които е по 4 KB. Тук всички процеси са разделени на страници от по 1 KB, така че операционната система да може да съхранява по една страница в един кадър.

В началото на процеса всички рамки остават празни, така че всички страници на процесите се съхраняват последователно.

Пример за пейджинг в операционна система със страници, заредени последователно

В този пример можете да видите, че A2 и A4 преминават в състояние на изчакване след известно време. Следователно, осем кадъра се изпразват и в тези празни блокове могат да бъдат заредени други страници. Процесът A5, с размер 8 страници (8 KB), чака в опашката за готовност.

Пример за пейджинг в операционна система с процес, зареден в несвързани рамки

Сега в паметта има осем несвързани кадъра, а пейджингът предлага гъвкавостта да съхранява процеса на различни места. Това позволява на операционната система да зарежда страниците на процес A5 вместо A2 и A4.

Какво е пейджинг защита?

Процесът на пейджинг е защитен чрез вмъкване на допълнителен бит, наречен бит за валидност/невалидност. Защитата на паметта при пейджинг се постига чрез асоцииране на защитни битове с всяка страница. Тези битове са свързани с всеки запис в таблицата на страниците и определят разрешената защита на съответната страница.

Предимства на пейджинг

Ето предимствата на използването на метода на пейджинг:

  • Той е лесен за използване управление на паметта алгоритъм.
  • Няма нужда от външна фрагментация.
  • размянаping е лесно между страници с еднакъв размер и рамки на страници.

Недостатъци на пейджинг

Ето недостатъците и минусите на пейджинга:

  • Това може да причини вътрешна фрагментация.
  • Таблиците на страниците консумират допълнителна памет.
  • Странирането на много нива може да доведе до излишни препратки към паметта.

Какво е сегментиране?

Сегментирането работи почти подобно на странирането. Единствената разлика между двете е, че сегментите са с променлива дължина, докато при метода на страниране страниците винаги са с фиксиран размер.

Програмният сегмент включва основната функция на програмата, структурите от данни, помощните функции и т.н. ОС поддържа таблица с карти на сегменти за всички процеси. Тя включва и списък със свободни блокове памет, заедно с техния размер, номера на сегменти и местоположения в паметта в основната памет или виртуална памет.

Предимства на сегментирането

Ето предимствата и ползите от сегментирането:

  • Той предлага защита в рамките на сегментите.
  • Можете да постигнете споделяне, като сегментите препращат към множество процеси.
  • Това не причинява вътрешна фрагментация.
  • Сегментните таблици използват по-малко памет от пейджинга.

Недостатъци на сегментирането

Ето недостатъците и недостатъците на сегментирането:

  • При метода на сегментиране, процесите се зареждат и премахват от основната памет. Следователно, свободното пространство в паметта се разделя на малки части, което може да създаде проблем с външна фрагментация.
  • Това е скъп алгоритъм за управление на паметта.

Въпроси и Отговори

Грешка на страницата възниква, когато процес поиска страница, която в момента не е в основната памет. Операционната система спира процеса на пауза, извлича страницата от вторичното хранилище в свободен кадър и след това възобновява изпълнението.

Таблицата на страниците е структура от данни, която операционната система поддържа за всеки процес. Тя съпоставя всеки логически номер на страница с физическия кадър, който съдържа тази страница, което позволява правилно преобразуване на адреси по време на изпълнение.

TLB е малък, бърз кеш, който съхранява скорошна карта от страница до кадърpingс. Ускорява преобразуването на адреси, като избягва пълно търсене в таблицата със страници в паметта за често достъпвани страници.

Страницата е блок с фиксиран размер на процес в логическата памет, докато кадърът е блок със същия размер от физическата памет. Пейджингът зарежда всяка страница в точно един свободен кадър.

Пейджингът по заявка зарежда страница в паметта само когато процесът действително я препраща, вместо да зарежда целия процес предварително. Това спестява памет и ускорява стартирането на процеса.

Вътрешната фрагментация губи място вътре в разпределения кадър, когато дадена страница не го запълни напълно. Външната фрагментация оставя разпръснати свободни празнини между разпределенията. Пейджингът премахва външната фрагментация, но все пак може да причини вътрешна фрагментация.

Моделите за машинно обучение предвиждат бъдещи препратки към страници, за да насочват решенията за подмяна на страници и предварително извличане. Тези техники с изкуствен интелект целят да намалят процента на грешки при прескачане на страници и да подобрят използването на паметта в центрове за данни и облачни системи.

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

Обобщете тази публикация с: