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

## Огляд
Сучасні MMU зазвичай ділять віртуальний адресний простір (діапазон адрес, використовуваних процесором) на сторінки, розмір кожної з яких є степенем 2, зазвичай кілька кілобайтів, але вони можуть бути значно більшими. Нижні біти адреси (зміщення всередині сторінки) залишаються незміненими. Верхні біти адреси є номерами віртуальних сторінок.

### Записи таблиці сторінок
Більшість МКП використовують таблиці елементів у пам'яті, звані «таблицями сторінок», що містить один «запис таблиці сторінок» (ЗТС) на сторінку, для відображення віртуальних номерів сторінок у фізичні в основній пам'яті. Асоціативний кеш ЗТС називається буфером асоціативної трансляції (БАТ) та використовується для уникнення необхідності доступу до основної пам'яті при кожному відображенні віртуальної адреси. Інші МКП можуть мати приватний масив пам'яті чи регістри, що містять набір записів таблиці сторінок. Фізичні номери сторінок об'єднуються зі зміщеннями сторінок і дають повну фізичну адресу.
ЗТС також може включати інформацію про те, чи була сторінка записана («біт забрудненості»), коли її було востаннє використано («біт доступу», для за найменш нещодавно використаними (LRU) задачі заміщення сторінок), який вид процесів (користувацького чи режиму супервізора) можуть читати та писати її, і чи повинна вона кешуватися.
Іноді ЗТС забороняє доступ до віртуальної сторінки, можливо, через відсутність фізичної пам'яті з довільним доступом, виділеної цій сторінці. У цьому випадку МКП сигналізує ЦП про відмову сторінки. Потім операційна система (ОС) обробляє ситуацію, можливо, намаганням знайти вільну сторінку RAM і встановити новий ЗТС для відображення цієї сторінки на запитувану віртуальну адресу. За відсутності вільної RAM може бути необхідним обрати деяку сторінку (відому як «жертва») з використанням деякого алгоритму заміни та зберегти її на диск (цей процес називається «підкачуванням»). З деякими МКП також можлива нестача ЗТС, у цьому випадку ОС матиме звільнити його для нового відображення.
МКП також можуть генерувати стани помилки незаконного доступу чи відмови недійсної сторінки за незаконного доступу чи доступу до неіснуючої пам'яті відповідно, що призводить до помилки сегментації чи помилки шини під час обробки операційною системою.

### Переваги
У деяких випадках відмова сторінки може позначати баг, якому можна запобігти шляхом використання захисту пам'яті як однієї з ключових переваг МКП: операційна система може його використати для захисту від помилкових програм шляхом заборони доступу до пам'яті, до якої конкретна програма не повинна мати доступ. Зазвичай операційна система призначає кожній програмі власний віртуальний адресний простір.
МКП також пом'якшує проблему фрагментації пам'яті. Після виділення та звільнення блоків пам'яті вільна пам'ять може стати фрагментованою (розривною) так, що найбільший послідовний блок вільної пам'яті може бути набагато меншим за загальний обсяг. Із віртуальною пам'яттю сусідній діапазон віртуальних адрес може відображатися на декілька непослідовних блоків фізичної пам'яті; це непослідовне виділення є однією з переваг підкачки.
У деяких ранніх конструкціях мікропроцесорів керування пам'яттю здійснювалося окремою мікросхемою, як-от схеми надвеликого рівня інтеґрації VI475 (1986), Motorola 68851 (1984, для використання разом з процесором Motorola 68020), або Z8015 (1985), що використовується в родині процесорів Zilog Z8000. Пізніші мікропроцесори (як-от Motorola 68030, Zilog Z280 і Intel 80386) розміщували MMU на одному кристалі з процесором.
Тоді як дана стаття зосереджується на сучасних МКП, зазвичай на основі сторінок, ранні системи використовували аналогічну концепцію для адресації з базовою межею, що в подальшому було розвинуто до сегментації. Вони іноді також присутні в сучасних архітектурах. Архітектура x86 забезпечує сегментацію, але не підкачку, в 80286, і забезпечує підкачку та сегментацію в 80386 і пізніших процесорах (хоча використання сегментації недоступне в 64-бітних операціях).

## Приклади
Більшість сучасних систем ділять пам'ять на сторінки розміром 4-64 кБ, часто зі здатністю використовувати величезні сторінки розміром від 2 МБ до 1 ГБ. Трансляції сторінок кешуються у буфері асоціативної трансляції (БАТ). Деякі системи, переважно старіших RISC конструкцій, викликають спеціальне переривання у ОС, якщо трансляцію сторінки не знайдено в БАТ. Більшість систем використовують апаратний обхідник дерев. Більшість систем дозволяють МКП вимикатися, але деякі вимикають МКП, потрапляючи до коду ОС.

### VAX
VAX сторінки сягають 512 байтів, що дуже мало. ОС може розглядати їх так, якби вони були єдиною більшою сторінкою. Наприклад, Linux на VAX групує разом вісім сторінок. Таким чином, система розглядається такою, що має 4 кБ сторінки. VAX ділить пам'ять на чотири ділянки з фіксованим призначенням розміром 1 ГБ кожна. Це:
Простір P0
Використовується для пам'яті загального призначення для кожного процесу, як-от купи.
Простір P1
(контрольний простір) також для кожного процесу та зазвичай використовується для супервізора, виконавчих, ядра та користувацьких стеків, а також інших контрольних структур для кожного процесу, керованих операційною системою.
Простір S0
(системний простір) глобальний для всіх процесів і зберігає код і дані операційної системи, підкачені чи ні, включно з таблицями сторінок.
Простір S1
Не використовується та «зарезервований для Digital».
Таблиці сторінок є великими лінійними масивами. Як правило, це дуже марнотратно, коли адреси використовуються на обох кінцях можливого діапазону, але сама таблиця сторінок для застосунків зберігається в підкаченій пам'яті ядра. Таким чином, ефективне дворівневе дерево дозволяє застосункам мати запасний розподіл пам'яті, не витрачаючи багато місця на невикористані записи таблиць сторінок. МКП VAX відрізняються відсутністю біту «доступний». Для ефективної роботи ОС, які реалізують підкачування сторінок, повинні знайти деякий спосіб емуляції такого біту. Зазвичай ОС періодично скасовує відображення сторінок так, що відмови неіснуючої сторінки можуть використовуватися, аби дати ОС встановити доступний біт.

### ARM
Прикладні процесори на основі архітектури ARM реалізують МКП, визначені системною архітектурою віртуальної пам'яті ARM. Поточна архітектура визначає ЗТС для опису 4 кБ і 64 кБ сторінок, 1 МБ розділів і 16 МБ надрозділів; успадковані версії також визначають 1 кБ крихітні сторінки. ARM використовує дворівневу таблицю сторінок при використанні 4 кБ і 64 кБ сторінок, або просто однорівневими таблицями сторінок для 1 МБ розділів і 16 МБ розділів.
Оновлення БАТ виконуються автоматично апаратним забезпеченням обходу таблиці сторінок. ЗТС включають дозвіл доступу на читання та запис на основі привілеїв, кешування інформації, NX bitу та незахищеного біту.

### IBM System/360 Model 67, IBM System/370 і наступники
Мейнфрейм IBM System/360 Model 67, представлений серпні 1965 року, мав окрему схему керування сторніками пам'яті, що називалася англ. DAT box (Dynamic Address Translation). DAT box мав досить незвичайну можливість зберігання бітів сторінки «було звернення» (англ. accessed) та «брудна» (англ. dirty) поза таблицею сторінок. Вони[хто?] посилаються на фізичну пам'ять, а не на віртуальну, і доступ до них надається інструкціями спеціального призначення. Це зменшує накладні витрати для ОС, яка інакше мала б поширювати біти accessed і dirty з таблиць сторінок до більш фізично-орієнтованої структури даних. Це спрощує віртуалізацію на рівні ОС[прояснити].
Починаючи з серпня 1972 року IBM System/370 має схожий МКП, хоча він спочатку підтримував лише 24-бітний віртуальний адресний простір, а не 32-бітний із System/360 Model 67. Він також зберігав біти «було звернення» та «брудна» поза таблицею сторінок. На початку 1983 року архітектура System/370-XA розширила віртуальний адресний простір до 31 біту, а 2000 року було представлено 64-бітну z/Architecture з розширеним адресним простором до 64 бітів; вона продовжила зберігати біти статусу сторінки (accessed і dirty) поза таблицею сторінок.

### DEC Alpha
Процесор DEC Alpha ділить пам'ять на 8 кБ сторінки. Після промаху БАТ низькорівневий вбудований машинний код (тут названий PALcode) обходить трирівневу деревоподібну таблицю сторінок. Адресація розбита наступним чином: 21 біт не використовується, по 10 бітів індексують кореневий, середній і рівень листя дерева, а 13 бітів проходять до фізичної адреси без модифікацій. Підтримуються повні біти дозволу на читання, запис і виконання.

### MIPS
Архітектура MIPS підтримує до 64 записів у БАТ. Кількість записів БАТ налаштовується у конфігурації ЦП до синтезу. Записи БАТ подвійні. Кожен запис БАТ відображає номер віртуальної сторінки (НВС2) на один із двох номерів кадру сторінок (НКС0 чи НКС1) залежно від останнього значущого біту віртуальної адреси, що не є частиною маски сторінки. Цей біт і біти маски сторінки не зберігаються у НВС2. кожен запис БАТ має власний розмір сторінки, який може бути будь-яким значенням від 1 кБ до 256 МБ, кратним чотирьом. Кожен НКС у записі БАТ має атрибут кешування, брудний і дійсний біт стану. НВС2 має глобальний біт стану й ID, який призначається ОС і бере участь у зіставленні запису БАТ віртуальних адрес, якщо глобальний біт стану встановлений у нуль. НКС зберігає фізичну адресу без бітів маски сторінки.
Виняток перенаповнення БАТ генерується, коли жоден запис у БАТ не збігається з відображеною віртуальною адресою. Виняток недійсного БАТ генерується, коли є збіг, але запис позначено недійсним. Виняток модифікованого БАТ генерується, коли є збіг, але брудний стан не встановлено. Якщо виняток БАТ стається під час обробки винятку БАТ, тобто виняток подвійної помилки БАТ відправляється до власного обробника винятків.
MIPS32 і MIPS32r2 підтримують 32 біти віртуального та до 36 бітів фізичного адресного простору. MIPS64 підтримує до 64 бітів віртуального та до 59 бітів фізичного адресного простору.

### Sun 1
Оригінальний Sun 1, представлений 1982 року, є одноплатним комп'ютером, побудованим навколо мікропроцесора Motorola 68000. Він містить оригінальний модуль керування пам'яттю Sun-1, що забезпечує трансляцію адрес, захист, спільне використання та виділення пам'яті для багатьох процесів, які працюють у ЦП. Весь доступ ЦП до приватної вбудованої RAM, зовнішньої пам'яті Multibus, вбудованого та Multibus введення-виведення відбувається через МКП, де він транслюється та захищається єдиним способом. МКП реалізовано в апаратному забезпеченні на платі ЦП.
МКП складається з контекстного регістра та карт сегментів і сторінок. Віртуальні адреси з ЦП транслюються у проміжні картою сегментів, які, у свою чергу, транслюються у фізичні адреси картою сторінок. Розмір сторінки дорівнює 2 кБ, а сегменту — 32 кБ, що дає 16 сторінок у сегменті. До 16 контекстів можуть відображатися одночасно. Максимум простору логічних адрес для контексту дорівнює 1024 сторінкам або 2 МБ. Максимум фізичних адрес, які можуть одночасно відображатися, також дорівнює 2 МБ.
Контекстний регістр важливий у багатозадачній операційній системі, оскільки він дозволяє ЦП перемикатися між процесами без перезавантаження всієї інформації про стан трансляції. 4-бітний контекстний регістр може перемикатися між 16 розділами карти сегментів під керуванням супервізора, який дозволяє 16 контекстам одночасно відображатися. Кожен контекст має власний віртуальний адресний простір. Спільне використання віртуального адресного простору та міжконтекстне спілкування може забезпечуватися записом однакових значень у карти сегментів або сторінок різних контекстів. Додаткові контексти можуть оброблятися, розглядаючи карту сегментів як контекстний кеш і замінюючи застарілі контексти на основі найменш нещодавнього використання.
Контекстний регістр не розрізняє стани користувача та супервізора. Переривання та пастки не перемикають контексти, що вимагає завжди відображати всі дійсні вектори переривання у сторінку 0 контексту, як і валідний стек супервізора.

