Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПЗ_лекції.docx
Скачиваний:
148
Добавлен:
23.02.2016
Размер:
136.33 Кб
Скачать

3.Поняття про підкачку даних.

Організація пам’яті у вигляді фіксованих розділів ефективна для роботи з пакетними системами. У випадку систем реального часу чи ПК, орієнтованих на роботу з графікою, оперативної пам’яті інколи не достатньо, і для того, щоб вмістити всі поточні активні процеси, частину з низ зберігають на диску, а для обробки динамічно переносять в пам’ять.

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

Недоліки:

  1. Стискування пам’яті коли є невикористані фрагменти пам’яті.

  2. Ріст області даних і стеку.

Куча – область пам’яті, яка виділяється програмі для динамічно розміщуваних структур даних.

4.Облік використання пам’яті, яка виділяється динамічно

Якщо пам’ять виділяється динамічно, то цим процесом повинна керувати ОС. Існує два способи обліку використання пам’яті:

  1. Бітові масиви (їх інколи називають бітовими картами);

  2. Список вільних ділянок.

При роботі з бітовими масивами пам’ять розділяється на одиничні блоки, розміром від декількох слів до декількох Кбайт. В бітовій карті кожному вільному блоку відповідає 1 біт, що =0, а зайнятому 1 або навпаки. Чим менше одиничний блок, тим більший бітовий масив потрібен. При малому одиничному блоку, що =4-м байтам для 32 біт пам’яті потрібен 1 біт в карті (1/33 частина пам’яті).

Основна проблема, що при цій схемі переміщаючи К-й блочний процес в пам’ять модуль керування пам’яті повинен знайти в бітовій карті серію чи послідовність К-слідуючих один за одним бітів, а це є повільною операцією.

5.Віртуальна пам’ять. Основні поняття.

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

Вирішенням проблеми став метод, відомий як віртуальна пам’ять.

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

6.Віртуальна пам’ять. Сторінкова організація пам’яті.

Більшість систем віртуальної пам’яті використовують техніку, яку називають сторінкова організація пам’яті. На будь-якому комп’ютері існує множина адрес в пам’яті, до яких може звернутись програма. Коли програма використовує наступну інструкцію MOV REG, 1000 вона робить це для того, щоб скопіювати вміст пам’яті за адресою 1000 в REG або навпаки в залежності від ПК. Адреси можуть формуватись з використанням індексації, базових регістрів, сегментних регістрів та іншими шляхами. Ці програмно-формовані адреси називаються віртуальними і вони формують віртуальний адресний простір.

На комп’ютері без віртуальної пам’яті віртуальні адреси подаються безпосередньо на шину пам’яті і викликаються для читання чи запису слова в фізичній пам’яті з цією адресою. Коли використовується віртуальна пам’ять, то віртуальні адреси не передаються на пряму шиною пам’яті. Замість цього вони передаються диспетчеру пам’яті, який відображає віртуальні адреси на фізичні адреси пам’яті (рис.6.3).

Центральний процесор надає віртуальні адреси диспетчеру пам’яті.

Рис.6.3. Розміщення і функції диспетчера пам’яті

Тут диспетчер пам’яті показано як частину процесора тому, що на сучасних комп’ютерах саме так. Але логічно він міг би бути окремо, так як це було раніше.

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

Багато комп’ютерів використовують багаторівневу таблицю сторінок. Це робиться з метою постійного зберігання в пам’яті всіх таблиць сторінок.

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