Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
16-18.docx
Скачиваний:
3
Добавлен:
20.11.2019
Размер:
138.81 Кб
Скачать
  1. Плоска модель пам'яті

Починаючи з моделі Intel-80386, в мікропроцесорах Intel-Pentium адреса складається з 16-розрядного номера сегменту і 32-розрядного зсуву. 32-розрядне поле зсуву дозволяє адресувати до 4 Гбайт в межах одного сегменту, що більш ніж достатньо для більшості мислимих застосувань і дозволяє реалізувати дійсно "плоску" (flat) модель віртуальної пам'яті процесу, що є лінійним безперервним простором адрес.

Проте, при розмірі сторінки 4 Кбайт таблиця сторінок повинна містити більше 106 елементів і займати 4 Мбайт пам'яті. Для економії пам'яті апаратура трансляції адреси мікропроцесора підтримує таблиці сторінок двох рівнів. Сторінкова таблиця верхнього рівня називається каталогом сторінок. Старші 10 байт 32-розрядного зсуву є номером елементу в сторінковому каталозі. Елемент сторінкового каталога адресує таблицю сторінок другого рівня. Наступні 10 байт зсуву є номером елементу в таблиці сторінок другого рівня. Елемент таблиці другого рівня адресує сторінковий кадр в реальній пам'яті, а молодші 12 байт зсуву є зсувом в сторінці. У 4-Гбайтном адресному просторі з'являється можливість розмістити не тільки коди і дані процесу, але і об'єкти, використовувані їм спільно з іншими процесами, у тому числі і модулі самої ОС. В цьому випадку звернення процесу до ОС відбувається як звернення до процедури, розміщеної в адресному просторі самого процесу. У сучасних ОС структура адресного простору процесу зазвичай буває наступною:

  1. сама молодша частина адресного простору зазвичай для процесу недоступна, вона використовується ОС для підтримки реального режиму; розмір цієї частини адресного простору зазвичай не менше 4 Мбайт, що відповідає одному елементу сторінкового каталога;

  2. далі розміщується приватний адресний простір процесу, що містить його коди, локальні дані, стік;

  3. вище розміщуються "прикладні" загальні області пам'яті, використовувані декількома процесами спільно;

  4. ще вище - системні модулі, що працюють в непривілейованому режимі, ці модулі спільно використовуються всіма процесами;

  5. нарешті, в самій верхній частині розміщуються системні модулі, що працюють в режимі ядра (рівень привілеїв - 0), ці модулі також спільно використовуються.

Більшість розробників застосувань гаряче вітали введення плоскої моделі пам'яті в сучасних ОС (OS/2 Warp, Windows 95, Windows NT), оскільки представлення віртуальної адреси у вигляді одного 32-розрядного слова позбавляє програміста від необхідності розрізняти ближні і дальні покажчики і спрощує програмування. Відмова від сегментної структуризації віртуального адресного простору де в чому обмежує можливості програміста. Велика ж ефективність плоскої моделі пам'яті є об'єктивним чинником, оскільки, по-перше, операція з 32-розрядними адресними словами зменшує число команд в програмі, а по-друге, оскільки в 4-Гбайтном віртуальному адресному просторі процесу можуть бути розміщені і процедури, що реалізовують системні виклики, то звернення процесу до ОС відбуваються як до власних локальних процедур і не вимагають перемикань контексту.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]