Поняття адресного простору

Віртуальна пам'ять

Адресний простір —_________________________________________________________________

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Адресний простір не обов'язково має бути числовим. Набір інтернет-доменів. Com також є адресним простором. Це адресний простір складається з усіх рядків довжиною від 2 до 63 символів, які можуть бути встановлені з букв, цифр і дефісів, за якими слідує назва домену -. Com.

Свопінг

Для подолання перевантаження пам'яті були вироблені два основних підходи.

Самий простий з них__________________________________________________________________

__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Другій підхід називається ______________________________________________________________

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Робота системи з використанням свопінгу показана на рис. 3.4. Спочатку в пам'яті присутній тільки процес А. Потім створюються або з'являються в пам'яті шляхом свопінгу з диска процеси В і С. На рис. 3.4, г процес А за рахунок свопінгу вивантажується на диск. Потім з'являється процес І та вивантажується з пам'яті процес В. І нарешті, знову з'являється в пам'яті процес А. Оскільки тепер процес А знаходиться в іншому місці, що містяться в ньому адреси повинні бути перебудовані або програмним шляхом, при завантаженні в процесі свопінгу, або (швидше за все) апаратним шляхом в процесі виконання програми.

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Але найчастіше вона не проводиться, оскільки віднімає досить багато процесорного часу. До прикладу, на машині, оснащеною 1 Гбайт пам'яті, скопіювати 4 байти за 20 не, на ущільнення всього обсягу пам'яті може піти близько 5 с.

 

На рис. 3.5, а показана конфігурація пам'яті, в якій простору для розростання були виділені двом процесам.

 

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

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

3.2 Управління вільною пам'яттю

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

На рис. 3.6 показана частина пам'яті і відповідна їй бітова матриця.

 

 

Одиничні блоки пам'яті розділені вертикальними штрихами. Заштриховані області (яким відповідно 0 в бітової матриці) є вільними (а). Відповідна бітова матриця (б). Та ж сама інформація у вигляді списку (в)

Важливим питанням для розробника є розмір одиничного блоку пам'яті. Чим менше блок, тим більше бітова матриця. Але навіть з таким невеликим одиничним блоком пам'яті, розмір якого дорівнює 4 байти, для 32 біт пам'яті знадобиться 1 біт матриці. Пам'ять, яка складається з 32П біт, буде використовувати п біт матриці, таким чином, бітова матриця займе лише 1/33 пам'яті. Якщо вибрано більш об'ємний одиничний блок пам'яті, бітова матриця буде менше, але тоді в останньому блоці процесу, якщо він не буде в точності кратний розміру одиничного блоку, буде даремно губитися досить істотний обсяг пам'яті.

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Віртуальна пам’ять

В основі віртуальної пам'яті лежить ідея, ____________________________________________________

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

Сторінкова організація пам'яті

Більшість систем віртуальної пам'яті використає технологію під назвою сторінкова організація пам'яті (paging). На будь-якому комп'ютері програми посилаються на набір адрес пам'яті. Коли програма виконує наступну команду MOV REG.1000 вона здійснює копіювання вмісту комірки пам'яті з адресою 1000 в REG (або навпаки, залежно від комп'ютера). Адреси можуть генеруватися з користуванням індексної адресації, базових регістрів, сегментних регістрів і іншими способами.