Krizhanovsky Vm

1,832 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,832
On SlideShare
0
From Embeds
0
Number of Embeds
926
Actions
Shares
0
Downloads
39
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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>

×