Яка різниця між незначними та основними помилками сторінки в Linux?


Відповідь 1:

Фон

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

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

У випадку надзвичайного дефіциту фізичної пам'яті (також відомого як тиск у пам'яті) ядро ​​буде викликати kswapd, який би міняв фізичні сторінки, які не використовувалися протягом тривалого часу, на область swap на пристрої зберігання даних, якщо вона налаштована під час налаштування середовища Linux. Після заміни цих невикористаних сторінок ядро ​​позначатиме пов’язані записи таблиці сторінок, де раніше належала фізична сторінка, як поміщені.

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

Незначні помилки сторінки

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

Основні помилки сторінки

Основні несправності трапляються в одному з наступних можливих випадків:

  • Обробник помилок сторінки може намагатися повернути фізичні сторінки, які були замінені раніше через тиск в пам'яті (дефіцит фізичної пам'яті), таким чином спричиняючи введення / виведення диска для зчитування з раніше заміненої сторінки з налаштованого простору заміни. Обробник помилок сторінки може намагатися прочитати з відкритого файлу, який був щойно mmap () 'ed. Це також призведе до вводу / виводу диска, якщо вміст файлу вже не знаходився в кеші сторінки.

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

Сподіваюся, це прояснить ваші сумніви!


Відповідь 2:

Ну, Google відповість на це питання краще, ніж я.

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

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

Джерело: Вікіпедія

Сподіваюся, це допомагає!

Дякую за A2A.