Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Логічна пам'ять



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

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

Мабуть, спочатку сегменти пам'яті з'явилися у зв'язку з необхідністю усуспільнення процесами фрагментів програмної коди (текстовий редактор, тригонометричні бібліотеки і т. д.), без чого кожен процес повинен був зберігати в своєму адресному просторі дублюючу інформацію. Ці окремі ділянки пам'яті, що зберігають інформацію, яку система відображає в пам'ять декількох процесів, отримали назву сегментів. Пам'ять, таким чином, перестала бути лінійною і перетворилася на двовимірну. Адреса складається з двох компонентів: номер сегменту, зсув усередині сегменту. Далі виявилося зручним розміщувати в різних сегментах різні компоненти процесу (код програми, дані, стік і т. д.). Попутно з'ясувалося, що можна контролювати характер роботи з конкретним сегментом, приписавши йому атрибути, наприклад права доступу або типи операцій, які дозволяється проводити з даними, що зберігаються в сегменті.

Рис. 9.2. Розташування сегментів процесів в пам'яті комп'ютера

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

Більшість сучасних ОС підтримують сегментну організацію пам'яті. У деякій архітектурі (Intel, наприклад) сегментація підтримується устаткуванням.

Адреси, до яких звертається процес, таким чином, відрізняються від адрес, що реально існують в оперативній пам'яті. У кожному конкретному випадку використовувані програмою адреси можуть бути представлені різними способами. Наприклад, адреси в початкових текстах зазвичай символічні. Компілятор пов'язує ці символічні адреси з переміщуваними адресами (такими, як n байт від початку модуля). Подібна адреса, що згенерувала програмою, зазвичай називають логічною (у системах з віртуальною пам'яттю він часто називається віртуальним) адресою. Сукупність всіх логічних адрес називається логічним (віртуальним) адресним простором.





Дата публикования: 2014-11-04; Прочитано: 443 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...