Лекція 8 Керування оперативною пам'яттю у процесорах архітектури х86


НазваЛекція 8 Керування оперативною пам'яттю у процесорах архітектури х86
Дата конвертації02.04.2013
Розмір445 b.
ТипЛекція


Операційні системи

  • Лекція 8

  • Керування оперативною пам'яттю у процесорах архітектури х86


План лекції

  • Системні таблиці і регістри системних адрес

  • Селектор і дескриптор сегмента

  • Захист сегментів

  • Завантаження селектора у сегментний регістр

  • Звернення до пам’яті

  • Сторінковий механізм керування пам'яттю



Керування пам'яттю у процесорах архітектури х86

  • У захищеному режимі підтримується сегментний і сегментно-сторінковий розподіл пам'яті

  • Сторінкове перетворення включається або відключається окремим прапорцем у регістрі керування процесором cr0

  • Максимальний розмір сегмента – 4 ГБ

  • У 16-розрядні сегментні регістри процесора завантажуються селектори, які вказують на дескриптори сегментів

    • cs – сегмент коду
    • ss – сегмент стека
    • ds, es, fs, gs – сегменти даних
  • Дескриптори містяться у спеціальних системних таблицях, на які вказують регістри системних адрес

  • У дескрипторах містяться:

    • базова адреса сегмента
    • межа (розмір) сегмента
    • правила доступу до сегмента


Системні таблиці і регістри системних адрес

  • Регістри системних адрес містять покажчики на системні таблиці, призначені для керування пам’яттю та диспетчеризації процесів

  • Доступ до сегментів у пам'яті здійснюється через дескриптори

  • Дескриптори містяться у двох таблицях, доступних процесу

    • Глобальна таблиця дескрипторів (Global Descriptor Table, GDT)
      • Містить дескриптори, що описують програмний код і дані, спільні для усіх процесів (наприклад, бібліотеки, драйвери пристроїв, тощо), а також численні системні об'єкти
      • На цю таблицю вказує регістр gdtr
    • Локальна таблиця дескрипторів (Local Descriptor Table, LDT)
      • Доступна лише тому процесу, який виконується в даний момент
      • Кожний процес має свою власну локальну таблицю
      • На цю таблицю вказує регістр ldtr


Системні таблиці і регістри системних адрес

  • Обробники переривань доступні через таблицю дескрипторів переривань (Interrupt Descriptor Table, IDT)

    • На неї вказує регістр idtr
  • Контекст процесу знаходиться у спеціальному системному об'єкті, що називається сегментом стану задачі (Task Status Segment, TSS)

    • Цей об'єкт описується дескриптором, на який вказує регістр ts
  • Сегменти, що вказують на глобальні системні об'єкти (gdtr та idtr) містять базові лінійні адреси цих об'єктів, а також задають розмір об'єктів

  • Сегменти, що вказують на локальні для кожного процесу об'єкти (ldtr та tr) містять лише селектори, які адресують відповідні дескриптори у глобальній таблиці

    • Таким чином, таблиця GDT містить дескриптори, що описують сегменти стану задач і локальні таблиці дескрипторів усіх процесів, що виконуються в системі
    • Для переходу до виконання іншого процесу необхідно просто завантажити у регістри ldtr та tr відповідні дескриптори


Системні таблиці і регістри системних адрес



Селектор сегмента

  • Селектор – це 16-розрядна структура, яка завантажується в сегментні регістри

  • Селектор адресує не сам сегмент, а його дескриптор

  • 13 старших розрядів селектора є індексом в таблиці дескрипторів

    • Таким чином, кожна таблиця може містити 213=8192 дескрипторів
  • Один розряд селектора (біт 2), який позначається як прапорець TI, вказує в якій з таблиць знаходиться дескриптор

    • TI==0 GDT
    • TI==1 LDT
  • Останні 2 розряди селектора (біти 1,0) відведені для задавання рівня привілеїв (Requested Privilege Level, RPL), який використовується механізмом захисту



Дескриптор сегмента

  • Дескриптор сегмента є 8-байтовою структурою

  • Головні поля дескриптора:

    • 32-розрядна базова адреса (base)
    • 20-розрядна межа сегмента (limit) – визначає розмір сегмента в залежності від прапорця гранулярності G:
      • G==0  розмір у байтах (максимальний розмір сегмента 1 МБ)
      • G==1  розмір у 4-кБ сторінках (максимальний розмір сегмента – 4 ГБ)
    • Байт захисту (AR)
    • Прапорець розрядності (D):
      • D==0  16-розрядні операнди і режими 16-розрядної адресації
      • D==1  32-розрядні операнди і режими 32-розрядної адресації


Байт захисту

  • Розряд 7 (PPresent) показує наявність сегмента у пам'яті

  • Розряди 5 і 6 (DPLDescriptor Privilege Level) визначають рівень привілеїв дескриптора

  • Розряд 4 (SSystem / Segment) визначає, чи є об’єкт, який описує цей дескриптор, сегментом у пам’яті чи спеціальним системним об’єктом

  • Розряди 1 – 3 визначають тип сегмента і права доступу до нього

    • Розряд 3 (EExecutable)
    • Розряд 2
      • Для сегментів коду – біт підпорядкованості (CConforming)
      • Для сегментів даних – біт розширення вниз (EDExpand Down)
    • Розряд 1
      • Для сегментів коду – дозвіл на зчитування (RReadable)
      • Для сегментів даних – дозвіл на записування (WWritable)
  • Розряд 0 (AAccessed) встановлюється при доступі до сегмента



