Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Сегментно-Сторінкова організації віртуальної пам'яті

План

1. Сегментно-Сторінкова організації віртуальної пам'яті

2. Асоціативна пам'ять

3. Інвертована таблиця сторінок

4. Розмір сторінки

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

На практик, однак, появ у систем велик кількіст таблиц сторінк намага_ уникну, організува сегменты, що неперекрывающиеся, в одном виртуальном пространстве, для описания которого хватает одной Таким чином, одна таблиця сторінок приділяється для всього процесу. Наприклад, у популярних ОС Linux і Windows 2000 усі сегменти процесу, а також область пам'яті ядра обмежені віртуальним адресним простором обсягом 4 Гбайт. При цьому ядро ОС розташовується по фіксованих віртуальних адресах незалежно від виконуваного процесу.

Структура таблиці сторінок

Організація таблиці сторінок – один із ключових елементів відображення адрес у сторінковій і сегментно-сторінкової схемах. Розглянемо структуру таблиці сторінок для випадку сторінкової організації більш докладно.

Отже, віртуальна адреса складається з віртуального номера сторінки й зсуву. Номер запису в таблиці сторінок відповідає номеру віртуальної сторінки. Розмір запису коливається від системи до системи, але найчастіше він становить 32 біта. Із цього запису в таблиці сторінок перебуває номер кадра для даної віртуальної сторінки, потім додається зсув і формується фізичну адресу. Крім цього запис у таблиці сторінок містить інформацію про атрибути сторінки. Це біти присутності й захисту (наприклад, 0 – read/write, 1 – read only...). Також можуть бути зазначені: біт модифікації, який установлюється, якщо вміст сторінки модифікований, і дозволяє контролювати необхідність перезапису сторінки на диск; біт посилання, який допомагає виділити малоиспользуемые сторінки; біт, що дозволяє кэширование, і інші керуючі біти. Помітимо, що адреси сторінок на диску не є частиною таблиці сторінок.

Основну проблему для ефективної реалізації таблиці сторінок створюють більші розміри віртуальних адресних просторів сучасних комп'ютерів, які звичайно визначаються розрядністю архітектури процесора. Найпоширенішими на сьогодні є 32-розрядні процесори, що дозволяють створювати віртуальні адресні простори розміром 4 Гбайт (для 64-розрядних комп'ютерів ця величина рівна 264 байт). Крім того, існує проблема швидкості відображення, яка вирішується за рахунок використання так званої асоціативної пам'яті (див. наступний розділ).

Підрахуємо зразковий розмір таблиці сторінок. В 32-бітному адресному просторі при розмірі сторінки 4 Кбайт (Intel) одержуємо 232/212=220, тобто приблизно мільйон сторінок, а в 64-бітному й того більш. Таким чином, таблиця повинна мати приблизно мільйон рядків (entry), причому запис у рядку складається з декількох байтів. Помітимо, що кожний процес потребує своєї таблиці сторінок (а у випадку сегментно- сторінкової схеми бажане мати по одній таблиці сторінок на кожний сегмент).

Зрозуміло, що кількість пам'яті, що приділяється таблицям сторінок, не може бути так велике. Для того щоб уникнути розміщення в пам'яті величезної таблиці, її розбивають на ряд фрагментів. В оперативній пам'яті зберігають лише деякі, необхідні для конкретного моменту виконання фрагменти таблиці сторінок. У силу властивості локальності число таких фрагментів відносно невелике. Виконати розбивка таблиці сторінок на частині можна по-різному. Найпоширеніший спосіб розбивки – організація так званої багаторівневої таблиці сторінок. Для прикладу розглянемо дворівневу таблицю з розміром сторінок 4 Кбайт, реалізовану в 32-розрядній архітектурі Intel.

Таблиця, що полягає з 220 рядків, розбивається на 210 таблиць другого рівня по 210 рядків. Ці таблиці другого рівня об'єднані в загальну структуру за допомогою однієї таблиці першого рівня, що полягає з 210 рядків.32-розрядна адреса ділиться на 10-розрядне поле p1, 10-розрядне поле p2 і 12-розрядний зсув d. Поле p1 указує на потрібний рядок у таблиці першого рівня, поле p2 – другого, а поле d локалізує потрібний байт усередині зазначеного сторінкового кадра (див. рис. 9.1).


Рис. 9.1. Приклад дворівневої таблиці сторінок

За допомогою всього лише однієї таблиці другого рівня можна охопити 4 Мбайт (4 Кбайт x 1024) оперативної пам'яті. Таким чином, для розміщення процесу з більшим обсягом займаної пам'яті досить мати в оперативній пам'яті одну таблицю першого рівня й кілька таблиць другого рівня. Очевидно, що сумарна кількість рядків у цих таблицях багато менше 220. Такий підхід природно узагальнюється на три й більш рівнів таблиці.

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

Кількість рівнів у таблиці сторінок залежить від конкретних особливостей архітектури. Можна привести приклади реалізації одноуровневого (DEC PDP-11), дворівневого (Intel, DEC VAX), трехуровневого (Sun SPARC, DEC Alpha) пейджинга, а також пейджинга із заданою кількістю рівнів (Motorola). Функціонування Risc-Процесора MIPS R2000 здійснюється взагалі без таблиці сторінок. Тут пошук потрібної сторінки, якщо ця сторінка відсутня в асоціативній пам'яті, повинна побрати на себе ОС (так званий zero level paging).

<== предыдущая лекция | следующая лекция ==>
 | Асоціативна пам'ять
Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 1053; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.