In this work, Dynamic memory allocation that is critical issue in the design of computer systems is examined. During first part of this project, improved software techniques separated into three different categories such as Bit map, Linked list techniques, Buddy systems are analyzed. For this purpose, algorithms are simulated by using C++ programming language. In the simulations, internal, external and total fragmentation, and process times are used as performance criteria.