Все буде Україна!

Управління пам’яттю в Linux. Фізична та Віртуальна пам’ять

  Юрій  | 

  Оновл. 30 Тра 2022  | 

 69

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

Що таке фізична пам’ять?

Фізична пам’ять (або RAM”, “оперативка”) — це енергозалежна пам’ять, встановлена на комп’ютері. Ця пам’ять є лінійно адресованою, тобто значення адрес пам’яті збільшуються лінійно.

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

Що таке віртуальна пам’ять?

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

Фізична пам’ять vs. Віртуальна пам’ять

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

Фізична пам’ять Віртуальна пам’ять
Безпосередньо встановлена на комп’ютері оперативна пам’ять. Метод управління пам’яттю, за допомогою якого для програм створюється ілюзія наявності у системі більшого обсягу фактично встановленої (фізичної) пам’яті.
Працює швидше. Працює повільніше.
Обмежена розміром чіпу оперативки. Обмежена розміром жорсткого диску.
Може напряму звертатися до процесора. Не може напряму звертатися до процесора.
Використовує swapping. Використовує paging.

Розглянемо дані пункти:

#1: Тип пам’яті:

   Фізична пам’ять є фактичною пам’яттю.

   Віртуальна пам’ять є логічною пам’яттю.

#2: Швидкість:

   Фізична пам’ять швидше віртуальної пам’яті.

#3: Розмір:

   Фізична пам’ять обмежена розміром чіпу оперативки.

   Віртуальна пам’ять обмежена розміром жорсткого диску.

#4: Процесор:

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

#5: Методи, які лежать в основі:

   Фізична (оперативна) пам’ять використовує swapping. Swapping — це концепція управління пам’яттю, при якій щоразу, коли системі для зберігання даних деякого процесу не вистачає оперативної (фізичної) пам’яті, вона бере її з вторинного сховища (наприклад, жорсткого диска), скидаючи на нього дані, що тимчасово не використовуються. У Linux є спеціальна програма управління пам’яттю, яка керує цим процесом. Щоразу, коли оперативці не вистачає пам’яті, програма управління пам’яттю шукає всі ті неактивні блоки даних (сторінки), присутні в оперативці, які не використовувалися протягом тривалого часу. Коли вона успішно знаходить подібні блоки, то переміщує їх у пам’ять підкачки (наприклад, на жорсткий диск). Таким чином звільняється простір оперативної пам’яті, який можна використовувати для інших програм, які потребують термінової обробки.

   Віртуальна пам’ять використовує paging. Paging — це спосіб виділення пам’яті, у якому різним несуміжним блокам пам’яті призначається фіксований розмір. Розмір зазвичай становить 4 КБ. Paging завжди виконується між активними сторінками (pages).

Команди управління пам’яттю в Linux

Давайте розглянемо деякі команди управління пам’яттю в Linux.

Файл /proc/meminfo

Файл /proc/meminfo містить всю інформацію, пов’язану з пам’яттю. Для перегляду даного файлу використовується команда cat:

$ cat /proc/meminfo

Ця команда виводить багато параметрів, пов’язаних із пам’яттю. Щоб отримати інформацію про фізичну пам’ять із файлу /proc/meminfo, використовуйте:

$ grep MemTotal /proc/meminfo

Щоб отримати інформацію про віртуальну пам’ять із файлу /proc/meminfo, використовуйте:

$ grep VmallocTotal /proc/meminfo

Команда top

Команда top дозволяє відслідковувати процеси та використання системних ресурсів у Linux у режимі реального часу. Коли ви запустите команду, то помітите, що значення вихідних даних продовжують змінюватися з деяким невеликим інтервалом:

$ top

У верхній частині відображається статистика використання системних ресурсів. Нижня частина містить інформацію про запущені процеси. Ви можете пересуватися вгору та вниз за списком за допомогою клавіш зі стрілочками вгору/вниз та використовувати q для виходу.

Команда free

Команда free відображає обсяг вільної та використовуваної пам’яті в системі.

$ free

Значення для кожного поля вказані в кібібайтах (КіБ).

Щоб отримати вивід у читабельнішому форматі, використовуйте:

$ free -h

Команда vmstat

Команда vmstat — це інструмент моніторингу продуктивності в Linux, який надає корисну інформацію про процеси, пам’ять, операції вводу-виводу, підкачку, диск і планування процесора, а також наводить статистику використання віртуальної пам’яті вашої системи.

$ vmstat

Оцінити статтю:

1 Зірка2 Зірки3 Зірки4 Зірки5 Зірок (2 оцінок, середня: 5,00 з 5)
Loading...

Залишити відповідь

Ваш E-mail не буде опублікований. Обов'язкові поля відмічені *