русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Шановні українці! Матеріал був перекладений з російської мови. Тому можуть бути незначні помикли...

Керування пам'яттю в Unix

Перші реалізації системи UNIX (до сьомої версії) виконувалися на машині PDP-11 з 16 розрядного архітектурою і адресним простором, рівним 64 Кбайт. Деякі моделі підтримували окремий адресний простір для розміщення інструкцій і даних, проте в сукупності адресний простір довільного процесу не міг перевищувати 128 Кб. Це обмеження призвело до розвитку різних технологій програмних оверлеїв. Механізми управління пам'яттю в ранніх версіях UNIX обмежувалися можливостями підкачки (swapping). Процеси завантажувалися в оперативну пам'ять цілком один за іншим. У певний момент часу у фізичній пам'яті машини могло поміститися невелике число процесів, а система була для них спільно використовуваних ресурсом. Якщо необхідно було виконати інший процес, то один з існуючих процесів винний був бути вивантаженим з пам'яті. Такий процес копіювався в заздалегідь виділену область підкачки (swapping partition), яка містилася на диску. Деякий простір підкачки (swap space) виділявся для кожного процесу на стадії його створення, що гарантувало доступність області підкачки при необхідності її використання.

Технологія завантаження сторінок за запитом (demand paging) з'явилася в системі UNIX після створення VAX-11/780 в 1978 році. Ця машина мала 32-розрядну архітектуру, 4-гигабайтний адресний простір і апаратну підтримку даної технології, тобто операційна система 3BSD стала першою реалізацією UNIX, яка його підтримувала. А до середини 80-х років всі наявні тоді версії UNIX вже забезпечували завантаження сторінок по запросу як основну методику управління пам'яттю, технологія підкачки ж відійшла на другий план. У системах завантаження сторінок по запросу пам'ять і адресний простір процесу розділені на сторінки фіксованого розміру, що містяться в пам'яті або вивантажуються по мірі необхідності. Сторінку фізичної пам'яті часто називають страничным кадром (page frame) або фізичним сторінкою (physical page). В один момент часу можуть виконуватися відразу кілька процесів, при цьому у фізичній пам'яті розташовується лише деяка частина сторінок кожного з них. Кожна що виконується програма вважає себе єдиною в системі. Програмні адреси віртуальні і розчленовуються машиною на номер сторінки і зсув на цій сторінці. Апаратна частина разом з операційною системою виконує перетворення номери віртуальної сторінки в номер фізичної сторінкового кадру і потім звертається у відповідну комірку пам'яті. Якщо потрібної сторінки немає в оперативної пам'яті, її необхідно туди завантажити. В ідеальному випадку жодна зі сторінок не може бути розміщена в пам'яті до тих пір, поки вона не стане потрібної (тобто поки на цю сторінку не буде зроблено посилання). Більшість сучасних систем UNIX роблять попередні розміщення деякої кількості сторінок в пам'яті (anticipatory paging), завантажуючи ті сторінки, на думку системи незабаром будуть викликані.

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

Переглядів: 2852

Повернутися в зміст:ОС Unix



Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн