Системне програмування і операційні системи
Сторінкова організація пам’яті.
Сторінкова організація пам’яті представляє собою інше рішення проблеми фрагментації. Сторінкова організація використовується в цілому ряді сучасних обчислювальних машин, наприклад, в ЕВМ х DS 940.
Адресний простір, який розділяється на частини по 1000 байтів в кожній, які називаються сторінками. Як і в схемі з розподілом пам’яті переміщаючими розділами користувач не має інформації про це ділення, так як це ділення не являє явного впливу на його адресний простір.
Фізична пам’ять також розділена на частини по 1000 байтів в кожній, які називаються блоками. Як і в схемі з переміщаючими розділами, необхідно забезпечити механізм установлювати відповідність між адресним простором користувача і фізичною пам’яттю. З цією метою для кожної сторінки передбачений спеціальний регістр. Ці регістри часто називають таблицею переадресації сторінок або таблицею сторінок. Фізично ці регістри можуть бути реалізовані або схемно або займають частину оперативної пам’яті. Таблиця переадресації сторінок значно менша адресного простору.
Так, як кожна сторінка може бути переміщена незалежно, нема потреби, щоб виділений для завдання розділ займав непреривний участок пам’яті і тільки комірки однієї сторінки повинні розміщуватись в одному непреривному участку пам’яті. Очевидно, що вибір розміру сторінок суттєво впливає на переміщення цієї схеми. Якщо розмір сторінки занадто великий, він стає рівним з розміром розділу і схема розприділення сторінками перетвориться в схему розприділення переміщаючими розділами. Якщо розмір сторінок занадто малий, необхідно мати багато регістрів переадресації, що різко підвищує вартість обчислювальної системи.
В результаті компромісу враховуючого ці і другі заперечуючі тенденції у багатьох системах з сторінковою організацією сторінки мають розмір 4000 байтів.
З сторінковою організацією зв’язаний ряд важливих проблем.
Перша з них в згубах на перетвореннях адресів. Друга зв’язана з допоміжною пам’яттю або регістрами, необхідними для таблиць переадресації сторінок. Поскільки розмір завдання не обов’язково кратний 1000 байтам, частина останньої сторінки не використовується. Це явище називають пересіканням сторінок. В середньому для кожного завдання губиться половина сторінок. В випадку великої кількості малих завдань це може призвести до серйозних втрат.
Сегментна організація пам’яті.
Сегментація представляє собою одночасно схему управління памяттю і інформацією.
Сегментом називається група інформації, яка розглядається як єдине ціле. Це може бути одна програма або багато програм, і одиночна база даних або група баз даних. При використанні сегментації програміст представляє адресний простір як двовимірний, адресований двома компонентами: іменем сегмента і зміщенням всередині сегмента. Кожний сегмент має свої зв’язані з цим правила доступу.
Сегментація полегшує реалізацію динамічних зв’язків.
В час виконання оператора визову механізм загрузки находить програму, завантажує її в пам’ять і зв’язує викликаючу програму з викликаючого в процесі виконання. Таким чином виключаються втрати звичайно можливі, якщо виклик тієї чи іншої програми в пам’ять в дійсності не являється необхідним.
При практичній реалізації системи з сегментним адресним простором для спрощення апаратури і програмування використовуються цілий ряд методів. Звернення до сегменту робиться по його номеру, а не по імені.
З точки зору програміста, сегментація адресного простору володіє рядом привілей. З кожним сегментом можуть бути зв’язані спеціальні атрибути, виділяючі правила доступу, такі як <тільки читати і тільки читати> <тільки виконувати> слова всередині сегмента, які виділені як доступні тільки для виконання не можуть бути прочитані як дані, і на це місце не може бути записана яка-небудь нова інформація.