Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Керування пам'яттю. Функції ОС по керуванню пам'яттю.




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

Особлива роль пам'яті в тім, що процесор може виконувати інструкції програми тільки в тому випадку, якщо вони перебувають у пам'яті.

Пам'ять розподіляється як між модулями прикладних програм, так і між модулями самої операційної системи.

Функціями ОС по керуванню пам'яттю в мультипрограмній системі є:

· відстеження вільної й зайнятої пам'яті;

· виділення пам'яті процесам і звільнення пам'яті по завершенні процесів;

· витиснення кодів і даних процесів з оперативної пам'яті на диск, коли розміри основної пам'яті не достатні для розміщення в ній всіх процесів, і повернення їх в оперативну пам'ять, коли в ній звільняється місце;

· настроювання адрес програми на конкретну область фізичної пам'яті.

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

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

Захист пам'яті — ще одне важливе завдання ОС. Вона полягає в тому, щоб не дозволити виконуваному процесу записувати або читати дані з пам'яті, призначеної іншому процесу.

Типи адрес

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

 

 

 

 


· Символьні іменапривласнює користувач при написанні програми.

· Віртуальні (умовні) адреси, виробляє транслятор, що переводить програму на машинну мову.

· Фізичні адресивідповідають номерам комірок оперативної пам'яті, де в дійсності розташовані змінні й команди.

Сукупність віртуальних адрес називається віртуальним адресний простором.

Діапазон можливих адрес віртуального простору у всіх процесів є тим самим. Проте, кожен процес має власний віртуальний адресний простір - транслятор привласнює віртуальні адреси змінним і кодам кожній програмі незалежно.

У різних ОС використовуються різні способи структуризації адресного простору.

1. Лінійнапослідовності віртуальних адрес. Така структура адресного простору називають також плоскою (flat). При цьому віртуальною адресою є єдине число, що представляє собою зсув відносно початку віртуального адресного простору. Адреса такого типу називають лінійною віртуальною адресою.

2. Віртуальний адресний простір ділиться на частині, називані сегментами. Віртуальна адреса, що представляє собою паричисел (n, m), де nвизначає сегмент, a m — зсув усередині сегмента.

3. Є більш складні способи структуризації, коли віртуальна адреса утворюється трьома (або навіть більше) числами.

Існують два принципово різних підходу до перетворення віртуальних адрес у фізичні.

1. Заміна віртуальних адрес на фізичні виконується один раз для кожного процесу під час початкового завантаження програми на згадку. Виконує це системна програма — переміщючийзавантажник, - на підставі наявних у неї вихідних даних про початкову адресу фізичної пам'яті, а також інформації, наданої транслятором про адресно-звлежні елементи програми, виконує завантаження програми, сполучаючи її із заміною віртуальних адрес фізичними.

2. Програма завантажується на згадку в незміненому виді у віртуальних адресах. При завантаженні ОС фіксує зсув дійсного розташування програмного коду щодо віртуального адресного простору. Під час виконання програми при кожнім звертанні до оперативної пам'яті виконується перетворення віртуальної адреси у фізичну.

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

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

Однак співвідношення обсягів віртуальної й фізичної пам'яті може бути й зворотним.

Варто пам'ятати, що механізми віртуального адресного простору, і віртуальної пам'яті в загальному випадку - це не одне й теж. Можна уявити собі ОС, у якій підтримуються віртуальні адресні простори для процесів, але відсутній механізм віртуальної пам'яті. Це можливо тільки в тому випадку, якщо розмір віртуального адресного простору кожного процесу менше обсягу фізичної пам'яті.

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

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

Тобто віртуальний адресний простір процесу ділиться на дві безперервні частини: системну й користувальницьку. У деяких ОС (наприклад, Windows NT) ці частини мають однаковий розмір - по 2 Гбайта.

Частина віртуального адресного простору кожного процесу, що відводить під сегменти ОС, є ідентичною для всіх процесів. Тому при зміні активного процесу заміняється тільки друга частина віртуального адресного простору. Наприклад, у процесорах Intel Pentium існує два типи системних таблиць: одна - для опису сегментів, загальних для всіх процесів, інша - для опису індивідуальних сегментів даного процесу. При зміні процесу перша таблиця залишається незмінною, а друга - заміняється новою.










Последнее изменение этой страницы: 2018-05-29; просмотров: 241.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...