Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Організація памяті. .docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
254 Кб
Скачать
☆

Зв'язування адрес

Отже логічні й фізичні адресні простори ні по організації, ні по розмірі не відповідають один одному. Максимальний розмір логічного адресного простору звичайно визначається розрядністю процесора (наприклад, 232) і в сучасних системах значно перевищує розмір фізичного адресного простору. Отже, процесор й ОС повинні бути здатні відобразити посилання в коді програми в реальні фізичні адреси, що відповідають поточному розташуванню програми в основній пам'яті. Таке відображення адрес називають трансляцією (прив'язкою) адреси або зв'язуванням адрес (див. рис. 8.3). Зв'язування логічної адреси, породженого оператором програми, з фізичним повинне бути здійснене до початку виконання оператора або в момент його виконання. Таким чином, прив'язка інструкцій і даних до пам'яті в принципі може бути зроблена на наступних кроках [Silberschatz, 2002].

  1. Етап компіляції (Compile time). Коли на стадії компіляції відомо точне місце розміщення процесу в пам'яті, тоді безпосередньо генеруються фізичні адреси. При зміні стартової адреси програми необхідно перекомпілювати її код. Як приклад можна привести .com програми MS-DOS, які зв'язують її з фізичними адресами на стадії компіляції.

  2. Етап завантаження (Load time). Якщо інформація про розміщення програми на стадії компіляції відсутня, компілятор генерує переміщуваний код. У цьому випадку остаточне зв'язування відкладається до моменту завантаження. Якщо стартова адреса міняється, потрібно всього лише перезавантажити код з урахуванням зміненої величини.

Рис. 8.3. Формування логічної адреси й зв'язування логічної адреси з фізичним

  1. Етап виконання (Execution time). Якщо процес може бути переміщений під час виконання з однієї області пам'яті в іншу, зв'язування відкладається до стадії виконання. Тут бажана наявність спеціалізованого встаткування, наприклад регістрів переміщення. Їхнє значення додається до кожної адреси, з генерованому процесом. Більшість сучасних ОС здійснює трансляцію адрес на етапі виконання, використовуючи для цього спеціальний апаратний механізм (див. лекцію 9).

Функції системи керування пам'яттю

Щоб забезпечити ефективний контроль використання пам'яті, ОС повинна виконувати наступні функції:

  1. відображення адресного простору процесу на конкретні області фізичної пам'яті;

  2. розподіл пам'яті між конкуруючими процесами;

  3. контроль доступу до адресних просторів процесів;

  4. вивантаження процесів (цілком або частково) у зовнішню пам'ять, коли в оперативній пам'яті недостатньо місця;

  5. облік вільної й зайнятої пам'яті.

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