- •Лабораторна робота № 4 Організація і управління пам’яттю
- •Теоретичні відомості
- •Алгоритми розподілу пам'яті
- •Розподіл пам'яті фіксованими розділами
- •Розподіл пам'яті динамічними розділами
- •Переміщувані розділи
- •Сторінковий розподіл
- •Віртуальна адреса
- •Фізична адреса
- •Сегментний розподіл
- •Логічна адреса
- •Фізична адреса Сегментно-сторінковий розподіл
- •Дескриптор сторінки
- •Варіанти завдань (алгоритмів):
Сторінковий розподіл
Віртуальний адресний простір кожного процесу ділиться на частини однакового, фіксованого для даної системи розміру – віртуальні сторінки.
Вся оперативна пам'ять машини також ділиться на частині такого ж розміру –фізичні сторінки.
Розмір сторінки обирається як ступінь двійки 2k: 512, 1024, 4096 байт і т.д. Це дозволяє спростити механізм перетворення адрес.
Віртуальна адреса
-
Номер віртуальної
сторінки (р)
Зміщення всередині
віртуальної сторінки (dv)
Таблиця сторінок
-
А
трибутиН
омер
фізичної сторінки
-
Номер фізичної
сторінки (n)
Зміщення всередині
фізичної сторінки (df)
Фізична адреса
Для кожного процесу ОС створює таблицю сторінок — інформаційну структуру, що містить записи про всі віртуальні сторінки процесу.
Запис таблиці, названий дескриптором сторінки й включає наступну інформацію:
номер фізичної сторінки, у яку завантажена дана віртуальна сторінка;
ознака присутності, установлюється в одиницю, якщо віртуальна сторінка перебуває в оперативній пам'яті;
ознака модифікації сторінки, що встановлюється в одиницю щоразу, коли здійснюється запис за адресою у даній сторінці;
ознака звертання до сторінки, називана також бітом доступу, що встановлюється в одиницю при кожному звертанні за адресою у даній сторінці.
При кожному звертанні до пам’яті виконується пошук номера віртуальної сторінки, потім по цьому номеру визначається потрібний елемент таблиці сторінок, і з нього витягається інформація, що описує сторінку. Далі аналізується ознака присутності, і, якщо сторінка перебуває в оперативній пам’яті, виконується перетворення віртуальної адреси у фізичну.
Якщо ж потрібна віртуальна сторінка в цей момент вивантажена на диск, то відбувається сторінкове переривання. Виконуваний процес переводиться в стан очікування, і активізується інший процес із черги процесів, що перебувають у стані готовності. Паралельно програма обробки сторінкового переривання знаходить на диску необхідну віртуальну сторінку й намагається завантажити її в оперативну пам’ять. Якщо в пам’яті є вільна фізична сторінка, то завантаження виконується негайно, якщо ж вільних сторінок немає, то на підставі прийнятої в даній системі стратегії заміщення сторінок вирішується питання про те, яку сторінку варто вивантажити з оперативної пам’яті.
Віртуальна адреса при сторінковому розподілі може бути представлена у вигляді пари (р, dv), де p — порядковий номер віртуальної сторінки процесу (нумерація сторінок починається з 0), a dv — зміщення у межах віртуальної сторінки.
Фізична адреса також може бути представлена у вигляді пари (n, df), де n — номер фізичної сторінки, a df — зміщення у межах фізичної сторінки. Завдання підсистеми віртуальної пам’яті складається у перетворенні пари (р, dv) в (n, df).
Оскільки об’єм сторінки обирається як ступінь двійки 2k , зміщення у сторінці s може бути отримано простим відділенням k молодших розрядів у двійковому коді адреси, а номер сторінки визначає решта старших розрядів адреси.
Звідси випливає проста схема перетворення віртуальних адрес у фізичні.
Молодші розряди фізичної адреси, що відповідають зміщенню, знаходять переносом такої ж кількості молодших розрядів з віртуальної адреси. Старші розряди фізичної адреси, що відповідають номеру фізичної сторінки, визначаються з таблиці сторінок.
