Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Sam_R_OS.doc
Скачиваний:
2
Добавлен:
19.11.2019
Размер:
5.27 Mб
Скачать

Керування пам'яттю

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

Типи адрес

Для ідентифікації перемінних i команд використовують символьні імена (мітки), віртуальні i фізичні адреси (малюнок 2.7).

Символьні iмeнa привласнює користувач, при написанні програми алгоритмічною мовою або на ассемблері.

Віртуальні адреси виробляє транслятор, що переводить програму на мову машинни. Оскільки під час трансляції не відомо, у яке місце оперативної пам'яті буде завантажена програма, транслятор привласнює перемінні та віртуальні (умовні) адреси, звичайно, вважаючи за замовчування те, що програма буде розміщена, починаючи з нульової адреси. Сукупність віртуальних адрес процесу називають віртуальним адресним простором. Кожен процес має власний віртуальний адресний пpocтip. Максимальний poзмip віртуального адресного простору обмежується розрядністю адреси, властивій даній apxiтeктypi комп'ютера i, як правило, не збігається з обсягом фізичної пам'яті, що є в комп'ютері.

Фізичні адреси відповідають номерам осередків оперативної пам'яті, де в дійсності будуть розташовані перемінні i команди. Перехід від віртуальних адрес до фізичних може здійснюватися двома способами. У першому випадку заміну віртуальних адрес на фізичні робить спеціальна системна програма - завантажник. Завантажник, на підставі наявних у нього вихідних даних про початкову адресу фізичної пам'яті, у яку має бути завантаженна програма, й інформації, наданої транслятором про константи програми, виконує завантаження програми, сполучаючи її, із заміною віртуальних адрес фізичними.

Мал. 2.7. Типи адрес

Другий спосіб полягає в тому, що програма завантажується в пам'ять у незміненому вигляді з віртуальними адресами, при цьому операційна система фіксує зсув дійсного розташування програмного коду щодо віртуального адресного простору. Під час виконання програми, при кожному звертанні до оперативної пам'яті, відбувається перетворення віртуальної адреси у фізичну. Другий cпociб є гнучішим, він допускає переміщення програми під час її виконання, у той час як переміщає завантажувач жорстко прив'язує програму до початку виділеному їй на ділянці пам'яті. Разом з тим, використання завантажника, що переміщує, зменшує накладні витрати, тому що перетворення кожної віртуальної адреси відбувається тільки один раз під час завантаження, а в іншому випадку - щораз при звертанні за даною адресою.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]