کتاب ساخت جمعآوریکنندههای زباله پیشرفته (Garbage Collectors): از مدلسازی دقیق تا پیادهسازی بهینه حافظه با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
ساخت جمعآوریکنندههای زباله پیشرفته: از مدلسازی دقیق تا پیادهسازی بهینه حافظه ساخت جمعآوریکنندههای زباله پیشرفته: از مدلسازی دقیق تا پیادهسازی بهینه حافظه آیا به دنبال ارتقای مهارتهای خود در...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره ساخت جمعآوریکنندههای زباله پیشرفته (Garbage Collectors): از مدلسازی دقیق تا پیادهسازی بهینه حافظه
موضوع کلی: معماری و مهندسی سیستمهای نرمافزاری
موضوع میانی: اصول انتزاع، مشخصهسازی و پیادهسازی در طراحی سیستم
📋 سرفصلهای دوره
- 1. مقدمهای بر مدیریت حافظه و چالشهای آن
- 2. مدیریت حافظه دستی (Manual) در مقابل خودکار (Automatic)
- 3. مفاهیم پایه: شیء (Object)، اشارهگر (Pointer) و مجموعه ریشهها (Root Set)
- 4. تعریف دسترسیپذیری (Reachability) و مفهوم زباله
- 5. مدل حافظه: Heap، Stack و دادههای استاتیک
- 6. متدولوژی ASI: انتزاع، مشخصهسازی و پیادهسازی
- 7. چرا مدلسازی انتزاعی در طراحی GC حیاتی است؟
- 8. معیارهای کلیدی یک جمعآورنده زباله: ایمنی، کامل بودن و کارایی
- 9. فضای طراحی (Design Space) در جمعآورندههای زباله
- 10. تخصیصدهندههای حافظه (Allocators) و نقش آنها
- 11. چالش پراکندگی حافظه (Memory Fragmentation): داخلی و خارجی
- 12. اثرات توقفهای GC (GC Pauses) بر عملکرد سیستم
- 13. معرفی یک زبان مدلسازی ساده برای مشخصهسازی
- 14. تاریخچه و تکامل تکنیکهای جمعآوری زباله
- 15. نمای کلی دوره و نقشه راه یادگیری
- 16. بخش انتزاع و مدلسازی (Abstraction and Modeling)
- 17. مدلسازی انتزاعی سیستم حافظه
- 18. نمایش حافظه به عنوان یک گراف اشیاء (Object Graph)
- 19. مدلسازی انتزاعی تغییردهنده (Mutator) و جمعآورنده (Collector)
- 20. تعریف رسمی زباله: اشیاء غیرقابل دسترس
- 21. مدلسازی وضعیت سیستم: تخصیص، تغییر اشارهگر، جمعآوری
- 22. عملیات پایه در مدل انتزاعی: New, Read, Write, Collect
- 23. حالتهای انتزاعی اشیاء: سیاه، سفید، خاکستری (Tri-color Abstraction)
- 24. مدلسازی گراف دسترسیپذیری و تغییرات آن
- 25. انتزاع مفهوم "زمان" و "اتمیسیته" در عملیات حافظه
- 26. انتزاع مفهوم ریشه (Root Set) و انواع آن
- 27. مدلسازی تخصیص حافظه به عنوان یک تابع حالت
- 28. مدلسازی حافظه آزاد (Free Memory) و ساختارهای آن
- 29. انتزاعهای مختلف برای حافظه: فضای پیوسته در مقابل فضای تقسیمشده
- 30. چالشهای مدلسازی در سیستمهای همزمان (Concurrent)
- 31. استفاده از تئوری گراف برای تحلیل مدل انتزاعی
- 32. بخش مشخصهسازی و درستی (Specification and Correctness)
- 33. اصول درستی (Correctness) در جمعآوری زباله
- 34. ویژگیهای ایمنی (Safety) و پویایی (Liveness)
- 35. اصل اساسی ایمنی: "هیچ شیء قابل دسترسی نباید جمعآوری شود"
- 36. اصل اساسی پویایی: "هر شیء غیرقابل دسترسی در نهایت جمعآوری میشود"
- 37. تعریف ناورداها (Invariants) برای یک جمعآورنده صحیح
- 38. مشخصهسازی عملیات تخصیص با پیششرط و پسشرط
- 39. مشخصهسازی عملیات بهروزرسانی اشارهگر
- 40. اثبات درستی با استفاده از ناورداهای مدل سهرنگ
- 41. روشهای صوری (Formal Methods) برای اثبات درستی GC
- 42. مشخصهسازی یک جمعآورنده ایدهآل (Oracle GC)
- 43. تعریف مشخصات برای الگوریتم Mark-Sweep
- 44. تعریف مشخصات برای الگوریتمهای کپیکننده
- 45. تعریف مشخصات برای شمارش ارجاع
- 46. رابطه انتزاعی (Abstraction Relation) بین پیادهسازی و مشخصهسازی
- 47. اثبات اینکه پیادهسازی، مشخصات را برآورده میکند
- 48. الگوریتمهای کلاسیک جمعآوری زباله (Classic Algorithms)
- 49. الگوریتم Mark-Sweep: فاز نشانهگذاری (Marking Phase)
- 50. الگوریتم Mark-Sweep: فاز جارو کردن (Sweeping Phase)
- 51. پیادهسازی لیستهای آزاد (Free Lists) در Mark-Sweep
- 52. تحلیل Mark-Sweep: پراکندگی حافظه و هزینه زمانی
- 53. بهینهسازی Mark-Sweep: الگوریتم Mark-Compact
- 54. الگوریتمهای کپیکننده (Copying Collectors): مدل Semi-Space
- 55. پیادهسازی الگوریتم Cheney برای کپی کردن
- 56. تحلیل الگوریتمهای کپیکننده: مزایا و معایب
- 57. الگوریتم شمارش ارجاع (Reference Counting)
- 58. پیادهسازی شمارندهها و عملیات افزایش/کاهش
- 59. چالش دورهای ارجاع (Reference Cycles) در شمارش ارجاع
- 60. تکنیکهای شناسایی و شکستن دورهای ارجاع
- 61. مقایسه عملکرد و ویژگیهای الگوریتمهای کلاسیک
- 62. انتخاب الگوریتم مناسب بر اساس نیازمندیهای سیستم
- 63. جمعآورندههای نسلی (Generational Collectors)
- 64. فرضیه نسلی ضعیف (Weak Generational Hypothesis)
- 65. معماری جمعآورندههای نسلی: نسل جوان و نسل پیر
- 66. فضای نسل جوان (Young Generation): Eden و فضاهای Survivor
- 67. فرآیند Minor GC و ارتقاء اشیاء (Promotion)
- 68. چالش اشارهگرهای بین نسلی (Inter-generational Pointers)
- 69. موانع نوشتن (Write Barriers) و کاربرد آنها
- 70. پیادهسازی موانع نوشتن: Card Marking
- 71. مجموعههای به یاد سپرده شده (Remembered Sets)
- 72. فرآیند Major GC و جمعآوری نسل پیر
- 73. تنظیم اندازه نسلها و سیاستهای ارتقاء
- 74. تحلیل عملکرد جمعآورندههای نسلی
- 75. جمعآورندههای پیشرفته: همزمانی و موازیسازی (Advanced: Concurrency and Parallelism)
- 76. تفاوت بین جمعآوری زباله موازی (Parallel) و همزمان (Concurrent)
- 77. جمعآوری موازی: تسریع فازهای توقف (Stop-the-World)
- 78. الگوریتم نشانهگذاری سهرنگ (Tri-color Marking) به عنوان پایه همزمانی
- 79. نقاط امن (Safepoints) و مکانیزمهای توقف برنامه
- 80. چالشهای همزمانی: مسابقه داده (Data Race) بین Mutator و Collector
- 81. موانع نوشتن برای حفظ ناورداهای سهرنگ
- 82. پیادهسازی مانع نوشتن به سبک Dijkstra
- 83. پیادهسازی مانع نوشتن به سبک Yuasa
- 84. الگوریتمهای مبتنی بر Snapshot-at-the-Beginning (SATB)
- 85. الگوریتمهای مبتنی بر بهروزرسانی تدریجی (Incremental Update)
- 86. جمعآورندههای تدریجی (Incremental Collectors)
- 87. جمعآورندههای عمدتاً همزمان (Mostly Concurrent Collectors)
- 88. جمعآورندههای بدون توقف (Pauseless/Lock-Free)
- 89. پیادهسازی عملی و یکپارچهسازی با سیستم (Practical Implementation and System Integration)
- 90. تعامل جمعآورنده زباله با کامپایلر و سیستمعامل
- 91. طراحی تخصیصدهندههای حافظه سریع (Fast Allocators)
- 92. بافرهای تخصیص محلی رشته (Thread-Local Allocation Buffers - TLABs)
- 93. ساختار دادههای داخلی GC: Bitmapها، جداول کارت و غیره
- 94. مدیریت حافظه برای اشیاء بزرگ (Large Object Space)
- 95. اشارهگرهای فشرده (Compressed Pointers)
- 96. اشکالزدایی (Debugging) و پروفایل کردن (Profiling) جمعآورندهها
- 97. ابزارهای تحلیل حافظه و شناسایی نشت حافظه (Memory Leaks)
- 98. معیارهای اندازهگیری عملکرد: توان عملیاتی (Throughput) و تأخیر (Latency)
- 99. پارامترهای قابل تنظیم (Tunable Parameters) در GCهای مدرن
- 100. مطالعه موردی: جمعآورنده زباله در JVM (مانند G1, ZGC)
تگها:
Abstraction
Advanced GC
Computer Science
Garbage Collection
Implementation
Iran
Memory Management
Memory Optimization
Software Engineering
Specification
system design
Technical Course
جمعآوری زباله
طراحی سیستم
مهندسی نرمافزار
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.