logo
СПЗ_лекції

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

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

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

Недоліки:

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

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

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

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

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

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

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

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

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