### PowerPC
У PowerPC G1, G2, G3 і G4 сторінки зазвичай 4 кБ. Після промаху БАТ стандартний МКП PowerPC починає два одночасні пошуки. Один пошук намагається зіставити адресу з одним із чотирьох чи восьми регістрів трансляції адрес блоків даних (ТАБД) або інструкцій (ТАБІ) за необхідності. Регістри ТБА можуть відображати лінійні шматки пам'яті завбільшки 256 МБ, і зазвичай використовуються ОС для відображення великих порцій адресного простору для власного використання ядром ОС. У разі успішного пошуку ТБА інший пошук зупиняється й ігнорується.
Інший пошук, непрямо підтримуваний всіма процесорами цієї родини, здійснюється через так звану «інвертовану таблицю сторінок», яка діє як хешоване розширення БАТ поза чипом. Спочатку верхні чотири біти адреси використовуються для вибору одного з 16 сегментних регістрів. Потім 24 біти з сегментного регістра замінюють ті чотири біти, виробляючи 52-бітну адресу. Використання сегментних регістрів дозволяє багатьом процесам спільно використовувати ту саму геш-таблицю.
52-бітна адреса хешується, а потім використовується як індекс таблиці поза чипом. Там група восьмисторінкових табличних записів сканується на один зі збігів. За відсутності збігу через надмірні колізії гешу процесор повторює спробу з дещо іншою хеш-функцією. Якщо це також не вдається, то ЦП потрапляє до пастки в ОС (з вимкненим МКП) так, що проблему може бути вирішено. ОС має відкинути запис із геш-таблиці для звільнення простору для нового запису. ОС може генерувати новий запис із нормальнішої деревоподібної таблиці сторінок або зі структур даних на відображення, які, ймовірно, будуть повільнішими й ефективнішими за простором. Підтримка невиконуваного керування наявна в сегментних регістрах, що призводить до зернистості 256 МБ.
Основною проблемою цієї конструкції є погане місцерозташування кешу, спричинене хеш-функцією. Деревоподібні конструкції уникають цього, розміщуючи записи таблиці сторінок для суміжних сторінок у суміжних місцях. Операційна система, що працює на PowerPC, може мінімізувати розмір хеш-таблиці для зменшення цієї проблеми.
Також дещо повільне вилучення записів таблиць сторінок процесу. ОС може уникнути повторного використання сегментних значень, аби затримати появу цього, чи вона може пожертвувати пам'яттю, асоційованою з хеш-таблицями на процес. Чипи G1 не шукають записи таблиці сторінок, але можуть генерувати хеш із очікуванням того, що ОС програмно шукатиме стандартну хеш-таблицю. ОС може писати до БАТ. Чипи G2, G3 і ранні G4 апаратно шукають хеш-таблицю. Останні чипи дозволяють ОС будь-який метод. На чипах, які роблять його необов'язковим або не підтримують узагалі, ОС може ексклюзивно вибрати використання деревоподібної таблиці сторінок.

### IA-32 / x86
Архітектура x86 розвивалася протягом дуже довгого часу, підтримуючи повну програмну сумісність, навіть для коду ОС. Таким чином, МКП надзвичайно складні, з багатьма різними можливими операційними режимами. Тут описані нормальні операції традиційного ЦП 80386 та його наступників (IA-32).
ЦП насамперед ділить пам'ять на 4 кБ сторінки. Сегментні регістри, фундаментальні для старіших конструкцій МКП 8088 і 80286, не використовуються в сучасних ОС за одним основним винятком: доступу до даних конкретного потоку для застосунків або даних конкретного ЦП для ядер ОС, які виконуються з явним використанням сегментних регістрів FS і GS. Увесь доступ до пам'яті залучає сегментний регістр, вибраний відповідно до виконуваного коду. Сегментний регістр діє як індекс у таблиці, що надає зміщення для додавання до віртуальної адреси. За винятком використання FS або GS, ОС забезпечує, що зміщення дорівнюватиме нулю.
Після додавання зміщення адреса маскується, аби не перевищувати 32 біти. Результат можна подивитися через деревоподібну таблицю сторінок, де біти адреси будуть розділені наступним чином: по 10 бітів для гілки дерева та листя гілки, а 12 найнижчих бітів прямо скопійовані до результату. Деякі операційні системи, як-от OpenBSD зі своєю особливістю W^X і Linux із виправленнями Exec Shield або PaX, також можуть обмежувати довжину сегменту коду, як зазначено в регістрі CS, для заборони виконання коду у змінних ділянках адресного простору.
Незначні зміни МКП, введені з Pentium, дозволили дуже великі 4 МБ сторінки пропуском нижнього рівня дерева (це залишає 10 бітів для індексування першого рівня ієрархії сторінок, а решта 10+12 бітів прямо копіюється до результату). Незначні зміни МКП, введені з Pentium Pro, ввели можливість розширення фізичних адрес (РФА), дозволяючи 36-бітним фізичним адресам із 2+9+9 бітами для трирівневих таблиць сторінок і 12 найнижчими бітами, що прямо копіюються до результату. Великі сторінки (2 МБ) також доступні пропуском нижнього рівня дерева (маючи наслідком 2+9 бітів для дворівневої ієрархії таблиць і решту 9+12 найнижчих бітів, що копіюються прямо). На додачу, таблиця атрибутів сторінок дозволила специфікацію кешування шляхом пошуку кількох вищих бітів у малій таблиці всередині ЦП.
Підтримка невиконання спочатку забезпечувалася лише на сегментній основі, чим було дуже незручно користуватися. Пізніші чипи x86 забезпечили сторінкові біти невиконання в режимі РФА. Вищеописані механізми W^X, Exec Shield і PaX емулюють сторінкову підтримку невиконання на машинах із процесорами x86 без біту NX встановленням довжини сегменту коду зі втратами продуктивності та зменшенні доступного адресного простору.

### x86-64
x86-64 — 64-бітне розширення x86, що майже цілком вилучає сегментацію на користь пласкої моделі пам'яті, що використовується майже всіма операційними системами для 386 чи новіших процесорів. У довгому режимі всі сегментні зміщення ігноруються, за винятком сегментів FS і GS. При використанні зі сторінками 4 кБ дерево таблиці сторінок має чотири рівні замість трьох.
Віртуальні адреси діляться наступним чином: 16 бітів не використовуються, по дев'ять бітів для чотирьох рівнів дерева (загалом 36 бітів), а 12 найнижчих бітів прямо копіюються до результату. З 2 МБ сторінками наявні лише три рівні таблиці сторінок, де загалом 27 бітів використовуються у підкачці та 21 біт у зміщенні. Деякі новіші ЦП також підтримують 1 ГБ сторінку з двома рівнями підкачки та 30 bits зміщення.
CPUID може використовуватися для визначення підтримки 1 ГБ сторінок. В усіх трьох випадках вимагається рівність 16 highest бітів 48-му біту, чи, іншими словами, нижчі 48 бітів є знаковим розширенням вищих бітів. Це робиться, аби дозволити майбутнє розширення адресного діапазону без загрози зворотній сумісності. В усіх рівнях таблиці сторінок її записи включають біт невиконання.

