У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент


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

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

- обсяг ВАП програми Vv менше обсягу фізичної пам'яті Vp;

- Vv = Vp;

-Vv > Vp.

Перша ситуація, при якій Vv < Vp, нині практично не зустрічається, але проте це реальне співвідношення. Скажемо, не дуже давно 16-розрядні міні-ЕОМ мали систему команд, у яких користувачі-програмісти могли адресувати до 216°(64) До адрес (звичайно в якості адресованій одиниці виступала комірка пам'яті розміром з байт). А фізично старші моделі цих міні-ЕОМ могли мати обсяг ОП в трохи мегабайт. Звертання до пам'яті настільки великого обсягу здійснювалося за допомогою спеціальних регістрів, вміст яких складався з адреси операнда (чи команди), що витягається і/чи обумовленим з поля чи операнда (чи з покажчика команди). Відповідні значення в ці спеціальні регістри, що виступають як базовий зсув у пам'яті, заносила ОС. Для однієї задачі в регістр заносилося одне значення, а для другої третьої, четвертої і т.д. задачі, розташовуваної одночасно з першої, але в іншій області пам'яті, заносилося, відповідно, інше значення. Уся фізична пам'ять, таким чином, розбивалася на розділи обсягом по 64 Кбайт, і на кожен такий розділ здійснювалося відображення свого ВАП.

Ситуація, коли Vv = Vp зустрічалася досить часто, особливо характерна вона була для недорогих обчислювальних комплексів. Для цього випадку мається велика кількість методів розподілу ОП.

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

1.4. Свопінг

Свопінг – алгоритм реалізації віртуальної пам'яті. Його можна розбити на три частини: керування простором на пристрої вивантаження, вивантаження процесів з основної пам'яті і підкачування процесів в основну пам'ять. Як пристрій вивантаження використовують розділ на пристрої типу твердого (swap-partition) чи дисковий файл (swap-file) на такому пристрої.

Свопінг є різновидом ВП.

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

Рис. 18. Залежність завантаження процесора від числа задач і інтенсивності в/в.

З рисунка видно, що для завантаження процесора на 90% досить всього трьох рахункових задач. Однак для того, щоб забезпечити таке ж завантаження інтерактивними задачами, що виконують інтенсивне в/в, будуть потрібні десятки таких задач. Необхідною умовою для виконання задачі є завантаження її в ОП, обсяг якої обмежений. У цих умовах був запропонований метод організації обчислювального процесу, названий свопінгом. Відповідно до цього методу деякі процеси (звичайно знаходяться в стані чекання) тимчасово вивантажуються на диск. Планувальник ОС не виключає їх зі свого розгляду, і при настанні умов активізації деякого процесу, що знаходиться в області свопінга на диску, цей процес переміщається в ОП. Якщо вільного місця в ОП не вистачає, то вивантажується інший процес.

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

2. Оверлейні структури програм

Якщо є необхідність створити програму, логічний (і віртуальний) адресний простір якої має бути більший, ніж вільна область пам’яті, або навіть більший, ніж весь можливий об’єм ОП, то використовують розподіл з перекриттям, так звані оверлейні структури. Цей метод розподілу передбачає, що вся програма може бути розбита на частини – сегменти. Кожна оверлейна програма має одну головну частину (main) і декілька сегментів (segment), при цьому в пам’яті машини одночасно можуть знаходитись тільки її головна частина і один або декілька не перекриваючих сегментів.

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

1) або він сам (якщо даний сегмент непотрібно в зовнішній пам’яті в його текучому стані) звертається до ОС з указівкою який сегмент повинен бути завантажений в пам’ять наступний.

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

3. Методи розподілу пам'яті без використання дискового простору

Усі методи керування пам'яттю можуть бути розділені на два класи: методи, що використовують переміщення процесів між ОП і диском, і методи, що не роблять цього (рис. 19). Почнемо з останнього,


Сторінки: 1 2 3 4 5 6 7 8 9 10 11