
Державний комітет зв’язку та інформатизації України
Львівський коледж Державного університету інформаційно-комунікаційних технологій
Конспект лекцій для самостійної роботи з дисципліни
« Операційні системи»
Львів 2010 р.
Розділ 1. Основи операційних систем
Тема 1.2 Керування локальними ресурсами
Самостійна робота № 3 Методи розподілу пам'яті з використанням дискового простору. Принцип кешування даних
Поняття віртуальної пам'яті. Посторінковий розподіл. Сегментний розподіл.
Ієрархія запам'ятовуючих пристроїв. Свопінг.
План самостійної роботи
Методи розподілу пам'яті з використанням дискового простору
Принцип кешування даних
1 Методи розподілу пам'яті з використанням дискового простору
Поняття віртуальної пам'яті
Користувачі давно зіткнулися з проблемою розміщення в пам'яті програм, розмір яких перевищував вільну пам'ять, що є в наявності. Розвиток методів організації обчислювального процесу в цьому напрямі привів до появи методу, відомого під назвою віртуальна пам'ять. Віртуальним називається ресурс, який користувачеві або призначеній для користувача програмі представляється таким, що володіє властивостями, якими він насправді не володіє. Наприклад, користувачеві може бути надана віртуальна оперативна пам'ять, розмір якої перевершує всю наявну в системі реальну оперативну пам'ять.
Таким чином, віртуальна пам'ять - це сукупність програмно-апаратних засобів, що дозволяють користувачам писати програми, розмір яких перевершує наявну оперативну пам'ять; для цього віртуальна пам'ять вирішує наступні завдання:
розміщує дані в запам'ятовуючих пристроях (ЗП) різного типу;
переміщає в міру необхідності дані між ЗП різного типу;
перетворить віртуальні адреси у фізичні.
Всі ці дії виконуються автоматично, без участі програміста, тобто механізм віртуальної пам'яті є прозорим по відношенню до користувача.
Найбільш поширеними реалізаціями віртуальної пам'яті є сторінковий, сегментний і сторінково-сегментний розподіл пам'яті, а також свопінг.
Сторінковий розподіл
Віртуальний адресний простір кожного процесу ділиться на частини однакового, фіксованого для даної системи розміру - віртуальними сторінками. У загальному випадку розмір віртуального адресного простору не є кратним розміру сторінки, тому остання сторінка кожного процесу доповнюється фіктивною областю.
Вся оперативна пам'ять машини також ділиться на частини такого ж розміру, які називаються фізичними сторінками (або блоками). Розмір сторінки зазвичай вибирається рівним степені двійки: 512, 1024 і так далі, це дозволяє спростити механізм перетворення адрес.
При завантаженні|загрузці| процесу частина|частка| його віртуальних сторінок поміщається в оперативну пам'ять, а останні - на диск. Суміжні віртуальні сторінки не обов'язково розташовуються в суміжних фізичних сторінках. При завантаженні|загрузці| ОС створює для кожного процесу інформаційну структуру - таблицю сторінок, в якій встановлюється відповідність між номерами віртуальних і фізичних сторінок для сторінок, завантажених в оперативну пам'ять, або робиться|чинить| відмітка про те, що віртуальна сторінка вивантажена на диск. Крім того, в таблиці сторінок міститься|утримується| управляюча інформація, така як ознака модифікації сторінки, ознака невивантаженості, ознака звернення до сторінки і інші дані, що формуються і використовувані механізмом віртуальної пам'яті.
При активізації чергового процесу в спеціальний регістр процесора завантажується адреса таблиці сторінок даного процесу.
При кожному зверненні до пам'яті відбувається читання з таблиці сторінок інформації про віртуальну сторінку, до якої відбулося звернення. Якщо дана віртуальна сторінка знаходиться в оперативній пам'яті, то виконується перетворення віртуальної адреси у фізичну. Якщо ж потрібна віртуальна сторінка в даний момент вивантажена на диск, то відбувається так зване сторінкове переривання. Процес, що виконується, переводиться в стан очікування, і активізується інший процес з черги готових. Паралельно програма обробки сторінкового переривання знаходить на диску необхідну віртуальну сторінку і намагається завантажити її в оперативну пам'ять. Якщо в пам'яті є вільна фізична сторінка, то завантаження виконується негайно, якщо ж вільних сторінок немає, то вирішується питання, яку сторінку слід вивантажити з оперативної пам'яті.
У деяких системах використовується поняття робочої множини сторінок. Робоча множина визначається для кожного процесу і є переліком найбільш часто використову-ваних сторінок, які повинні постійно знаходитися в оперативній пам'яті і тому не підлягають вивантаженню.
Після того, як вибрана сторінка, яка повинна покинути оперативну пам'ять, аналізується її ознака модифікації (з таблиці сторінок). Якщо виштовхувана сторінка з моменту завантаження була модифікована, то її нова версія повинна бути переписана на диск. Якщо ні, то вона може бути просто знищена, тобто відповідна фізична сторінка оголошується вільною.
На продуктивність системи із сторінковою організацією пам'яті впливають тимчасові витрати, пов'язані з обробкою сторінкових переривань і перетворенням віртуальної адреси у фізичні.
Сторінковий розподіл пам'яті може бути реалізоване в спрощеному варіанті, без вивантаження сторінок на диск. В цьому випадку всі віртуальні сторінки всіх процесів постійно знаходяться в оперативній пам'яті. Такий варіант сторінкової організації хоча і не надає користувачеві віртуальної пам'яті, але майже виключає фрагментацію за рахунок того, що програма може завантажуватися в несуміжні області, а також того, що при завантаженні віртуальних сторінок ніколи не утворюється залишків.