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