### Unisys MCP Systems (Burroughs B5000)
Burroughs B5000 1961 року є першою комерційною системою з підтримкою віртуальної пам'яті (після Atlas), навіть хоча вона не має МКП. Вона забезпечує дві функції МКП — адресування віртуальної пам'яті та захист пам'яті — з різними архітектурними підходами.
Перший, у відображенні віртуальних адрес пам'яті, замість потреби у МКП системи MCP засновані на дескрипторах. Кожен виділений блок пам'яті отримує головний дескриптор зі властивостями блоку (тобто розмір, адреса та наявність у пам'яті). При отриманні запиту до блоку на читання чи запис апаратне забезпечення перевіряє його наявність через біт наявності (нбіт) в дескрипторі.
Значення 1 нбіту позначає наявність блоку. У цьому випадку до блоку можна отримати доступ через фізичну адресу в дескрипторі. Якщо нбіт дорівнює нулю, генерується переривання для MCP (операційної системи), аби зробити блок наявним. Якщо адресне поле дорівнює нулю, то це перший доступ до блоку й він виділяється (початковий нбіт). Якщо ж адресне поле ненульове, то це дискова адреса блоку, який раніше було викинуто, тому блок завантажується з диску, нбіт встановлюється в одиницю, а фізична адреса пам'яті оновлюється для вказування на блок у пам'яті (інший нбіт). Це робить дескриптори еквівалентами записам таблиці сторінок у системі МКП. Продуктивність системи можна контролювати через кількість нбітів. Початкові нбіти позначають початкові нбіти, але вищий рівень інших нбітів позначають, що система може побитися.
Тому всі виділення пам'яті повністю автоматичні (одна з особливостей сучасних систем) і немає способу виділити блоки інакше, ніж цим механізмом. Немає таких викликів, як malloc або dealloc, оскільки блоки пам'яті також автоматично відкидаються. Схема також ледача, оскільки блок не виділятиметься, доки на нього дійсно не буде посилання. Коли пам'ять майже повна, MCP обстежує робочий набір, намагаючись ущільнити (оскільки система сегментована, а не сторінкована), звільняючи сегменти лише для читання (як-от сегменти коду, які можуть відновлюватися з їх оригінальної копії) та, як останній засіб, скидаючи брудні сегменти даних на диск.
Інший спосіб, яким B5000 забезпечує функцію МКП, полягає в захисті. Оскільки весь доступ здійснюється через дескриптор, апаратне забезпечення може перевірити, що всі доступи в допустимих межах і, в разі запису, що процес має дозвіл на запис. Система MCP по суті безпечна, а тому не вимагає МКП для забезпечення цього рівня захисту пам'яті. Дескриптори є лише для читання для користувацьких процесів і можуть оновлюватися лише системою (апаратним забезпеченням або MCP) (слова, тег яких є непарним числом, є тільки для читання; дескриптори мають тег 5, а слова коду — 3).
Блоки можуть спільно використовуватися процесами через копіювання дескрипторів у стек процесу. Таким чином, деякі процеси можуть мати дозвіл на запис, тоді як інші — ні. Сегмент коду є тільки для читання, а тому відновлюється та спільно використовується процесами. Копії дескрипторів містять 20-бітне адресне поле, що дає індекс головного дескриптора в їх масиві. Це також реалізує дуже ефективний і безпечний механізм IPC. Блоки легко можуть перерозподілятися, оскільки лише головний дескриптор потребує оновлення при зміні стану блоку.
Єдиним іншим аспектом є продуктивність: чи забезпечують системи на основі чи не на основі МКП кращу продуктивність? Системи MCP можуть реалізовуватися нагорі стандартного апаратного забезпечення, що має МКП (наприклад, стандартний ПК). Навіть, якщо реалізація системи так чи інакше використовує МКП, це не буде видимим узагалі на рівні MCP.

title: Модуль керування пам'яттю

wikitext:
{{Експерт}}
{{Без виносок|дата=16 грудня 2018}}
[[Файл:MC68451 p1160081.jpg|міні|330пкс|Мікросхема зовнішнього MMU {{нп|Motorola 68451}}, що може використовуватися з мікропроцесором {{нп|Motorola 68010}}]]
'''Модуль керування пам'яттю''' ('''МКП'''), іноді званий '''модулем керування сторінковою пам'яттю''' ('''МКСП'''), — [[Апаратне забезпечення|комп'ютерний апаратний]] модуль, що має всі посилання на [[Комп'ютерна пам'ять|пам'ять]], які проходять через нього, насамперед транслюючи {{нп|Віртуальний адресний простір|віртуальні адреси пам'яті|en|Virtual address space}} у [[Фізична адреса|фізичні]]. Він зазвичай реалізований як частина [[Центральний процесор|центрального процесора]] (ЦП), але також може бути у вигляді окремої [[Мікросхема|мікросхеми]].

МКП ефективно виконує керування [[Віртуальна пам'ять|віртуальною пам'яттю]], одночасно оброблюючи [[захист пам'яті]], контроль [[Кеш процесора|кешу]], {{нп|Арбітр (електроніка)|арбітраж|en|Arbiter (electronics)}} [[Комп'ютерна шина|шин]]  і, у простіших комп'ютерних архітектурах (особливо [[8-бітна архітектура|8-бітних]] системах), [[перемикання банків]].

== Огляд ==
[[Файл:MMU_principle_updated.png|міні|325x325пкс|Схема роботи МКП<ref name="TanenMOS">{{Cite book|назва=Modern operating systems|прізвище=Tanenbaum|ім'я=Andrew S.|автор-посилання=Ендрю Таненбаум|рік=2009|видавець=Prentice-Hall|місце=Upper Saddle River (Нью-Джерсі)|isbn=0-13-600663-9}}</ref>{{Rp|186 ff.}}]]
Сучасні MMU зазвичай ділять віртуальний [[адресний простір]] (діапазон адрес, використовуваних процесором) на [[Сторінкова пам'ять|сторінки]], розмір кожної з яких є [[Степені 2|степенем 2]], зазвичай кілька [[кілобайт]]ів, але вони можуть бути значно більшими. Нижні біти адреси (зміщення всередині сторінки) залишаються незміненими. Верхні біти адреси є номерами віртуальних сторінок<ref name="ucsd-lecture">{{Cite web|url=http://cseweb.ucsd.edu/classes/su09/cse120/lectures/Lecture7.pdf|ім'я=Frank|прізвище=Uyeda|назва=Lecture 7: Memory Management|рік=2009|видавець=UC San Diego|формат=[[PDF]]|вебсайт=CSE 120: Principles of Operating Systems|дата-доступу=4 грудня 2013|archive-date=17 травня 2017|archive-url=https://web.archive.org/web/20170517131303/http://cseweb.ucsd.edu/classes/su09/cse120/lectures/Lecture7.pdf}}</ref>.

=== Записи таблиці сторінок ===
Більшість МКП використовують таблиці елементів у пам'яті, звані «[[Таблиця сторінок|таблицями сторінок]]», що містить один «запис таблиці сторінок» (ЗТС) на сторінку, для відображення віртуальних номерів сторінок у фізичні в основній пам'яті. Асоціативний кеш ЗТС називається [[Буфер асоціативної трансляції|буфером асоціативної трансляції]] (БАТ) та використовується для уникнення необхідності доступу до основної пам'яті при кожному відображенні віртуальної адреси. Інші МКП можуть мати приватний масив пам'яті<ref>{{Cite book|url=http://bitsavers.trailing-edge.com/pdf/rca/spectra70/model46/70-46-601_70-46_RefMan_Mar68.pdf|назва=Spectra 70 70-46 Processor Manual|місяць=березень|рік=1968|видавець=[[RCA]]|сторінка=4|дата-доступу=15 серпня 2013|archive-date=1 жовтня 2013|archive-url=https://web.archive.org/web/20131001155943/http://bitsavers.trailing-edge.com/pdf/rca/spectra70/model46/70-46-601_70-46_RefMan_Mar68.pdf}}</ref> чи регістри, що містять набір записів таблиці сторінок. Фізичні номери сторінок об'єднуються зі зміщеннями сторінок і дають повну фізичну адресу.

ЗТС також може включати інформацію про те, чи була сторінка записана («{{нп|біт забрудненості|||Dirty bit}}»), коли її було востаннє використано («біт доступу», для за {{нп|Політики заміни кешу|найменш нещодавно використаними|en|Cache replacement policies}} (LRU) [[Задача заміщення сторінок|задачі заміщення сторінок]]), який вид процесів ({{нп|Користувацький простір|користувацького|en|User space}} чи [[Кільця захисту|режиму супервізора]]) можуть читати та писати її, і чи повинна вона [[кеш]]уватися.

Іноді ЗТС забороняє доступ до віртуальної сторінки, можливо, через відсутність фізичної [[Пам'ять з довільним доступом|пам'яті з довільним доступом]], виділеної цій сторінці. У цьому випадку МКП сигналізує ЦП про {{нп|Відмова сторінки|відмову сторінки|en|Page fault}}. Потім [[операційна система]] (ОС) обробляє ситуацію, можливо, намаганням знайти вільну сторінку [[Пам'ять з довільним доступом|RAM]] і встановити новий ЗТС для відображення цієї сторінки на запитувану віртуальну адресу. За відсутності вільної RAM може бути необхідним обрати деяку сторінку (відому як «жертва») з використанням деякого [[алгоритм]]у заміни та зберегти її на диск (цей процес називається «[[Підкачування сторінок|підкачуванням]]»). З деякими МКП також можлива нестача ЗТС, у цьому випадку ОС матиме звільнити його для нового відображення.

МКП також можуть генерувати стани помилки незаконного доступу чи {{нп|Відмова сторінки|відмови недійсної сторінки|en|Page fault}} за незаконного доступу чи доступу до неіснуючої пам'яті відповідно, що призводить до [[Помилка сегментації|помилки сегментації]] чи {{нп|Помилка шини|помилки шини|en|Bus error}} під час обробки операційною системою.

=== Переваги ===
[[Файл:VLSI VI475 HMMU chip from an Apple Macintosh II - front.jpg|міні|VLSI VI475 МКП «Apple HMMU» з {{нп|Macintosh II}} використовується з {{нп|Motorola 68020}}]]
У деяких випадках відмова сторінки може позначати [[баг]], якому можна запобігти шляхом використання [[Захист пам'яті|захисту пам'яті]] як однієї з ключових переваг МКП: операційна система може його використати для захисту від помилкових програм шляхом заборони доступу до пам'яті, до якої конкретна програма не повинна мати доступ. Зазвичай операційна система призначає кожній програмі власний віртуальний адресний простір.

МКП також пом'якшує проблему {{нп|Фрагментація (інформатика)|фрагментації|en|Fragmentation (computer)}} пам'яті. Після виділення та звільнення блоків пам'яті вільна пам'ять може стати фрагментованою (розривною) так, що найбільший послідовний блок вільної пам'яті може бути набагато меншим за загальний обсяг. Із віртуальною пам'яттю сусідній діапазон віртуальних адрес може відображатися на декілька непослідовних блоків фізичної пам'яті; це непослідовне виділення є однією з переваг [[Підкачка сторінок|підкачки]].

У деяких ранніх конструкціях [[мікропроцесор]]ів керування пам'яттю здійснювалося окремою [[Мікросхема|мікросхемою]], як-от [[схеми надвеликого рівня інтеґрації]] VI475 (1986), {{нп|Motorola 68851}} (1984, для використання разом з процесором {{нп|Motorola 68020}}), або Z8015 (1985)<ref>{{Cite web|url=http://www.ic-on-line.cn/download.php?id=1636768&pdfid=8CDCD77507C0152F6FE7146D00161DE3&file=0319\z8015-cs_1637095.pdf|назва=Electronic Datasheet Search And Download Site|вебсайт=Ic-on-line.cn|формат=[[PDF]]|дата-доступу=3 травня 2017|archive-date=28 червня 2020|archive-url=https://web.archive.org/web/20200628160424/http://www.ic-on-line.cn/}}</ref>, що використовується в родині процесорів [[Zilog Z8000]]. Пізніші мікропроцесори (як-от {{нп|Motorola 68030}}, {{нп|Zilog Z280}} і [[Intel 80386]]) розміщували MMU на одному кристалі з процесором.

Тоді як дана стаття зосереджується на сучасних МКП, зазвичай на основі сторінок, ранні системи використовували аналогічну концепцію для адресації з базовою межею, що в подальшому було розвинуто до [[Сегментація пам'яті|сегментації]]. Вони іноді також присутні в сучасних архітектурах. [[X86|Архітектура x86]] забезпечує сегментацію, але не підкачку, в [[Intel 80286|80286]], і забезпечує підкачку та сегментацію в [[Intel 80386|80386]] і пізніших процесорах (хоча використання сегментації недоступне в 64-бітних операціях).

== Приклади ==
Більшість сучасних систем ділять пам'ять на сторінки розміром 4-64 [[Кілобайт|кБ]], часто зі здатністю використовувати величезні сторінки розміром від 2 [[МБ]] до 1 ГБ. Трансляції сторінок кешуються у [[Буфер асоціативної трансляції|буфері асоціативної трансляції]] (БАТ). Деякі системи, переважно старіших [[RISC]] конструкцій, викликають спеціальне [[переривання]] у ОС, якщо трансляцію сторінки не знайдено в БАТ. Більшість систем використовують апаратний обхідник дерев. Більшість систем дозволяють МКП вимикатися, але деякі вимикають МКП, потрапляючи до коду ОС.

=== VAX ===
[[VAX]] сторінки сягають 512 байтів, що дуже мало. ОС може розглядати їх так, якби вони були єдиною більшою сторінкою. Наприклад, [[Linux]] на VAX групує разом вісім сторінок. Таким чином, система розглядається такою, що має 4 кБ сторінки. VAX ділить пам'ять на чотири ділянки з фіксованим призначенням розміром 1 [[ГБ]] кожна. Це:
; Простір P0
: Використовується для пам'яті загального призначення для кожного процесу, як-от [[Купа (пам'ять)|купи]].
; Простір P1
: (контрольний простір) також для кожного процесу та зазвичай використовується для супервізора, виконавчих, [[Ядро операційної системи|ядра]] та користувацьких [[стек]]ів, а також інших контрольних структур для кожного процесу, керованих операційною системою.
; Простір S0
: (системний простір) глобальний для всіх процесів і зберігає код і дані операційної системи, підкачені чи ні, включно з таблицями сторінок.
; Простір S1
: Не використовується та «зарезервований для [[Digital Equipment Corporation|Digital]]».

Таблиці сторінок є великими лінійними масивами. Як правило, це дуже марнотратно, коли адреси використовуються на обох кінцях можливого діапазону, але сама таблиця сторінок для [[Застосунок|застосунків]] зберігається в підкаченій пам'яті ядра. Таким чином, ефективне дворівневе [[Дерево (структура даних)|дерево]] дозволяє застосункам мати запасний розподіл пам'яті, не витрачаючи багато місця на невикористані записи таблиць сторінок. МКП VAX відрізняються відсутністю біту «доступний». Для ефективної роботи ОС, які реалізують підкачування сторінок, повинні знайти деякий спосіб емуляції такого біту. Зазвичай ОС періодично скасовує відображення сторінок так, що відмови неіснуючої сторінки можуть використовуватися, аби дати ОС встановити доступний біт.

=== ARM ===
Прикладні процесори на основі архітектури [[ARM]] реалізують МКП, визначені системною архітектурою віртуальної пам'яті ARM. Поточна архітектура визначає [[Таблиця сторінок|ЗТС]] для опису 4 кБ і 64 кБ сторінок, 1 МБ розділів і 16 МБ надрозділів; успадковані версії також визначають 1 кБ крихітні сторінки. ARM використовує дворівневу таблицю сторінок при використанні 4 кБ і 64 кБ сторінок, або просто однорівневими таблицями сторінок для 1 МБ розділів і 16 МБ розділів.

Оновлення БАТ виконуються автоматично апаратним забезпеченням обходу таблиці сторінок. ЗТС включають дозвіл доступу на читання та запис на основі привілеїв, кешування інформації, [[NX bit]]у та незахищеного біту<ref>{{Cite web|url=http://infocenter.arm.com/help/topic/com.arm.doc.ddi0344i/DDI0344I_cortex_a8_r3p1_trm.pdf|назва=Cortex-A8 Technical Reference Manual|вебсайт=Infoventer.arm.com|формат=[[PDF]]|дата-доступу=3 травня 2017|archive-date=3 березня 2016|archive-url=https://web.archive.org/web/20160303182755/http://infocenter.arm.com/help/topic/com.arm.doc.ddi0344i/DDI0344I_cortex_a8_r3p1_trm.pdf}}</ref>.

=== IBM System/360 Model 67, IBM System/370 і наступники ===
Мейнфрейм [[IBM System/360 Model 67]], представлений серпні 1965 року, мав окрему схему керування сторніками пам'яті, що називалася {{lang-en|DAT box}} (Dynamic Address Translation)<ref>{{cite web
|url=http://www-03.ibm.com/ibm/history/exhibits/mainframe/mainframe_FS360.html
|назва=IBM Archives: System/360 Dates and characteristics
|вебсайт=03.ibm.com
|дата-доступу=3 травня 2017
|archive-date=21 листопада 2017
|archive-url=https://web.archive.org/web/20171121223500/http://www-03.ibm.com/ibm/history/exhibits/mainframe/mainframe_FS360.html
}}</ref><ref name="IBM-S360-67-FuncChar">{{Cite web
|url=http://www.bitsavers.org/pdf/ibm/360/funcChar/GA27-2719-2_360-67_funcChar.pdf
|назва=IBM System/360 Model 67 Functional Characteristics
|видання=3
|місяць=лютий
|рік=1972
|формат=[[PDF]]
|id=GA27-2719-2
|accessdate=16 грудня 2018
|archive-date=14 березня 2012
|archive-url=https://web.archive.org/web/20120314102752/http://www.bitsavers.org/pdf/ibm/360/funcChar/GA27-2719-2_360-67_funcChar.pdf
}}</ref>. DAT box мав досить незвичайну можливість зберігання бітів сторінки «було звернення» ({{lang-en|accessed}}) та «брудна» ({{lang-en|dirty}}) поза таблицею сторінок. Вони{{хто}} посилаються на фізичну пам'ять, а не на віртуальну, і доступ до них надається інструкціями спеціального призначення. Це зменшує накладні витрати для ОС, яка інакше мала б поширювати біти accessed і dirty з таблиць сторінок до більш фізично-орієнтованої [[Структура даних|структури даних]]. Це спрощує [[Віртуалізація на рівні операційної системи|віртуалізацію на рівні ОС]]{{Прояснити|дата=березень 2008}}.

Починаючи з серпня 1972 року [[IBM System/370]] має схожий МКП, хоча він спочатку підтримував лише 24-бітний віртуальний адресний простір, а не 32-бітний із System/360 Model 67. Він також зберігав біти «було звернення» та «брудна» поза таблицею сторінок. На початку 1983 року архітектура System/370-XA розширила віртуальний адресний простір до 31 біту, а 2000 року було представлено [[64 біти|64-бітну]] {{нп|z/Architecture}} з розширеним адресним простором до 64 бітів; вона продовжила зберігати біти статусу сторінки (accessed і dirty) поза таблицею сторінок.

=== DEC Alpha ===
Процесор [[DEC Alpha]] ділить пам'ять на 8 кБ сторінки. Після промаху БАТ низькорівневий [[Вбудована програма|вбудований]] машинний код (тут названий {{нп|PALcode}}) обходить трирівневу деревоподібну таблицю сторінок. Адресація розбита наступним чином: 21 біт не використовується, по 10 бітів індексують кореневий, середній і рівень листя дерева, а 13 бітів проходять до фізичної адреси без модифікацій. Підтримуються повні біти дозволу на читання, запис і виконання.

=== MIPS ===
Архітектура [[MIPS]] підтримує до 64 записів у БАТ. Кількість записів БАТ налаштовується у конфігурації ЦП до синтезу. Записи БАТ подвійні. Кожен запис БАТ відображає номер віртуальної сторінки (НВС2) на один із двох номерів кадру сторінок (НКС0 чи НКС1) залежно від останнього значущого біту віртуальної адреси, що не є частиною [[Маскування (програмування)|маски]] сторінки. Цей біт і біти маски сторінки не зберігаються у НВС2. кожен запис БАТ має власний розмір сторінки, який може бути будь-яким значенням від 1 кБ до 256 МБ, кратним чотирьом. Кожен НКС у записі БАТ має атрибут кешування, брудний і дійсний біт стану. НВС2 має глобальний біт стану й ID, який призначається ОС і бере участь у зіставленні запису БАТ віртуальних адрес, якщо глобальний біт стану встановлений у нуль. НКС зберігає фізичну адресу без бітів маски сторінки.

Виняток перенаповнення БАТ генерується, коли жоден запис у БАТ не збігається з відображеною віртуальною адресою. Виняток недійсного БАТ генерується, коли є збіг, але запис позначено недійсним. Виняток модифікованого БАТ генерується, коли є збіг, але брудний стан не встановлено. Якщо виняток БАТ стається під час обробки винятку БАТ, тобто виняток подвійної помилки БАТ відправляється до власного [[Обробка винятків|обробника винятків]].

MIPS32 і MIPS32r2 підтримують 32 біти віртуального та до 36 бітів фізичного адресного простору. MIPS64 підтримує до 64 бітів віртуального та до 59 бітів фізичного адресного простору.

=== Sun 1 ===
Оригінальний {{нп|Sun 1}}, представлений 1982 року, є [[Одноплатний комп'ютер|одноплатним комп'ютером]], побудованим навколо мікропроцесора [[Motorola 68000]]. Він містить оригінальний модуль керування пам'яттю Sun-1, що забезпечує трансляцію адрес, захист, спільне використання та виділення пам'яті для багатьох процесів, які працюють у ЦП. Весь доступ ЦП до приватної вбудованої RAM, зовнішньої пам'яті [[Multibus]], вбудованого та Multibus [[введення-виведення]] відбувається через МКП, де він транслюється та захищається єдиним способом. МКП реалізовано в апаратному забезпеченні на платі ЦП.

МКП складається з контекстного регістра та карт [[Сегментація пам'яті|сегментів]] і сторінок. Віртуальні адреси з ЦП транслюються у проміжні картою сегментів, які, у свою чергу, транслюються у фізичні адреси картою сторінок. Розмір сторінки дорівнює 2 кБ, а сегменту — 32 кБ, що дає 16 сторінок у сегменті. До 16 контекстів можуть відображатися одночасно. Максимум простору логічних адрес для контексту дорівнює 1024 сторінкам або 2 МБ. Максимум фізичних адрес, які можуть одночасно відображатися, також дорівнює 2 МБ.

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

Контекстний регістр не розрізняє стани користувача та супервізора. Переривання та пастки не перемикають контексти, що вимагає завжди відображати всі дійсні вектори переривання у сторінку 0 контексту, як і валідний стек супервізора<ref>{{Cite book|назва=Sun 68000 Board User's Manual|видавець=[[Sun Microsystems]]|місяць=лютий|рік=1983|видання=Revision B}}</ref>.

=== PowerPC ===
У [[PowerPC]] G1, G2, G3 і G4 сторінки зазвичай 4 кБ. Після промаху БАТ стандартний МКП PowerPC починає два одночасні пошуки. Один пошук намагається зіставити адресу з одним із чотирьох чи восьми регістрів трансляції адрес блоків даних (ТАБД) або інструкцій (ТАБІ) за необхідності. Регістри ТБА можуть відображати лінійні шматки пам'яті завбільшки 256 МБ, і зазвичай використовуються ОС для відображення великих порцій адресного простору для власного використання ядром ОС. У разі успішного пошуку ТБА інший пошук зупиняється й ігнорується.

Інший пошук, непрямо підтримуваний всіма процесорами цієї родини, здійснюється через так звану «[[Таблиця сторінок|інвертовану таблицю сторінок]]», яка діє як хешоване розширення БАТ поза чипом. Спочатку верхні чотири біти адреси використовуються для вибору одного з 16 [[Сегментація пам'яті|сегментних]] регістрів. Потім 24 біти з сегментного регістра замінюють ті чотири біти, виробляючи 52-бітну адресу. Використання сегментних регістрів дозволяє багатьом процесам спільно використовувати ту саму [[Геш-таблиця|геш-таблицю]].

52-бітна адреса хешується, а потім використовується як індекс таблиці поза чипом. Там група восьмисторінкових табличних записів сканується на один зі збігів. За відсутності збігу через надмірні [[Колізія геш-функції|колізії гешу]] процесор повторює спробу з дещо іншою [[Хеш-функція|хеш-функцією]]. Якщо це також не вдається, то ЦП потрапляє до пастки в ОС (з вимкненим МКП) так, що проблему може бути вирішено. ОС має відкинути запис із геш-таблиці для звільнення простору для нового запису. ОС може генерувати новий запис із нормальнішої деревоподібної таблиці сторінок або зі структур даних на відображення, які, ймовірно, будуть повільнішими й ефективнішими за простором. Підтримка [[NX bit|невиконуваного]] керування наявна в сегментних регістрах, що призводить до зернистості 256 МБ.

Основною проблемою цієї конструкції є погане {{нп|Розташування посилання|місцерозташування кешу|en|Locality of reference}}, спричинене хеш-функцією. Деревоподібні конструкції уникають цього, розміщуючи записи таблиці сторінок для суміжних сторінок у суміжних місцях. Операційна система, що працює на PowerPC, може мінімізувати розмір хеш-таблиці для зменшення цієї проблеми.

Також дещо повільне вилучення записів таблиць сторінок процесу. ОС може уникнути повторного використання сегментних значень, аби затримати появу цього, чи вона може пожертвувати пам'яттю, асоційованою з хеш-таблицями на процес. Чипи G1 не шукають записи таблиці сторінок, але можуть генерувати хеш із очікуванням того, що ОС програмно шукатиме стандартну хеш-таблицю. ОС може писати до БАТ. Чипи G2, G3 і ранні G4 апаратно шукають хеш-таблицю. Останні чипи дозволяють ОС будь-який метод. На чипах, які роблять його необов'язковим або не підтримують узагалі, ОС може ексклюзивно вибрати використання деревоподібної таблиці сторінок.

=== IA-32 / x86 ===
Архітектура [[x86]] розвивалася протягом дуже довгого часу, підтримуючи повну програмну сумісність, навіть для коду ОС. Таким чином, МКП надзвичайно складні, з багатьма різними можливими операційними режимами. Тут описані нормальні операції традиційного ЦП [[Intel 80386|80386]] та його наступників ([[IA-32]]).

ЦП насамперед ділить пам'ять на 4 кБ сторінки. Сегментні регістри, фундаментальні для старіших конструкцій МКП [[Intel 8088|8088]] і [[Intel 80286|80286]], не використовуються в сучасних ОС за одним основним винятком: доступу до даних конкретного [[Потік (інформатика)|потоку]] для застосунків або даних конкретного ЦП для ядер ОС, які виконуються з явним використанням сегментних регістрів FS і GS. Увесь доступ до пам'яті залучає сегментний регістр, вибраний відповідно до виконуваного коду. Сегментний регістр діє як індекс у таблиці, що надає зміщення для додавання до віртуальної адреси. За винятком використання FS або GS, ОС забезпечує, що зміщення дорівнюватиме нулю.

Після додавання зміщення адреса маскується, аби не перевищувати 32 біти. Результат можна подивитися через деревоподібну таблицю сторінок, де біти адреси будуть розділені наступним чином: по 10 бітів для гілки дерева та листя гілки, а 12 найнижчих бітів прямо скопійовані до результату. Деякі операційні системи, як-от [[OpenBSD]] зі своєю особливістю {{нп|W^X}} і Linux із виправленнями {{нп|Exec Shield}} або [[PaX]], також можуть обмежувати довжину сегменту коду, як зазначено в регістрі CS, для заборони виконання коду у змінних ділянках адресного простору.

Незначні зміни МКП, введені з {{нп|P5 (мікроархітектура)|Pentium|en|P5 (microarchitecture)}}, дозволили дуже великі 4 МБ сторінки пропуском нижнього рівня дерева (це залишає 10 бітів для індексування першого рівня ієрархії сторінок, а решта 10+12 бітів прямо копіюється до результату). Незначні зміни МКП, введені з [[Pentium Pro]], ввели можливість [[PAE|розширення фізичних адрес]] (РФА), дозволяючи 36-бітним фізичним адресам із 2+9+9 бітами для трирівневих таблиць сторінок і 12 найнижчими бітами, що прямо копіюються до результату. Великі сторінки (2 МБ) також доступні пропуском нижнього рівня дерева (маючи наслідком 2+9 бітів для дворівневої ієрархії таблиць і решту 9+12 найнижчих бітів, що копіюються прямо). На додачу, {{нп|таблиця атрибутів сторінок|||Page attribute table}} дозволила специфікацію кешування шляхом пошуку кількох вищих бітів у малій таблиці всередині ЦП.

Підтримка [[NX bit|невиконання]] спочатку забезпечувалася лише на сегментній основі, чим було дуже незручно користуватися. Пізніші чипи x86 забезпечили сторінкові біти невиконання в режимі РФА. Вищеописані механізми {{нп|W^X}}, {{нп|Exec Shield}} і [[PaX]] емулюють сторінкову підтримку невиконання на машинах із процесорами x86 без біту NX встановленням довжини сегменту коду зі втратами продуктивності та зменшенні доступного адресного простору.

=== x86-64 ===
[[Файл:HSA-enabled virtual memory with distinct graphics card.svg|праворуч|міні|{{нп|Гетерогенна системна архітектура|||Heterogeneous system architecture}} (ГСА) створює уніфікований віртуальний адресний простір для ЦП, ГП і ПЦС, застаріваючи прийоми відображення та копіювання даних.]]
[[x86-64]] — 64-бітне розширення x86, що майже цілком вилучає сегментацію на користь {{нп|Пласка модель пам'яті|пласкої моделі пам'яті|en|Flat memory model}}, що використовується майже всіма операційними системами для 386 чи новіших процесорів. У довгому режимі всі сегментні зміщення ігноруються, за винятком сегментів FS і GS. При використанні зі сторінками 4 кБ дерево таблиці сторінок має чотири рівні замість трьох.

Віртуальні адреси діляться наступним чином: 16 бітів не використовуються, по дев'ять бітів для чотирьох рівнів дерева (загалом 36 бітів), а 12 найнижчих бітів прямо копіюються до результату. З 2 МБ сторінками наявні лише три рівні таблиці сторінок, де загалом 27 бітів використовуються у підкачці та 21 біт у зміщенні. Деякі новіші ЦП також підтримують 1 ГБ сторінку з двома рівнями підкачки та 30 bits зміщення<ref name="amd-volume2">{{Cite web|url=http://support.amd.com/TechDocs/24593.pdf|назва=AMD64 Architecture Programmer's Manual Volume 2: System Programming|вебсайт=support.amd.com|формат=[[PDF]]|місяць=березень|рік=2017|дата-доступу=5 грудня 2017|archive-date=13 липня 2018|archive-url=https://web.archive.org/web/20180713145424/https://support.amd.com/TechDocs/24593.pdf}}</ref>.

[[CPUID]] може використовуватися для визначення підтримки 1 ГБ сторінок. В усіх трьох випадках вимагається рівність 16 highest бітів 48-му біту, чи, іншими словами, нижчі 48 бітів є {{нп|Знакове розширення|знаковим розширенням|en|Sign extension}} вищих бітів. Це робиться, аби дозволити майбутнє розширення адресного діапазону без загрози зворотній сумісності. В усіх рівнях таблиці сторінок її записи включають біт [[NX bit|невиконання]].

=== Unisys MCP Systems (Burroughs B5000) ===
[[Burroughs large systems|Burroughs B5000]] 1961 року є першою комерційною системою з підтримкою віртуальної пам'яті (після {{нп|Atlas (комп'ютер)|Atlas|en|Atlas (computer)}}), навіть хоча вона не має МКП<ref>{{Cite journal|прізвище1=Tanenbaum|ім'я1=Andrew S.|автор-посилання1=Ендрю Таненбаум|прізвище2=Herder|ім'я2=Jorrit N.|прізвище3=Bos|ім'я3=Herbert|місяць=травень|рік=2006|назва=Can We Make Operating Systems Reliable and Secure?|url=https://www.computer.org/csdl/mags/co/2006/05/r5044-abs.html|журнал=Computer|том=39|номер=5|сторінки=44—51|doi=10.1109/MC.2006.156|journal=|accessdate=16 грудня 2018|archive-date=17 грудня 2018|archive-url=https://web.archive.org/web/20181217062644/https://www.computer.org/csdl/mags/co/2006/05/r5044-abs.html}}</ref>. Вона забезпечує дві функції МКП — адресування віртуальної пам'яті та захист пам'яті — з різними архітектурними підходами.

Перший, у відображенні віртуальних адрес пам'яті, замість потреби у МКП системи {{нп|Burroughs MCP|MCP}} засновані на {{нп|Дескриптор даних|дескрипторах|en|Data descriptor}}. Кожен виділений блок пам'яті отримує головний дескриптор зі властивостями блоку (тобто розмір, адреса та наявність у пам'яті). При отриманні запиту до блоку на читання чи запис апаратне забезпечення перевіряє його наявність через біт наявності (нбіт) в дескрипторі.

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

Тому всі виділення пам'яті повністю автоматичні (одна з особливостей сучасних систем<ref>{{Cite magazine|url=http://users.ipa.net/~dwighth/smalltalk/byte_aug81/design_principles_behind_smalltalk.html|назва=Design Principles Behind Smalltalk|ім'я=Daniel H. H.|прізвище=Ingalls|журнал=[[Byte Magazine]]|місяць=серпень|рік=1981|мертвий-url=yes|journal=|title=Архівована копія|accessdate=16 грудня 2018|archiveurl=https://web.archive.org/web/20070927190743/http://users.ipa.net/~dwighth/smalltalk/byte_aug81/design_principles_behind_smalltalk.html|archivedate=27 вересня 2007|deadurl=yes}}</ref>) і немає способу виділити блоки інакше, ніж цим механізмом. Немає таких викликів, як [[Динамічне виділення пам'яті в мові C|malloc]] або dealloc, оскільки блоки пам'яті також автоматично відкидаються. Схема також ледача, оскільки блок не виділятиметься, доки на нього дійсно не буде посилання. Коли пам'ять майже повна, MCP обстежує робочий набір, намагаючись ущільнити (оскільки система сегментована, а не сторінкована), звільняючи сегменти лише для читання (як-от сегменти коду, які можуть відновлюватися з їх оригінальної копії) та, як останній засіб, скидаючи брудні сегменти даних на диск.

Інший спосіб, яким B5000 забезпечує функцію МКП, полягає в захисті. Оскільки весь доступ здійснюється через дескриптор, апаратне забезпечення може перевірити, що всі доступи в допустимих межах і, в разі запису, що процес має дозвіл на запис. Система MCP по суті безпечна, а тому не вимагає МКП для забезпечення цього рівня захисту пам'яті. Дескриптори є лише для читання для користувацьких процесів і можуть оновлюватися лише системою (апаратним забезпеченням або MCP) (слова, тег яких є непарним числом, є тільки для читання; дескриптори мають тег 5, а слова коду — 3).

Блоки можуть спільно використовуватися процесами через копіювання дескрипторів у стек процесу. Таким чином, деякі процеси можуть мати дозвіл на запис, тоді як інші — ні. Сегмент коду є тільки для читання, а тому відновлюється та спільно використовується процесами. Копії дескрипторів містять 20-бітне адресне поле, що дає індекс головного дескриптора в їх масиві. Це також реалізує дуже ефективний і безпечний механізм [[IPC]]. Блоки легко можуть перерозподілятися, оскільки лише головний дескриптор потребує оновлення при зміні стану блоку.

Єдиним іншим аспектом є продуктивність: чи забезпечують системи на основі чи не на основі МКП кращу продуктивність? Системи MCP можуть реалізовуватися нагорі стандартного апаратного забезпечення, що має МКП (наприклад, стандартний ПК). Навіть, якщо реалізація системи так чи інакше використовує МКП, це не буде видимим узагалі на рівні MCP.

== Див. також ==
* [[Керування пам'яттю]]
* [[Контролер пам'яті]]
* [[Сегментація пам'яті]]

== Примітки ==
{{Reflist|2}}

{{small|Дану статтю засновано на матеріалах, узятих із «Free On-line Dictionary of Computing» до 1 листопада 2008 року та «переліцензовано» на умовах [[GNU Free Documentation License|GFDL]] версії 1.3 чи пізнішої.}}

{{Технології CPU}}
{{Операційна система}}
[[Категорія:Технології процесорів]]
[[Категорія:Цифрові мікросхеми]]
[[Категорія:Керування пам'яттю]]
[[Категорія:Віртуальна пам'ять]]


text:
# Білий Бо
Білий Бо (справжнє ім’я Богдан Дмитрович Слодиницький, 03.11.1988) — український музикант, саундпродюсер, репер, співак і автор пісень. Учасник хіп-хоп колективу BOTASHE, заснованого у 2021 році, разом з Тасею та Шершнем і творчого об'єднання «Братське Коло».

## Життєпис
Народився 3 листопада 1988 року у Львові. Навчався в школі № 9 до 3-го класу, потім у школі № 97 з 5 до 9 го класу. В цей час мама віддала хлопця на навчання в музичну школу гри на гітарі. Музика захопила його і весь вільний час маленький музикант присвячував грі на гітарі. В той час брав участь у Західноукраїнському конкурсі гри на класичній гітарі, який відбувався в Ужгороді, там здобув 2-ге місце. Також цікавився вуличними танцями займався брейк-дансом. Після кількох років тренувань танцював на тематичних заходах.
Вже у старших класах ознайомився з першою програмою для написання музики. Спочатку писав клубну музику, потім створював хіп-хоп інструментали для львівських реперів таких як Шершень, Шут, Alco Brothers та інші. Отримав атестат про середню освіту у приватній школі.
Після школи вступив до НУ Львівська політехніка на спеціальність «Комп'ютерні науки та інформаційні технології». За словами музиканта, після випуску диплом жодного разу не знадобився.
У 2009 Богдан пише свою першу пісню з вокалом. В той час відкриває власну студію звукозапису. Це була студія для людей, які не могли дозволити собі дорогий запис, тоді майже вся тусовка львівського репу побувала на Vagon Records. За час існування студії записано понад 150 різних виконавців. Серед них Alco Brothers, Шут, Шершень, Рижуня, Паліндром, Гоня, Kicka, Milan, Братське Коло, Альпачіно, ВсеПро, Тур, LEVYY, Шоль та багато інших.
З 2009 до 2014 музикант творить під псевдонімом Боудя. Випускає більш як 200 композицій. Виступав на великій сцені з відомими на той час реп-виконавцями.
У 2014 році змінює свій псевдонім на Білий Бо і випускає перший сингл «Як дитина».  Продовжує музичну діяльність сольно як саундпродюсер та музикант. У 2021 році, разом із Шершнем і Тасею, створюють гурт BOTASHE. Також є учасником творчого об'єднання «Bratske kolo». У травні 2024 року учасник тріо Botashe Білий Бо презентував дебютний альбом "Баланс Білого", що складається з семи треків. Також цього ж року музикант потішив прихильників треком «Отрута», який відображає внутрішні переживання та пошуки сенсу в сучасному світі та літнім синглом «Немає значення».

## Особисте життя
У 2015 році одружився з Вікторією Слодиницькою.

## Дискографія
Студійні альбоми
- Баланс Білого

Сингли
- Завели (за уч. Шершень ft Рижуня ft Levyy MC)
- Мене це пре (за уч. Шершень)
- Дич (за уч. Шершень ft Рижуня)
- Відійди (за уч. Шершень ft. Levyy MC)
- Вуличками Італії (за уч. Мішаня і Рижуня)
- На плаву (за уч. Шершень)
- Пентіум
- Іноді
- Пазл
- Тряси
- Ти і я (за уч. Шершень, Рижуня і Ждан)
- Там де горизонт (за уч. Тася)
- Наскрізь
- Хмуриться день
- Стержень (за  уч. KALUSH, OTOY, Білий Бо, Шершень, DYKTOR, Дядя Вова)
- До світанку (за уч. ТОФ)
- Ой люлі (за уч. Костя Cartman)
- Танок
- Туман (за уч. Мішані та Рижуні)
- Колискова (за уч. Шершень)
- Бестія
- Як дитина
- Слів немає (за уч. Костя Cartman)
- Багряне
- Лід
- Не питай (за уч. Yaski)
- Касета (за уч. TOF)
- Леді драма (за уч. Рижуня)
- Рандом
- Краще ніж ти (за уч. Santorin)
- До зірок (за уч. PRBLSK)
- Отрута
- Немає значення
- Над океаном
- На
- Опіки
- Зірковий пил
- Білий Бо - Місяць, ром і трохи брехні
- Не той
- Проведи мене додому
- Граю знов

## Відеокліпи
| Рік  | Назва пісні         | Режисер              | Посилання |
| ---- | ------------------- | -------------------- | --------- |
| 2019 | Пентіум             | Віталій Слодиницький | YouTube   |
| 2020 | Іноді               | Віталій Слодиницький | YouTube   |
| 2020 | Пазл                | Віталій Слодиницький | YouTube   |
| 2021 | Наскрізь            | Віталій Слодиницький | YouTube   |
| 2021 | Хмуриться день      | Віталій Слодиницький | YouTube   |
| 2022 | Танок               | Віталій Слодиницький | YouTube   |
| 2022 | Бестія              | Віталій Слодиницький | YouTube   |
| 2022 | Як дитина           | Віталій Слодиницький | YouTube   |
| 2023 | Рандом              | Віталій Слодиницький | YouTube   |
| 2023 | Краще ніж ти        | Віталій Слодиницький | YouTube   |
| 2023 | До зірок            | Віталій Слодиницький | YouTube   |
| 2024 | Отрута              | Віталій Слодиницький | YouTube   |
| 2024 | Немає значення      | Віталій Слодиницький | YouTube   |
| 2024 | Над океаном         | Віталій Слодиницький | YouTube   |
| 2024 | На                  | Віталій Слодиницький | YouTube   |
| 2024 | Опіки               | Віталій Слодиницький | YouTube   |
| 2024 | Зірковий пил        | Віталій Слодиницький | YouTube   |
| 2025 | Не той              | Віталій Слодиницький | YouTube   |
| 2025 | Проведи мене додому | Віталій Слодиницький | YouTube   |
| 2025 | Граю знов           | Віталій Слодиницький | YouTube   |

wikiname: ukwiki

title: Білий Бо

in_language: uk

wikitext:
{{Музикант
| ім'я                 = Білий Бо
| зображення           = Білий Бо.jpg
| Дата народження      = 03.11.1988
| Місце народження     = Львів
| Країна               = Україна
| Професії             = Музикант, саундпродюсер, репер, співак і автор текстів
| Освіта               = Національний університет "Львівська Політехніка"
| Інструменти          = Гітара, фортепіано
| Жанри                = Хіп-хоп, реп
| Колективи            = Bratske Kolo, BOTASHE
}}

'''Білий Бо''' (справжнє ім’я '''Богдан Дмитрович Слодиницький''', 03.11.1988) — український музикант, саундпродюсер, репер, співак і автор пісень. Учасник хіп-хоп колективу [[BOTASHE]], заснованого у 2021 році, разом з [[Тася|Тасею]] та [[Шершень (реп-виконавець)|Шершнем]]<ref>{{Cite web|url=https://suspilne.media/culture/427635-botashe-vnutrisne-zadovolenna-e-drajverom-sob-ne-zupinatisa-stvoruvati-muziku/|title=Botashe: "Внутрішнє задоволення є драйвером, щоб не зупинятися створювати музику"|last=Івась|first=Ксенія|date=28 березня 2023|website=suspilne.media|language=Українська}}</ref> і творчого об'єднання «Братське Коло».

{{Соцмережі
|facebook = iambilibo
|instagram = iambilibo
|tiktok = iambilibo
|youtube = @bilyibo?si=cycfqv3QfF-GUV1t
}}

== Життєпис ==
Народився 3 листопада 1988 року у Львові. Навчався в школі № 9 до 3-го класу, потім у школі № 97 з 5 до 9 го класу. В цей час мама віддала хлопця на навчання в музичну школу гри на гітарі. Музика захопила його і весь вільний час маленький музикант присвячував грі на гітарі. В той час брав участь у Західноукраїнському конкурсі гри на класичній гітарі, який відбувався в Ужгороді, там здобув 2-ге місце. Також цікавився вуличними танцями займався брейк-дансом. Після кількох років тренувань танцював на тематичних заходах.

Вже у старших класах ознайомився з першою програмою для написання музики. Спочатку писав клубну музику, потім створював хіп-хоп інструментали для львівських реперів таких як Шершень, Шут, Alco Brothers та інші. Отримав атестат про середню освіту у приватній школі.

Після школи вступив до [[Національний університет «Львівська політехніка»|НУ Львівська політехніка]] на спеціальність «Комп'ютерні науки та інформаційні технології». За словами музиканта, після випуску диплом жодного разу не знадобився.

У 2009 Богдан пише свою першу пісню з вокалом. В той час відкриває власну студію звукозапису. Це була студія для людей, які не могли дозволити собі дорогий запис, тоді майже вся тусовка львівського репу побувала на Vagon Records. За час існування студії записано понад 150 різних виконавців. Серед них Alco Brothers<ref>{{Cite web|title=ALCO Brothers — EverybodyWiki Bios & Wiki|url=https://uk.everybodywiki.com/ALCO_Brothers|website=uk.everybodywiki.com|accessdate=2023-05-24}}</ref>, Шут, [[Шершень (реп-виконавець)|Шершень]], Рижуня, [[Бурбан Степан Петрович|Паліндром]], [[Гоня]], Kicka, Milan, Братське Коло, Альпачіно, ВсеПро, Тур, LEVYY, Шоль та багато інших.

З 2009 до 2014 музикант творить під псевдонімом Боудя. Випускає більш як 200 композицій. Виступав на великій сцені з відомими на той час реп-виконавцями<ref>{{Cite web|title=Биография Боудя|url=https://www.last.fm/ru/music/Боудя/+wiki|website=Last.fm|accessdate=2023-05-24|language=ru}}</ref>.

У 2014 році змінює свій псевдонім на Білий Бо і випускає перший сингл «Як дитина»<ref>{{Cite web|title=Білий Бо «Як дитина»|url=https://rap.ua/bilyj-bo-yak-dytyna/|website=rap.ua|date=2022-12-20|accessdate=2023-05-24|language=uk|last=admin}}</ref>.  Продовжує музичну діяльність сольно як саундпродюсер та музикант<ref>{{Cite web|title=Білий Бо випустив новий кліп|url=https://www.neformat.com.ua/news/21014-biliy-bo-vipustiv-noviy-klip.html|website=neformat|accessdate=2023-05-24|language=uk}}</ref>. У 2021 році, разом із [[Олег Шершень|Шершнем]] і [[Тася|Тасею]], створюють гурт [[BOTASHE]]<ref>{{Cite web|title=Білий Бо, Шершень і Тася об'єднались в гурт BOTASHE|url=https://rap.ua/bilyj-bo-shershen-ta-tasya-ob-yednalys-v-gurt-botashe/|website=rap.ua|date=2021-12-24|accessdate=2023-05-24|language=uk|last=admin}}</ref>. Також є учасником творчого об'єднання «Bratske kolo». У травні 2024 року учасник тріо Botashe Білий Бо презентував дебютний альбом "Баланс Білого", що складається з семи треків.<ref>{{Cite web|url=https://ukr.radio/news.html?newsID=104335|title=Баланс добра і зла: Учасник тріо Botashe видав дебютний сольний альбом {{!}} Новини {{!}} Радіо Промінь|website=ukr.radio|language=ua|access-date=2024-05-24|archive-date=2024-05-23|archive-url=https://web.archive.org/web/20240523221906/https://ukr.radio/news.html?newsID=104335|url-status=dead}}</ref> Також цього ж року музикант потішив прихильників треком «Отрута», який відображає внутрішні переживання та пошуки сенсу в сучасному світі<ref>{{Cite web|url=http://www.nrcu.gov.ua/news.html?newsID=104656|title=Загубив дорогу до мрій: Білий Бо видав сингл "Отрута" {{!}} Новини {{!}} Радіо Промінь|website=www.nrcu.gov.ua|language=ua|access-date=2024-07-15}}</ref> та літнім синглом «Немає значення»<ref>{{Cite web|url=http://muzvar.com.ua/do-pobachennia-toksychnym-liudiam-bilyi-bo-prezentuvav-pisniu-nemaie-znachennia/|title=До побачення токсичним людям: Білий Бо презентував пісню «Немає значення»|last=Admin_MZV|date=2024-07-13|website=МУЗВАР|language=uk|access-date=2024-07-15}}</ref>.

== Особисте життя ==
У 2015 році одружився з Вікторією Слодиницькою.

== Дискографія ==
'''Студійні альбоми'''

* Баланс Білого

'''Сингли'''{{div col|3}}

* Завели (за уч. Шершень ft Рижуня ft Levyy MC)
* Мене це пре (за уч. Шершень)
* Дич (за уч. Шершень ft Рижуня)
* Відійди (за уч. Шершень ft. Levyy MC)
* Вуличками Італії (за уч. Мішаня і Рижуня)
* На плаву (за уч. Шершень)
* Пентіум
* Іноді
* Пазл
* Тряси
* Ти і я (за уч. Шершень, Рижуня і Ждан)
* Там де горизонт (за уч. Тася)
* Наскрізь
* Хмуриться день
* Стержень (за  уч. KALUSH, OTOY, Білий Бо, Шершень, DYKTOR, Дядя Вова)
* До світанку (за уч. ТОФ)
* Ой люлі (за уч. Костя Cartman)
* Танок
* Туман (за уч. Мішані та Рижуні)
* Колискова (за уч. Шершень)
* Бестія
* Як дитина
* Слів немає (за уч. Костя Cartman)
* Багряне
* Лід
* Не питай (за уч. Yaski)
* Касета (за уч. TOF)
* Леді драма (за уч. Рижуня)
* Рандом
* Краще ніж ти (за уч. Santorin)
* До зірок (за уч. PRBLSK)
* Отрута
* Немає значення
* Над океаном
* На
* Опіки
* Зірковий пил
* Білий Бо - Місяць, ром і трохи брехні
* Не той
* Проведи мене додому
* Граю знов
{{div col end}}

== Відеокліпи ==

{| class="wikitable"
|+
!Рік
!Назва пісні
!Режисер
!'''Посилання'''
|-
|2019
|Пентіум
|Віталій Слодиницький
|[https://youtu.be/2lKmzzXU7qw?si=HLqqgSQqkCznQJ0k '''YouTube''']
|-
| rowspan="2" |2020
|Іноді
|Віталій Слодиницький
|'''[https://youtu.be/Gn5bn0187GE?si=7pWAyB-Zfn-6Fg4I YouTube]'''
|-
|Пазл
|Віталій Слодиницький
|'''[https://youtu.be/ufeFUCJElDw?si=PlwOZgDFHIBaDM7M YouTube]'''
|-
| rowspan="2" |2021
|Наскрізь
|Віталій Слодиницький
|'''[https://youtu.be/ym1Y4EVQQjk?si=KrfbhFgG1jMS5mgU YouTube]'''
|-
|Хмуриться день
|Віталій Слодиницький
|'''[https://youtu.be/FR7DtwVWt_o?si=WKNvsbADgUHXxM4G YouTube]'''
|-
| rowspan="3" |2022
|Танок
|Віталій Слодиницький
|'''[https://www.youtube.com/watch?v=w94w3_0fwc0 YouTube]'''
|-
|Бестія
|Віталій Слодиницький
|'''[https://youtu.be/wXpGfnJgEUc?si=n7o1BR1e2RztNDfe YouTube]'''
|-
|Як дитина
|Віталій Слодиницький
|'''[https://youtu.be/MxotTmtkySk?si=Igw_3HfBM6znjoRm YouTube]'''
|-
| rowspan="3" |2023
|Рандом
|Віталій Слодиницький
|'''[https://youtu.be/ZuTLxVbKkPE?si=3Z-XI71E7T96VInn YouTube]'''
|-
|Краще ніж ти
|Віталій Слодиницький
|'''[https://youtu.be/K6nAf2Knlhs?si=GCgFtknoRam3cXRQ YouTube]'''
|-
|До зірок
|Віталій Слодиницький
|'''[https://www.youtube.com/watch?v=U3fkll7_EDw YouTube]'''
|-
| rowspan="6" |2024
|Отрута
|Віталій Слодиницький
|'''[https://youtu.be/_1L76b_dQBw?si=F_KW1T3AW0BcyAws YouTube]'''
|-
|Немає значення
|Віталій Слодиницький
|[https://youtu.be/cY6XwgaRzXE?si=fKzq8aD4avVN6Fva '''YouTube''']
|-
|Над океаном
|Віталій Слодиницький
|'''[https://youtu.be/e7G_tcijkZI?si=J2dz-SSshEafm-U3 YouTube]'''
|-
|На
|Віталій Слодиницький
|'''[https://youtu.be/gBgfMaoqZbQ?si=8pn99SGX3yHhvVBm YouTube]'''
|-
|Опіки
|Віталій Слодиницький
|'''[https://youtu.be/5hbIfv0m0pM?si=BdxgZt91OClKonoX YouTube]'''
|-
|Зірковий пил
|Віталій Слодиницький
|'''[https://youtu.be/cQAl7ltuQ1Y?si=SFXUTWPRtUjDjBmo YouTube]'''
|-
| rowspan="3" |2025
|Не той
|Віталій Слодиницький
|'''[https://youtu.be/BM4G2wiseBo?si=U4WwOe3G625TrXeA YouTube]'''
|-
|Проведи мене додому
|Віталій Слодиницький
|'''[https://youtu.be/rjePVyLJ9Mw?si=4wz3Ddkf9nzLVREq YouTube]'''
|-
|Граю знов
|Віталій Слодиницький
|'''[https://youtu.be/n1FQoEKr-EI?si=Kdi2P3QsGPJv2WbU YouTube]'''
|}

== Примітки ==
{{reflist|2}}

title: Основна інформація

Дата народження: 3 листопада 1988 (36 років)

Місце народження: Львів

Громадянство: Україна

Інструменти: Гітара, фортепіано

Жанри: Хіп-хоп, реп

Колективи: Bratske Kolo, BOTASHE


text:
# Eosiren
Eosiren — це вимерлий рід морських корів, який жив у період від пізнього еоцену до раннього олігоцену. Кілька скам'янілостей знайдено в Єгипті. Схоже, що види E. abeli були одночасними з Protosiren і Eotheroides. Як і вони, Eosiren дуже нагадував сучасних сирен. Відрізняється від них дещо більшими безіменними і стегновими кістками.
Eosiren був вперше описаний палеонтологом Чарльзом Вільямом Ендрюсом у 1902 році, який відрізнив його від роду Halitherium через відмінності в зубах і нижній щелепі. Пізніше того ж року Science опублікувала короткий виклад його висновків у збірці про досягнення зоопалеонтології.

title: Eosiren

wikitext:
{{Taxobox
| fossil_range = пізній [[еоцен]] — [[олігоцен]]
| image = Eosiren lybica.JPG
| image_caption = Череп ''E. libyca''
| regnum = [[Animalia]]
| phylum = [[Chordata]]
| classis = [[Mammalia]]
| ordo = [[Sirenia]]
| familia = [[Dugongidae]]
| subfamilia = †[[Halitheriinae]]
| genus = '''''Eosiren'''''
| genus_authority = [[Отеніо Абель|Abel]], 1913
| subdivision_ranks = Види
| subdivision =
* ''E. abeli''
* ''E. imenti''
* ''E. libyca''
* ''E. stromeri''
}}
[[Файл:Eocene sirenians size comparison.png|міні|ліворуч|200пкс|Розмір ''Eosiren'' (фіолетовий) порівняно з іншими сиренами еоцену та людиною]]
'''''Eosiren''''' — це вимерлий [[рід (біологія)|рід]] морських корів, який жив у період від пізнього [[еоцен]]у до раннього [[олігоцен]]у<ref name="Zalmout&Gingerich2012">Zalmout I.S. & Gingerich P.D. (2012), [https://deepblue.lib.umich.edu/handle/2027.42/94568 “Late Eocene sea cows (Mammalia, Sirenia) from Wadi al Hitan in the western desert of Fayum, Egypt”], ''University of Michigan Papers on Paleontology'' No. '''37'''</ref>. Кілька скам'янілостей знайдено в [[Єгипет|Єгипті]]. Схоже, що види ''E. abeli'' були одночасними з ''Protosiren'' і ''Eotheroides''<ref name="Zalmout&Gingerich2012"/>. Як і вони, ''Eosiren'' дуже нагадував сучасних сирен. Відрізняється від них дещо більшими безіменними і стегновими кістками<ref name="Zalmout&Gingerich2012"/>.

''Eosiren'' був вперше описаний палеонтологом Чарльзом Вільямом Ендрюсом у 1902 році, який відрізнив його від роду ''Halitherium'' через відмінності в зубах і нижній щелепі<ref>{{Cite journal |last1=Andrews |first1=C. W. |title=II.—Preliminary Note on some Recently Discovered Extinct Vertebrates from Egypt. (Part III.) |doi=10.1017/S0016756800181178 |journal=Geological Magazine |volume=9 |issue=7 |pages=291 |year=1902 |url=https://zenodo.org/record/2189683/files/article.pdf }}</ref>. Пізніше того ж року Science опублікувала короткий виклад його висновків у збірці про досягнення зоопалеонтології<ref>{{cite journal |last1=Osborn |first1=H. F. |title=Recent Zoopaleontology |journal=Science |date=31.10.1902 |volume=16 |issue=409 |page=715 |url=https://www.jstor.org/stable/1628916 |access-date=27.01.2021}}</ref>.

== Примітки ==
{{reflist}}

{{Сирени}}
{{Taxonbar|from=Q3726742}}

[[Категорія:Роди ссавців]]
[[Категорія:Фауна еоцену]]
[[Категорія:Фауна олігоцену]]

title: ?Eosiren · Час існування: пізній еоцен — олігоцен

Царство: Animalia

Тип: Chordata

Клас: Mammalia

Ряд: Sirenia

Родина: Dugongidae

Підродина: †Halitheriinae

Рід: Eosiren · Abel, 1913

Вікісховище: Eosiren


text:
# Новотроєвка (Самарська область)
Новотроєвка (рос. Новотроевка) — село в Алексєєвському районі Самарської області Російської Федерації.
Населення становить 174 особи. Входить до складу муніципального утворення сільське поселення Алексєєвка.

## Історія
Від 2005 року входило до складу муніципального утворення сільське поселення Алексєєвка.

## Населення
| 1986 | 2002 | 2010 | 2014 | 2015 |
| ---- | ---- | ---- | ---- | ---- |
| 186  | ↗221 | ↘170 | ↗179 | ↘174 |

title: Новотроєвка (Самарська область)

wikitext:
{{Населений пункт Росії
|тип             = [[село]]
|тип_род         = села
|назва           = Новотроєвка
|назва ін.       = Новотроевка
|прапор          =
|опис прапора    =
|герб            =
|опис герба      =
|розташування    =
|опис розташування  =
|зображення         =
|зображення_розмір  =
|зображення_підпис  =
|mapx            =
|mapy            =
|суб'єкт РФ      = [[Самарська область]]
|район           = [[Алексєєвський район (Самарська область)|Алексєєвський район]]
|міський округ   =
|поселення       = [[сільське поселення Алексєєвка]]
|рада            =
|код ЗКАТУ       =
|засноване       =
|перша згадка    =
|завойоване      =
|попередні назви =
|статус          =
|поділ           =
|населення       = {{зменшення}} 174
|ref-населення   =
|площа           =
|ref-площа       =
|густота         =
|поштові індекси = <!--або поштовий індекс-->
|телефонний код  = <!--телефонний код-->
|часовий пояс    = [[Самарський час|SAMT]] ([[UTC+4]])
|висота          =
|водойма         =
|станція         =
|відстань        = <!--відстань до станції-->
<!--До центру муніципального району/міського округу-->
|залізниця р     =
|ref-залізниця р =
|автошлях р      =
|ref-автошлях р  =
|фізична р       = <!--або відстань р-->
|ref-фізична р   =
|залізниця о     =
|ref-залізниця о =
|автошлях о      =
|ref-автошлях о  =
|фізична о       = <!--або відстань о-->
|ref-фізична о   =
<!--До Москви-->
|залізниця с     =
|ref-залізниця с =
|автошлях с      =
|ref-автошлях с  =
|фізична с       = <!--або відстань с-->
|ref-фізична с   =
|схема           =
|міста-побратими =
|день міста      =
|катойконіми     =
|адреса          =
|вебсторінка    =
|мер             = <!--або голова, або губернатор-->
|ремарки         =
|карта розташування1   =Росія Самарська область
}}
'''Новотроєвка''' ({{lang-ru|Новотроевка}}) — [[село]] в [[Алексєєвський район (Самарська область)|Алексєєвському районі]] [[Самарська область|Самарської області]] [[Росія|Російської Федерації]].

Населення становить 174 особи. Входить до складу муніципального утворення [[сільське поселення Алексєєвка]].

== Історія ==

Від 2005 року входило до складу муніципального утворення сільське поселення Алексєєвка{{RUS-SAM-municipal}}.

== Населення ==

{{Населення РФ | Новотроевка (Самарская область) }}

== Примітки ==

{{reflist|1}}

{{Алексєєвський район (Самарська область)}}
{{Russia-geo-stub}}

[[Категорія:Населені пункти Алексєєвського району Самарської області]]

title: село Новотроєвка

Країна: Росія

Суб'єкт Російської Федерації: Самарська область

Муніципальний район: Алексєєвський район

Поселення: сільське поселення Алексєєвка

title: Основні дані

Часовий пояс: SAMT (UTC+4)

Основні дані:
Мапа
· Новотроєвка · Новотроєвка


text:
# Селиште (Благоєвградська область)
Се́лиште (болг. Селище) — село в Благоєвградській області Болгарії. Входить до складу общини Благоєвград.

## Населення
За даними перепису населення 2011 року у селі проживали 292 особи.
Національний склад населення села:
| Національність   | Кількість осіб | Відсоток |
| ---------------- | -------------- | -------- |
| болгари          | 283            | 98,6%    |
| турки            | 0              | 0%       |
| інша             | 3              | 1,0%     |
| Всього відповіли | 287            |          |

Розподіл населення за віком у 2011 році:
Динаміка населення:

title: Селиште (Благоєвградська область)

wikitext:
{{Otheruses|Селиште}}
{{НП Болгарії
 | назва                 = Селиште
 | статус                = село
 | місцева_назва         = {{lang-bg|Селище}}
 | герб                  =
 | прапор                =
 | зображення            =
 | зображення_підпис     =
 | область               = [[Благоєвградська область]]
 | община                = [[Благоєвград (община)|Благоєвград]]
 | община_кмет           =
 | община_кмет_партія    =
 | кметство              = '''Селиште'''
 | кмет                  =
 | кмет_партія           =
 | код_ЕКАТТЕ            = 66055
 | широта                = 41.996
 | довгота               = 22.9984
 | висота                = 528
 | населення             = 292
 | населення_рік         = 2011
 | населення_джерело     =
 | площа                 =
 | поштові_індекси       = 2744
 | телефонний_код        = 07413
 | вебсторінка           =
 | фізична_о             = 7
 | фізична_о_джерело     = <ref name="відстані">Фізичні відстані розраховані за координатами населених пунктів</ref>
 | фізична_с             = 82
 | фізична_с_джерело     = <ref name="відстані"/>
}}'''Се́лиште''' ({{lang-bg|Селище}}) — село в [[Благоєвградська область|Благоєвградській області]] [[Болгарія|Болгарії]]. Входить до складу общини [[Благоєвград (община)|Благоєвград]].

== Населення ==
За даними [[Перепис населення Болгарії (2011)|перепису населення 2011 року]] у селі проживали {{formatnum:292}} особи.

Національний склад населення села<ref>{{cite web|url=http://www.nsi.bg/ORPDOCS/Census2011_4.pop_by_ethnos.xls|title=Национален статистически институт. Население по области, общини, населени места и самоопределение по етническа принадлежност към 01.02.2011 г.|language=болгарською|accessdate=2012-03-18|archiveurl=https://www.webcitation.org/6Fdhrysbu?url=http://www.nsi.bg/ORPDOCS/Census2011_4.pop_by_ethnos.xls|archivedate=05.04.2013|deadurl=no}}</ref>:
{| class="standard"
|-
! style = "background-color:#A0FF60" | Національність
! style = "background-color:#A0FF60" | Кількість осіб
! style = "background-color:#A0FF60" | Відсоток
|-
| [[Болгари в Болгарії|болгари]]
| 283
| 98,6%
|-
| [[Турки в Болгарії|турки]]
| 0
| 0%
|-
| інша
| 3
| 1,0%
|-
| '''Всього відповіли'''
| 287
|
|}

Розподіл населення за віком у 2011 році<ref>{{cite web|url=http://www.nsi.bg/ORPDOCS/Census2011_1.pop_by_age.xls|title=Национален статистически институт. Население по области, общини, населени места и възраст към 01.02.2011 г.|language=болгарською|accessdate=2012-03-18|archiveurl=https://www.webcitation.org/6Irx9OSLX?url=http://www.nsi.bg/ORPDOCS/Census2011_1.pop_by_age.xls|archivedate=14.08.2013|deadurl=no}}</ref>:
{{Демографія/розподіл за віком
| макс=38
| всього=292
| 0-4=5
| 5-9=8
| 10-14=10
| 15-19=6
| 20-24=9
| 25-29=6
| 30-34=14
| 35-39=20
| 40-44=12
| 45-49=15
| 50-54=13
| 55-59=16
| 60-64=28
| 65-69=35
| 70-74=38
| 75-79=31
| 80-84=18
| 85+=8
}}

Динаміка населення<ref>{{cite web|url=http://www.nsi.bg/nrnm/show9.php?sid=4252&ezik=bul|title=Национален статистически институт. Справка за населението на с. Селище, общ. Благоевград, обл. Благоевград|language=болгарською|accessdate=2012-01-23|archiveurl=https://www.webcitation.org/6Isi4v6FF?url=http://www.nsi.bg/nrnm/show9.php?sid=4252|archivedate=15 серпня 2013}}</ref>:
{{Демографія/Населення Болгарії
|Ширина зображення  = 440
|Максимум шкали     = 900
|Крок більшої шкали = 100
|Крок меншої шкали  = 20
|1934 = 853
|1946 = 856
|1956 = 791
|1965 = 702
|1975 = 498
|1985 = 398
|1992 = 341
|2001 = 350
|2011 = 292
}}

== Примітки ==
{{reflist}}

{{Благоєвградська область|Благоєвград}}
{{Bulgaria-geo-stub}}

{{Портали|Географія|Болгарія}}

[[Категорія:Села Благоєвградської області]]

title: Селиште · болг. Селище

Країна: Болгарія

Область: Благоєвградська область

Община: Благоєвград

Кметство: Селиште

title: Відстань

Відстань:
До обласного центру
До Софії

фізична:
7 км
82 км

title: Розташування

Розташування: СелиштеСелиште (Болгарія)


text:
# Елк-Фоллс (Канзас)
Елк-Фоллс (англ. Elk Falls) — місто (англ. city) в США, в окрузі Елк штату Канзас. Населення — 113 особи (2020).

## Географія
Елк-Фоллс розташований за координатами 37°22′27″ пн. ш. 96°11′32″ зх. д. / 37.37417° пн. ш. 96.19222° зх. д. (37.374041, -96.192199).  За даними Бюро перепису населення США в 2010 році місто мало площу 2,26 км², з яких 2,23 км² — суходіл та 0,03 км² — водойми. В 2017 році площа становила 1,89 км², з яких 1,88 км² — суходіл та 0,00 км² — водойми.

## Демографія
Згідно з переписом 2010 року, у місті мешкало 107 осіб у 54 домогосподарствах у складі 33 родин. Густота населення становила 47 осіб/км².  Було 68 помешкань (30/км²).
Расовий склад населення:
| - 92,5 % — білих - 1,9 % — корінних американців - 0,9 % — азіатів |

До двох чи більше рас належало 4,7 %. Частка іспаномовних становила 0,9 % від усіх жителів.
За віковим діапазоном населення розподілялося таким чином: 16,8 % — особи молодші 18 років, 55,2 % — особи у віці 18—64 років, 28,0 % — особи у віці 65 років та старші. Медіана віку мешканця становила 52,9 року. На 100 осіб жіночої статі у місті припадало 84,5 чоловіків;  на 100 жінок у віці від 18 років та старших — 81,6 чоловіків також старших 18 років.
За межею бідності перебувало 40,4 % осіб, у тому числі 60,0 % дітей у віці до 18 років та 0,0 % осіб у віці 65 років та старших.
Цивільне працевлаштоване населення становило 19 осіб. Основні галузі зайнятості: освіта, охорона здоров'я та соціальна допомога — 31,6 %, транспорт — 26,3 %, виробництво — 21,1 %.

title: Елк-Фоллс (Канзас)

wikitext:
{{НП
|країна  = [[Сполучені Штати Америки|США]]
|статус  = місто
|українська назва   = Елк-Фоллс
|оригінальна назва  = {{lang-en|Elk Falls}}
|підпорядкування    =
|герб           =
|прапор         =
|ширина герба   =
|ширина прапора =
|зображення     =
|опис зображення=
|вид регіону = Штат США{{!}}Штат
|регіон      = Канзас
|вид району  = Округ (США){{!}}Округ
|район       = [[Елк (округ, Канзас)|Елк]]
|вид общини  =
|община      =
|внутрішній поділ  =
|перша згадка      =
|попередні назви   =
|площа              = 2,26
|висота центру НП   =
|клімат             =
|офіційна мова      =
|офіційна мова-ref  =
|населення          =
|рік перепису       =
|густота населення  = 47,35
|агломерація        =
|національний склад =
|конфесійний склад  =
|катойконім         =
|часовий пояс           = −6
|DST                    = −5
|телефонний код         = 620
|поштовий індекс        = 67345
|автомобільний код      =
|вид ідентифікатора     = [[Федеральні стандарти обробки інформації|Код FIPS]]
|цифровий ідентифікатор = 2020300
|сайт  =
|add1n =
|add1  =
}}

'''Елк-Фоллс''' ({{lang-en|Elk Falls}}) — місто ({{lang-en|city}}) в [[Сполучені Штати Америки|США]], в окрузі [[Елк (округ, Канзас)|Елк]] штату [[Канзас]]. Населення — 113 особи (2020).

== Географія ==
Елк-Фоллс розташований за координатами {{Coord|37|22|27|N|96|11|32|W|type:city_region:US-DE}} (37.374041, -96.192199){{R|gazetteer2010}}.  За даними [[Бюро перепису населення США]] в 2010 році місто мало площу 2,26 км², з яких 2,23 км² — [[Суходіл (географія)|суходіл]] та 0,03 км² — [[водойма|водойми]]. В 2017 році площа становила{{R|gazetteer2017}} 1,89 км², з яких 1,88 км² — суходіл та 0,00 км² — водойми.

== Демографія ==
{{USCensusPop
| align =  left
| 1880 = 513
| 1890 = 350
| 1910 = 271
| 1920 = 203
| 1930 = 288
| 1940 = 294
| 1950 = 276
| 1960 = 179
| 1970 = 124
| 1980 = 151
| 1990 = 122
| 2000 = 112
| 2010 = 107
| 2020 = 113
| estyear =
| estimate =
| estref =
| align-fn = center
| footnote = [https://www.census.gov/prod/www/abs/decennial/ U.S. Decennial Census]
}}
Згідно з [[Перепис населення США (2010)|переписом 2010 року]]{{R|cen2010}}, у місті мешкало 107 осіб у 54 домогосподарствах у складі 33 родин. [[Густота населення]] становила 47 осіб/км².  Було 68 помешкань (30/км²).

[[Раса|Расовий склад]] населення:
{| style="margin-top:-.7em; margin-bottom: -0.4em;"
|<!--Таблиця потрібна для правильного "прилягання" списку до таблиці населення за роками-->
* 92,5 % — [[Расовий склад США|білих]]
* 1,9 % — [[Корінні народи США|корінних американців]]
* 0,9 % — [[Американці азійського походження|азіатів]]
|}
До двох чи більше рас належало 4,7 %. Частка іспаномовних становила 0,9 % від усіх жителів.

За віковим діапазоном населення розподілялося таким чином: 16,8 % — особи молодші 18 років, 55,2 % — особи у віці 18—64 років, 28,0 % — особи у віці 65 років та старші. Медіана віку мешканця становила 52,9 року. На 100 осіб жіночої статі у місті припадало 84,5 чоловіків;  на 100 жінок у віці від 18 років та старших — 81,6 чоловіків також старших 18 років.
За межею бідності перебувало 40,4 % осіб, у тому числі 60,0 % дітей у віці до 18 років та 0,0 % осіб у віці 65 років та старших.

Цивільне працевлаштоване населення становило 19 осіб. Основні галузі зайнятості: освіта, охорона здоров'я та соціальна допомога — 31,6 %, транспорт — 26,3 %, виробництво — 21,1 %.

== Джерела ==
{{Портал|США}}
{{reflist
|refs=<ref name=cen2010>{{cite web|url=https://factfinder.census.gov/faces/nav/jsf/pages/index.xhtml|publisher=[[Бюро перепису населення США]]|accessdate=16-06-2019|title=American FactFinder|archive-date=2015-01-08|archive-url=http://webarchive.loc.gov/all/20150108070337/http://factfinder.census.gov/faces/nav/jsf/pages/index.xhtml}}{{ref-en}}</ref>
<ref name=gazetteer2010>{{cite web|url={{US-census-gazetteer2010-url}}|publisher=[[Бюро перепису населення США]]|accessdate=16-06-2019|title=Gazetteer}}{{ref-en}}</ref>
<ref name=gazetteer2017>{{cite web|url={{US-census-gazetteer2017-url}}|publisher=[[Бюро перепису населення США]]|accessdate=16-06-2019|title=Gazetteer-2017}}{{ref-en}}</ref>
}}

{{Бібліоінформація}}
{{Елк (округ, Канзас)}}

[[Категорія:Міста Канзасу]]
[[Категорія:Населені пункти округу Елк (Канзас)]]

title: Країна

Країна: США

Штат: Канзас

Округ: Елк

Населення: 113 осіб (1 квітня 2020)

Густота населення: 47,35 осіб/км²

Часовий пояс: UTC−6, влітку UTC-5


text:
# Угринович Олег Анатолійович
Оле́г Анато́лійович Угрино́вич (25 квітня 1977 — 12 червня 2015) — український військовослужбовець, молодший лейтенант Збройних сил України. Загинув під час російсько-української війни.

## Короткий життєпис
Закінчив дунаєвецьку ЗОШ № 4, мешкав у місті Дунаївці.
30 січня 2015 року призваний за мобілізацією, молодший лейтенант, розвідник взводу розвідки 2-го механізованого батальйону 93-ї окремої механізованої бригади.
Загинув 12 червня 2015 року в районі Донецького аеропорту під час виконання бойового завдання. Військовики їхали з села Водяне до селища Опитне (Ясинуватський район), близько 19:00 їхній БТР підірвався на протитанковій міні, машина згоріла. Тоді ж загинули старший лейтенант Олександр Цисар та солдат Степан Загребельний, ще 5 бійців потрапили до шпиталю.
16 червня 2015-го похований в селі Зеленче.
Без сина лишилась мама.

## Нагороди та вшанування пам'яті
- 22 вересня 2015 року, — за мужність, самовідданість і високий професіоналізм, виявлені у захисті державного суверенітету та територіальної цілісності України, вірність військовій присязі, — нагороджений орденом «За мужність» III ступеня (посмертно)[1].
- 13 жовтня 2015-го у Дунаєвецькій ЗОШ № 4 відкрито меморіальну дошку пам'яті Олега Угриновича
- Почесний громадянин Дунаєвецького району (посмертно).

title: Угринович Олег Анатолійович

wikitext:
{{Військовик2
| ім'я                = Угринович Олег Анатолійович
| оригінал імені      =
| портрет             = Угринович Олег Анатолійович.jpg
| ім'я при народженні =
| дата народження     = 25.4.1977
| місце народження    = [[Зеленче (Дунаєвецький район)|Зеленче]]
| дата смерті         = 12.6.2015
| місце смерті        = [[Опитне (Ясинуватський район)|Опитне]], [[Донецька область]]
| причина смерті      =
| прізвисько          = «Змій»
| країна              = {{UKR}}
| вид збройних сил    = {{fСВ ЗСУ}}
| рід військ          = {{InМЕХ Укр}}
| роки служби         =
| звання              = {{Ранг|країна=Україна|звання=Молодший лейтенант}}
| формування          = {{93 ОМБр ЗСУ|2}}
| командування        =
| битви               =[[Війна на сході України]]
* [[Бої за Донецький аеропорт]]
| нагороди            = {{(!}} style="background: transparent"
{{!}} {{Орден За мужність III ступеня}}
{{!)}}
| університет         =
| signature           =
| інше                =
}}
{{Однофамільці|Угринович}}
'''Оле́г Анато́лійович Угрино́вич''' ({{ДН|25|4|1977}} — {{ДС|12|6|2015}}) — український військовослужбовець, молодший лейтенант [[Збройні сили України|Збройних сил України]]. Загинув під час [[Війна на сході України|російсько-української війни]].

== Короткий життєпис ==
Закінчив дунаєвецьку ЗОШ № 4, мешкав у місті Дунаївці.

30 січня 2015 року призваний за мобілізацією, молодший лейтенант, розвідник взводу розвідки 2-го механізованого батальйону [[93-тя окрема механізована бригада (Україна)|93-ї окремої механізованої бригади]].

Загинув 12 червня 2015 року в районі [[Міжнародний аеропорт «Донецьк» імені Сергія Прокоф'єва|Донецького аеропорту]] під час виконання бойового завдання. Військовики їхали з села [[Водяне (Ясинуватський район)|Водяне]] до селища [[Опитне (Ясинуватський район)]], близько 19:00 їхній БТР підірвався на протитанковій міні, машина згоріла. Тоді ж загинули старший лейтенант [[Цисар Олександр Миколайович|Олександр Цисар]] та солдат [[Загребельний Степан Ігорович|Степан Загребельний]], ще 5 бійців потрапили до шпиталю.

16 червня 2015-го похований в селі Зеленче.

Без сина лишилась мама.

== Нагороди та вшанування пам'яті ==
* 22 вересня 2015 року, — ''за мужність, самовідданість і високий професіоналізм, виявлені у захисті [[Державний суверенітет|державного суверенітету]] та [[територіальна цілісність|територіальної цілісності]] України, вірність [[військова присяга|військовій присязі]]'', — нагороджений орденом «За мужність» III ступеня (посмертно)<ref>{{УПУ|553/2015|22 вересня 2015|Про відзначення державними нагородами України|http://www.president.gov.ua/documents/5532015-19440}}</ref>.
* 13 жовтня 2015-го у Дунаєвецькій ЗОШ № 4 відкрито меморіальну дошку пам'яті Олега Угриновича
* Почесний громадянин Дунаєвецького району (посмертно).

== Примітки ==
{{reflist}}

== Джерела ==
* [http://memorybook.org.ua/23/ugrinovich.htm Угринович Олег Анатолійович]
* [https://dun.at.ua/news/2015-10-20-2986 Встановлено меморіальну дошку Олегу Угриновичу]
* [https://ngua.org/people/2898 Небесна Гвардія]
{{Учасники РУВ|загинув=так}}
[[Категорія:Уродженці Дунаєвецького району]]
[[Категорія:Померли в Ясинуватському районі]]
[[Категорія:Поховані в Дунаєвецькому районі]]
[[Категорія:Почесні громадяни Дунаєвецького району]]

title: Загальна інформація

Народження: 25 квітня 1977 · Зеленче

Смерть: 12 червня 2015 (38 років) · Опитне, Донецька область

Псевдо: «Змій»

title: Військова служба

Приналежність: Україна

Вид ЗС: Сухопутні війська

Рід військ: Механізовані війська

Формування: 93 ОМБр

Війни / битви: Війна на сході України - Бої за Донецький аеропорт