Сегментна схема організації віртуальної пам’яті.


Сегментна схема використовується в ОС OS/2.

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

Розглянемо сегментний спосіб організації віртуальної пам’яті у випадку, коли віртуальні адреси складаються з адреси сегменту і зміщення.

Рис. 6.1. Сегментний спосіб організації віртуальної пам’яті.

 

РТДС – регістр таблиці дескрипторів сегментів;

ВА – віртуальна адреса;

S – сегмент;

D – зміщення в середині сегмента;

ТДПЗ – таблиця дескрипторів поточної задачі.

Розглянемо сегментний спосіб організації пам’яті, коли віртуальна адреса складається з адреси сегменту і зміщення всередині цього сегменту.

Кожен сегмент, який розміщується в пам’яті має відповідну інформаційну структуру – яка називається дескриптором сегменту.

ОС будує для кожного сегменту відповідну таблицю дескрипторів і при розміщенні задачі в пам’яті відмічає в тій таблиці розміщення кожного сегменту. Сегменти можуть розміщуватись як в ОЗП, так і на зовнішніх магнітних носіях.

При розміщенні сегменту в ОЗП в цій таблиці встановлюється в 1 спеціальний біт, який показує, що даний сегмент розміщується дійсно в ОЗП. В цьому випадку в поле адрес (в таблиці) записується адреса фізичної пам’яті з якої починається сегмент. В поле довжина (в таблиці) записується кількість комірок пам’яті, які розподілені в цьому сегменті. Поле довжина використовується з двох причин:

·для того, щоб сегменти не перекривалися між собою;

·для того, щоб контролювати чи не звертається поточна виконувана програма за границі свого сегменту.

Також в таблиці дескрипторів міститься інформація про тип сегменту (сегмент даних чи сегмент коду), права доступу до цього сегменту, інформація про звертання до цього сегменту. На основі інформації про звертання до сегменту пам’яті (скільки було звертань і коли було останнє звертання) приймається рішення про звільнення даного сегменту з ОЗП, запису його на зовнішній носій інформації і наданню цієї пам’яті іншому сегменту.

В момент перемикання ОС на виконання іншої задачі вона заносить у відповідний регістр адресу таблиці дескрипторів сегментів поточної задачі. Сама таблиця дескрипторів сегментів розміщується в окремому сегменті пам’яті (оперативній пам’яті), вона є сегментом даних і обробляється диспетчером пам’яті ОС.

Задачі заміщення сторінок фізичної пам’яті вирішуються за допомогою використання таких дисциплін: FIFO (перший прийшов, перший вийшов); LRU (останній з недавно використаних, який найдовше не використовувався); LFU (це той сегмент, який використовувався рідше за всіх); ВВС (випадковий вибір сегментів).

Розглянемо наступні особливості сегментного способу організації віртуальної пам’яті:

· можливість при завантаженні програми на виконання розміщувати її в пам’яті не повністю, а по мірі необхідності. Наприклад, якщо програма має багато розгалужень і в залежності від вхідних даних деякі розгалуження не використовуються вони можуть бути розміщені в окремих сегментах, які в пам’ять можна і не завантажувати;

· окремі програмні модулі можуть бути розділені по функціях, крім того такі сегменти можуть розділятися між програмами. Наприклад, сегмент з кодом, який розділяється між програмами і записується в пам’ять в одному примірнику, а в таблиці дескрипторів сегментів виконуваних задач розміщуються вказівники на ці сегменти.

Недоліком сегментного способу є те, що для отримання доступу до окремої комірки пам’яті потрібно втратити багато часу. Спочатку читається таблиця дескрипторів сегменту, і тільки потім на основі даних з таблиці обчислюється фізична адреса. З метою зменшення часових втрат використовується кешування, тобто сегмент в якому розміщується таблиця дескрипторів записується в надоперативну пам’ять.

Крім втрат від процесорного часу на розміщення і обробку дескрипторів таблиць, час також втрачається на обчислення фізичної адреси шляхом додавання.



Дата добавления: 2016-07-27; просмотров: 1685;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.