Пам'ять Linux: Принцип роботи

Пам'ять Linux: Принцип роботи

10:58, 01.12.2023

Зміст статті
arrow

  • Методи керування підсистемою пам'яті
  • Адресний простір процесів
  • Область пам'яті
  • Відкладене виділення

Методи керування підсистемою пам'яті

Керування пам'яттю має вирішальне значення для продуктивності системи у Linux,

Методами розподілу пам'яті у Linux є bootmem (початковий базовий розподільник), buddy (розподіл суміжних фреймів сторінок), vmalloc (робота з несуміжними областями фізичної пам'яті) і kmemcache (розподіл невеликих об'єктів у межах фреймів сторінок). Ці розподільники служать для різних цілей, від початкового завантаження до обробки різних потреб у розподілі пам'яті.

NUMA (Non-Uniform Memory Access - нерівномірний доступ до пам'яті) у багатопроцесорних системах - ще один аспект, яким ефективно керує Linux. Він відповідає за оптимізацію доступу до пам'яті на основі фізичної близькості пам'яті до процесорів, підвищуючи продуктивність.

Керування пам'яттю користувача

Запити alloc_pages() та kmalloc() призводять до негайного виділення пам'яті, оскільки ядро є найбільш довіреним компонентом системи.

Адресний простір процесів

Адресний простір процесу - це лінійні адреси, до яких звертаються процеси.

Процес отримує доступ до нових ділянок пам'яті через виклики: malloc(), calloc(), mmap(), brk(), shmget() + shmat(), posix_memalign(), mmap() на основі void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset).

Дескриптор пам'яті

mm_struct, дескриптор пам'яті, містить всю інформацію про адресний простір.

Область пам'яті

Пам'ять поділяється на два поля - vm_start і vm_end. Вони позначають адресу початку та першого біта після кінця виділеної області.

Всі області з'єднуються у двонаправлений список, де вони впорядковані за зростанням адрес.

Лінійний розподіл інтервалу адрес

Лінійні адреси, що виділяються, або пов'язані з файлом (FILE), або ні (ANON), при цьому процес, що запитує пам'ять, може ділитися ними з іншими процесами або мати приватний доступ до них.

(MAP_SHARED або MAP_PRIVATE).

Відкладене виділення

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

views 22s
views 2
Поділитися

Чи була ця стаття корисною для вас?

Популярні пропозиції VPS

Інші статті на цю тему

cookie

Чи приймаєте ви файли cookie та політику конфіденційності?

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