Значення поля типу сегмента



Завантаження селектора у сегментний регістр

  • Якщо у селекторі TI == 0, то дескриптор міститься в GDT

    • З регістру gdtr визначають базову адресу і розмір таблиці GDT
    • За індексом вибирають з GDT потрібний дескриптор
    • Перевіряють, чи не виходить дескриптор (з урахуванням його розміру – 8 байтів) за встановлену межу таблиці GDT. В разі виходу за межу – виняткова ситуація 11
    • Перевіряють сумісність типу дескриптора і достатність привілеїв для доступу до нього. Якщо щось не так – виняткова ситуація 13
  • Якщо у селекторі TI == 1, то дескриптор міститься в LDT

    • З регістру gdtr визначають базову адресу і розмір таблиці GDT
    • З таблиці GDT вибирають дескриптор, що описує таблицю LDT, для чого в якості селектора використовують вміст регістру ldtr
    • Перевіряють, чи відповідає тип дескриптора таблиці дескрипторів і чи присутня таблиця у фізичній пам’яті
    • З дескриптора таблиці LDT визначають базову адресу таблиці та її межу
    • Далі здійснюють операцію вибору з таблиці необхідного дескриптора, яка аналогічна операції вибору дескриптора з таблиці GDT, з тими ж перевірками.


Дозволені комбінації бітів байту захисту дескриптора при завантаженні селектора у сегментний регістр



Перетворення адрес за сегментного розподілу пам'яті

  • дескриптор сегмента знаходиться у таблиці GDT



Перетворення адрес за сегментного розподілу пам'яті

  • дескриптор сегмента знаходиться у таблиці LDT



Звернення до пам’яті

  • Перевіряють дозвіл на операцію

  • Перевіряють коректність доступу (відсутність виходу за межу сегмента)

    • Сегмент стека зростає в бік молодших адрес, і обчислена адреса повинна бути не меншою за межу сегмента
    • Сегменти коду і даних зростають у бік старших адрес, тому до обчисленої адреси додається розмір даних, і отримана адреса повинна бути не більшою за межу сегмента
  • Дозволені комбінації бітів байту захисту:



Сторінковий механізм керування пам'яттю

  • Лінійна адреса є 32-розрядною, старші 20 розрядів інтерпретуються як номер сторінки, а молодші 12 – як зміщення в сторінці

  • Номер сторінки інтерпретується як індекс дескриптора сторінки, а з дескриптора визначається номер сторінки у фізичній пам’яті



Регістри, що забезпечують сторінковий механізм



Схожі:

Лекція 8 Керування оперативною пам\Лекція 9 Керування оперативною пам'яттю в ос linux І Windows
Ядро системи практично не застосовує засобів підтримки сегментації, які надає процесор х86
Лекція 8 Керування оперативною пам\Лекція 7 Керування оперативною пам'яттю
Витіснення процесів з оперативної пам'яті на диск і повернення їх в оперативну пам'ять (віртуальна пам’ять)
Лекція 8 Керування оперативною пам\Руйнують пам'ятники архітектури Руйнують пам'ятники архітектури
Стоншення озонового шару приводить до збільшення впливу ультрафіолетового випромінювання Сонця на живі організми
Лекція 8 Керування оперативною пам\Учіться користуватися своєю пам’яттю поради для забудькуватих учнів І не тільки для такових вступне слово
Учіться користуватися своєю пам’яттю поради для забудькуватих учнів І не тільки для такових
Лекція 8 Керування оперативною пам\Комп'ютер це електронний пристрій, що виконує операції введення інформації, зберігання та оброблення її за певною програмою, виведення одержаних результатів у формі, придатній для сприйняття людиною. Комп'ютер
В постійній пам'яті дані можуть зберігатися навіть при вимкненому комп'ютері, проте швидкість обміну даними між постійною пам'яттю...
Лекція 8 Керування оперативною пам\Пам’ятки архітектури україни (кінець X – початок xxст.) Романський стиль x-xiiст

Лекція 8 Керування оперативною пам\Наша Батьківщина має надзвичайно багату культурно-історичну спадщину. Кожна епоха залишає нам у спадщину пам’ятку архітектури чи історії, що зберігає в собі згадку про певну визначну подію,
Кожна епоха залишає нам у спадщину пам’ятку архітектури чи історії, що зберігає в собі згадку про певну визначну подію, що, можливо,...
Лекція 8 Керування оперативною пам\Лекція 10 Керування введенням-виведенням

Лекція 8 Керування оперативною пам\Простота Простота Стійкість
Дві з головних причин відмови програми: помилки управління пам'яттю (Java забезпечує збірку «сміття» для невикористаних об'єктів)...
Лекція 8 Керування оперативною пам\Архітектура України ХІ-ХХ століття Спаський собор у Чернігові ХІ століття Найдавніша пам’ятка архітектури


Додайте кнопку на своєму сайті:
dok.znaimo.com.ua


База даних захищена авторським правом ©dok.znaimo.com.ua 2013
звернутися до адміністрації
dok.znaimo.com.ua
Головна сторінка