Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Віртуальна і реальна пам'ять




Управління пам'яттю

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

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

Ріс.3.1. Функції управління пам'яттю

Функція іменування проводить відображення крапки з простору імен програми в простір адрес у віртуальній пам'яті, іншими словами - переводить символьні імена, використовувані програмістом, у віртуальні адреси.

Функція прив'язки проводить відображення крапки з простору віртуальних адрес в простір реальних адрес, тобто, переводить віртуальні адреси в адреси фізичних елементів пам'яті.

Функція вибірки відображає крапку з простору реальних адрес в значення, тобто, вибирає вміст пам'яті за заданою адресою.

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

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

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

Відзначимо, що іноді віртуальною пам'яттю називають саме ці властивості апаратури обчислювальної системи і витікаючі з них можливості для процесів працювати з віртуальним адресним простором більшого розміру, чим розмір наявної в системі реальної пам'яті. Ми ж слідуємо ширшій інтерпретації [13]: віртуальна пам'ять це те адресний простір, в якому розробляється процес. Таке розуміння відповідає визначенню ОС "з погляду користувача", яке ми дали в розділі 1.4. В даному випадку ОС приховує від процесу організацію низькорівневого ресурсу (реальній пам'яті) і конструює ресурс більш високого рівня, зручніший в обігу. Така інтерпретація не бере до уваги, на якому етапі - завантаження або виконання - проводиться трансляція адрес, і чи є в системі апаратна підтримка цієї трансляції. У окремому випадку розмір віртуальної пам'яті може бути і менше реальною.

У загальному випадку проектування менеджера пам'яті у складі ОС вимагає вибору трьох основних стратегій:

  • стратегії розміщення: яку область реальної пам'яті виділити процесу? як вести облік свободной/занятой реальної пам'яті?
  • стратегії підкачки: коли розміщувати процес (або частина його) в реальній пам'яті?
  • стратегії витіснення: якщо реальної пам'яті не вистачає для задоволення чергового запиту, то у якого процесу відібрати раніше виділений ресурс реальної пам'яті (або частина його)?

Нижче ми розглянемо способи реалізації цих стратегій для різних моделей пам'яті. Порядок розгляду відповідатиме принципу "від простого до складного" і в основному відображати також і історичний розвиток моделей пам'яті:

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



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


Дата добавления: 2014-12-23; Просмотров: 465; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.