Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Krizhanovsky Vm

1,859 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Krizhanovsky Vm

  1. 1. Управление виртуальной памятью в Linux/x86-64 Александр Крижановский
  2. 2. Disclaimer <ul><li>Только о Linux на x86-64
  3. 3. В основном про адресацию и пэйджинг
  4. 4. Не будет buddy alocator , slab allocator и пр. </li></ul>
  5. 5. Содержание <ul><li>Что такое виртуальная память вообще (краткий экскурс)
  6. 6. Управление памятью в Linux
  7. 7. Виртуальная память, адресация и пэйджинг в x86-64
  8. 8. Хак </li></ul>
  9. 9. VM (Overview) <ul><li>Изоляция адресных пространств процессов
  10. 10. Все процессы в системе «видят» памяти больше, чем есть на самом деле
  11. 11. Виртуальность последовательности адресов
  12. 12. Трансляция адресов ( Page Table ) </li></ul>
  13. 13. VM (LRU Page Replacement) add free
  14. 14. VM: поэтому... <ul><li>Когда мало RAM
  15. 15. LRU (Least Recently Used) вытеснение в бэкграунде
  16. 16. Page cache (файлы) и anonymous pages (куча)
  17. 17. Page cache может выжрать всю память — это нормально...
  18. 18. ...поэтому важны clean pages и dirty pages...
  19. 19. ... поэтому не верьте free(1) и top(1) RES
  20. 20. /proc/meminfo (active, inactive ?; pmap не показывает a/i) </li></ul>
  21. 21. VM (kernel threads) <ul><li>kupdate (normal dirty pages synchronizer)
  22. 22. pdflush (page cache?, memory is under presure)
  23. 23. kswapd (anonymous areas?) </li></ul>
  24. 24. X86-64: 48 bit printf(«%#p», addr); $ 0x7fffffffe784 <ul><li>+2 байта на каждый поинтер </li></ul>
  25. 25. Page table
  26. 26. Кэширование (TLB)
  27. 27. Page Table Management <ul><li>Контрольные регистры </li></ul>
  28. 28. Page Table в NUMA (1) <ul><li>AMD Operon MP
  29. 29. IBM x3950 </li></ul>
  30. 30. Page Table в NUMA (2) <ul><li>Контрольные регистры
  31. 31. AMD Operons and IBM x3950 (also NUMA)
  32. 32. numactl/numastat </li></ul>
  33. 33. Хак: дерево деревянное
  34. 34. Хак: что такое Page Fault
  35. 35. Хак: exception handling
  36. 36. Хак: быстро, просто...
  37. 37. Хак: ...тяжело
  38. 38. Ссылки <ul><li>«AMD64 Architecture Programmer's Manual. Vol. 2: System Programming»
  39. 39. Joerg Pommnitz, «Kernel Level Exception Handling in Linux 2.1.8», linux/Documentation/exception.txt
  40. 40. Mel Gorman, «Understanding The Linux Virtual Memory Manger», 2004.
  41. 41. Юреш Вахалия, «UNIX изнутри», 2003
  42. 42. linux/mm, linux/arch etc. </li></ul>

×