Series: Windows Programming/Development
Paperback: 360 pages
Publisher: Jones & Bartlett Learning; 1 edition (October 4, 2002)
Language: English
ISBN-10: 1556223471
ISBN-13: 978-1556223471
Product Dimensions: 6.1 x 1 x 9 inches
Shipping Weight: 1.3 pounds
Average Customer Review: 4.2 out of 5 stars See all reviews (8 customer reviews)
Best Sellers Rank: #2,757,731 in Books (See Top 100 in Books) #41 in Books > Computers & Technology > Programming > Algorithms > Memory Management #474 in Books > Textbooks > Computer Science > Algorithms #802 in Books > Computers & Technology > Programming > Languages & Tools > C & C++ > C
This book, is one of the few computer books I have read from cover to cover - code listings are easy to scan/skip, and the book itself is not huge (however the cost seems fairly high for the size).This book is clearly written, and well researched. It is not for beginners.This book spends time on the hardware aspects of Memory management based on the Intel 386 and above architecture. Real Mode versus protected mode and how the processor design allows for memory protection in protected mode.This is then followed by a survey of Operating Systems, from DOS to Linux to Windows - which is moving from the simple to the complex - and how the OS provides Memory Management services.Then the development of computer languages, and how they allow for memory management starting with COBOL and moving on to Object oriented C++ and Java Virtual Machines.Finally the last part of the book has a lot of code listings with very simplistic memory management and moving into slightly more complex algorithms for memory management for programs. The focus is on introducing multiple approaches and how to measure the real performance of each - some parts of this part of the book seemed like they were repeating the same text in making comments about the code.Overall, I liked the book. I read the Pentium Protected Mode architecture book last year, and it prepared me for this book.I have not done much assembly level x86 programming, but enough to understand what was being shown in the early examples.The book has a very good bibilography of sources for each chapter - six long chapters.
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.
Memory Management Algorithms And Implementation In C/C++ (Windows Programming/Development) Memory Exercises: Memory Exercises Unleashed: Top 12 Memory Exercises To Remember Work And Life In 24 Hours With The Definitive Memory Exercises Guide! (memory exercises, memory, brain training) Windows 10: Windows10 Mastery. The Ultimate Windows 10 Mastery Guide (Windows Operating System, Windows 10 User Guide, User Manual, Windows 10 For Beginners, Windows 10 For Dummies, Microsoft Office) Android: Programming in a Day! The Power Guide for Beginners In Android App Programming (Android, Android Programming, App Development, Android App Development, ... App Programming, Rails, Ruby Programming) Programming #8:C Programming Success in a Day & Android Programming In a Day! (C Programming, C++programming, C++ programming language, Android , Android Programming, Android Games) Programming #57: C++ Programming Professional Made Easy & Android Programming in a Day (C++ Programming, C++ Language, C++for beginners, C++, Programming ... Programming, Android, C, C Programming) Android: App Development & Programming Guide: Learn In A Day! (Android, Rails, Ruby Programming, App Development, Android App Development, Ruby Programming) Apps: Mobile App Trends in 2015 (iOS, Xcode Programming, App Development, iOS App Development, App Programming, Swift, Without Coding) ((Android, Android ... App Programming, Rails, Ruby Programming)) Algorithms: C++: Data Structures, Automation & Problem Solving, w/ Programming & Design (app design, app development, web development, web design, jquery, ... software engineering, r programming) R Programming: Learn R Programming In A DAY! - The Ultimate Crash Course to Learning the Basics of R Programming Language In No Time (R, R Programming, ... Course, R Programming Development Book 1) Windows 10: The Ultimate Guide For Beginners (Windows 10 for dummies, Windows 10 Manual, Windows 10 Complete User Guide, Learn the tips and tricks of Windows 10 Operating System) Windows 8.1: Learn Windows 8.1 in Two Hours: The Smart and Efficient Way to Learn Windows 8.1 (Windows 8.1, Windows 8.1 For Beginners) Programming #45: Python Programming Professional Made Easy & Android Programming In a Day! (Python Programming, Python Language, Python for beginners, ... Programming Languages, Android Programming) Android: Programming & App Development For Beginners (Android, Rails, Ruby Programming, App Development, Android App Development) SWIFT: PROGRAMMING ESSENTIALS (Bonus Content Included): Learn iOS development! Code and design apps with Apple's New programming language TODAY (iOS development, swift programming) DOS: Programming Success in a Day: Beginners guide to fast, easy and efficient learning of DOS programming (DOS, ADA, Programming, DOS Programming, ADA ... LINUX, RPG, ADA Programming, Android, JAVA) ASP.NET: Programming success in a day: Beginners guide to fast, easy and efficient learning of ASP.NET programming (ASP.NET, ASP.NET Programming, ASP.NET ... ADA, Web Programming, Programming) C#: Programming Success in a Day: Beginners guide to fast, easy and efficient learning of C# programming (C#, C# Programming, C++ Programming, C++, C, C Programming, C# Language, C# Guide, C# Coding) FORTRAN Programming success in a day:Beginners guide to fast, easy and efficient learning of FORTRAN programming (Fortran, Css, C++, C, C programming, ... Programming, MYSQL, SQL Programming) Prolog Programming; Success in a Day: Beginners Guide to Fast, Easy and Efficient Learning of Prolog Programming (Prolog, Prolog Programming, Prolog Logic, ... Programming, Programming Code, Java)