کتاب الکترونیکی

مدیریت حافظه: الگوریتم ها و پیاده سازی ها در C/C++

Memory Management: Algorithms and Implementations in C/C++

دانلود کتاب Memory Management: Algorithms and Implementations in C/C++ (به فارسی: مدیریت حافظه: الگوریتم ها و پیاده سازی ها در C/C++) نوشته شده توسط «Bill Blunden»


اطلاعات کتاب مدیریت حافظه: الگوریتم ها و پیاده سازی ها در C/C++

موضوع اصلی: الگوریتم ها و ساختارهای داده

نوع: کتاب الکترونیکی

ناشر: Jones & Bartlett Publishers

نویسنده: Bill Blunden

زبان: English

فرمت کتاب: pdf (قابل تبدیل به سایر فرمت ها)

سال انتشار: 2002

تعداد صفحه: 392

حجم کتاب: 7 مگابایت

کد کتاب: 9781556223471 , 1556223471

نوبت چاپ: 1

توضیحات کتاب مدیریت حافظه: الگوریتم ها و پیاده سازی ها در C/C++

تخصیص حافظه یک حوزه جذاب است که به معاوضه ها و تحقیقات پیشرفته رسیده است. در این کتاب، بیل بلاندن توانسته است نمای کلی بسیار خوبی از موضوع ارائه دهد.

با معرفی پایین ترین سطوح – سخت افزار، یعنی واحد مدیریت حافظه CPU آغاز می شود. سپس توضیح می‌دهد که سیستم‌های عامل چگونه حافظه را مدیریت می‌کنند – بخش‌بندی، صفحه‌بندی، حافظه مجازی و آنچه بین آنها وجود دارد. در مرحله بعد، حافظه در سطح زبان برنامه نویسی مورد بررسی قرار می گیرد – مکانیسم های تخصیص سطح کامپایلر و هیپ در Fortran، COBOL، Pascal، C و در نهایت جاوا.

بخش دوم کتاب تمرین است: نویسنده چندین طرح مدیریت حافظه دستی (پیاده‌سازی‌های خود malloc/free) را در C++ پیاده‌سازی می‌کند و آنها را از نظر عملکرد و سایر ویژگی‌ها (مانند تکه تکه شدن حافظه) مقایسه می‌کند. در نهایت، او چند زباله جمع‌آور ساده (شمارش مرجع و نشانه‌روی) را پیاده‌سازی می‌کند و در فصل آخر کتاب نیز به طور خلاصه به موضوع مهم تخصیص‌دهنده‌های فرعی (همچنین به عنوان «استخر» یا «عرصه» معروف است. ).

در کل از کتاب لذت بردم. اما من چند نکته انتقادی (سازنده) دارم. اول از همه، کتاب برای چنین اثر فنی کمی بیش از حد محاوره ای است. به نظر می‌رسد مجموعه‌ای از پست‌های وبلاگ است، و بنابراین عمق ندارد. به عنوان مثال، بخش مدیریت حافظه ویندوز بسیار ناامید کننده است. تا آنجا که می توانم تلاش نویسنده برای نشان دادن روند اکتشاف خود با ابزارهای مختلف ردیابی و نظارت را تحسین کنم، بسیاری از این اطلاعات به خوبی شناخته شده و شرح داده شده است. درعوض، من انتظار ارائه کامل تری از موضوع را دارم.

مشکل دیگر کد ++C است. کد C++ در کتاب‌ها برای من جالب است – بنا به دلایلی در بیشتر آن‌ها بسیار بد است، و این کتاب نیز از این قاعده مستثنی نیست. من وارد نمونه‌ها نمی‌شوم زیرا تعداد آنها خیلی زیاد است، بنابراین فقط یک توصیه: اگر قصد دارید این کتاب را با اجرای کدها دنبال کنید (همیشه ایده خوبی است!) در مورد الگوریتم‌هایی که نویسنده توضیح می‌دهد بخوانید، اما بنویسید. پیاده سازی خودتان هیچ چیز خوبی برای یادگیری از کد ++C در این کتاب وجود ندارد، بنابراین ممکن است خودتان تمرین بیشتری داشته باشید.


Memory allocation is a fascinating area, ripe in trade-offs and cutting-edge research. In this book, Bill Blunden manages to provide a pretty-good overview of the topic.

It begins with an introduction of the lowest levels – the hardware, namely the CPU memory management unit. Then it goes on to explain how operating systems manage memory – segmentation, paging, virtual memory and what’s between them. Next, memory is examined on the programming-language level – compiler-level and heap allocation mechanisms in Fortran, COBOL, Pascal, C and finally Java.

The second part of the book is the practice: the author implements several manual memory management schemes (own implementations of malloc/free) in C++, and compares them in terms of performance and other characteristics (like memory fragmentation). Finally, he implements a couple of simple garbage collectors (reference-counting, and mark-sweep), and in the last chapter of the book also briefly mentions the important topic of sub-allocators (also known as “pools” or “arenas”).

Overall, I enjoyed the book. But I do have a few points of (constructive) criticism. First of all, the book is a bit too conversational for such a technical work. It feels like a collection of blog posts, and thus also lacks in depth. For example, the section on memory management of Windows is quite disappointing. As much as I can admire the author’s attempt to show his exploration process armed by various tracing and monitoring tools, much of this information is well known and has been described. Instead, I would expect a more thorough presentation of the topic.

The other problem is the C++ code. C++ code in books is a pet peeve of mine – for some reason it tends to be exceptionally bad in most of them, and this book is no exception. I won’t go into examples because there are simply too many, so just a word of advice: if you intend to follow through this book actually implementing the code (always a good idea!) read about the algorithms the author describes, but write your own implementation. There’s nothing good to learn from the C++ code in this book, so you might as well get some more practice on your own.

دانلود کتاب «مدیریت حافظه: الگوریتم ها و پیاده سازی ها در C/C++»

مبلغی که بابت خرید کتاب می‌پردازیم به مراتب پایین‌تر از هزینه‌هایی است که در آینده بابت نخواندن آن خواهیم پرداخت.

📖 خرید این کتاب

برای دریافت فایل و اطلاع از قیمت، روی یکی از دکمه‌های زیر کلیک کنید تا پیام آماده برای شما ارسال شود:

پس از ارسال پیام، قیمت و لینک دریافت فایل در اسرع وقت برای شما ارسال خواهد شد.