Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



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

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

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

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

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

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

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

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

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

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

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

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

 стратегії розміщення: яку область реальної пам'яті виділити процесу? як вести облік свободной/занятой реальної пам'яті?

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

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

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

 фіксовані розділи - модель, що не використовує апаратну трансляцію адрес;

 односегментная віртуальна пам'ять - розвиток фіксованих розділів для апаратної трансляції адрес.

 моделі віртуальної пам'яті, що використовують розвинені засоби апаратної трансляції адрес;

o багатосегментна;

o сторінкова;

o комбінована сегментно-сторінкова.

 моделі віртуальної пам'яті, що є поверненням до простих моделей, але на більш високому рівні:

o плоска;

o одноуровневая.





Переглядів: 956

<== попередня сторінка | наступна сторінка ==>
Принцип забезпечення безпеки обчислень. | Фіксовані розділи

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.003 сек.