Memory Management



Definition

Memory management is a complex field of computer science and there are many techniques being developed to make it more efficient. This guide is designed to introduce you to some of the basic memory, XMS, HIMEM.SYS, and the like),  then you won’t find The Memory Management Reference very management issues that programmers face.
Some platforms have specific problems in dealing with memory, which are not covered in depth here. In particular, if you are looking for information on configuring memory under DOD or Windows.
This guide attempts to explain any terms it uses as it introduces the. In addition, there is a Glossary of memory management terms that giver full information; some terms are linked to the relevant entries.
Memory management is usually divided into three areas: hardware, operating system, and application (described in more detail below), although the distinctions are a little fuzzy. In most computer systems, all three are present to some extent, forming layers between the user’s program and the actual memory hardware. The memory management reference is mostly concerned with application memory management.

Hardware Memory Management
Memory management at the hardware level is concerned with the electronic devices that actually store data. This includes things like RAM and memory caches.

Operating System Memory Management
In the operating system, memory must be allocated to user programs, and reused by other programs when it is no longer required. The operating system can pretend that the computer has more memory than it actually does, and also that each program has the machine’s memory to itself, both of these are features of virtual memory systems.

Application Memory Management
Application memory management involves supplying the memory needed for a program’s objects and data structures from the limited resources available, and recycling that memory for reuse when it is no longer required. Because application programs cannot in general predict in advance how much memory they are going to requires, they need additional code to handle their changing memory requirements. Application memory management combines two related tasks:
Allocation
When the program requests a block of memory, the memory manger must allocate that block out of the larger blocks it has received form the operating system. The part of the memory manager that does this is known as the allocator. There are many ways to perform allocation, a few of which are discussed in Allocation techniques.
Recycling
When memory blocks have been allocated, but the data they contain is no longer require by the program, then the blocks can be recycled for reuse. There are two approaches to recycling memory: either the programmer must decide when memory can be reused (Know as manual memory management); or the memory manager must be able to work it out (Known as automatic memory management). These are both described in more detail below.
An application memory manager must usually work to several constraints, such as:
CPU overhead
The additional time taken by the memory manager while the program is running;
Interactive pause times
How much delay interactive user observes;
Memory overhead
How much space is wasted for administration, rounding (known as internal fragmentation). And poor layout (know as external fragmentation).

Share this tutorial:
  • Digg
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Live
  • PlugIM
  • Reddit
  • Spurl
  • StumbleUpon
  • Technorati
  • TwitThis
  • YahooMyWeb
  • description
  • E-mail this story to a friend!
  • MisterWong
  • BlinkList
  • LinkedIn
  • MySpace
  • Print this article!
  • Yahoo! Buzz

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

About the Author

Adam has written 384 stories on this site.

Related Tutorials & Articles

Memory Management Problems
Memory Management Problems     The basic problem in managing memory is knowing when to keep the data it contains, and when to throw it away so that the memory can be reused. This sounds easy, but is, in fact, such a hard problem that it is an entire field of study in its own right. In...Read more
Remove Program from Windows XP Startup to Improve Speed of the System
Most of the time people facing slow boot time for the windows XP operating system although there system memory and processor are powerful enough to load windows XP in few second. if you don’t have virus in your system then the problem will be too many programs are in startup of windows XP. In this...Read more
Program management
 The term program in project management refers to the set of project which is managed using the same technique and coordination. Bundle multiple project into a program benefits the organization because resource are shared and utilization in an efficient way to minimize cost with better quality. E.g. Construction of a building is a program contain projects...Read more
Computer Architecture Concepts
  INTRODUCTION Architecture (computer science), a general term referring to the structure of all or part of a computer system. The term also covers the design of system software, such as the operating system (the program that controls the computer), as well as referring to the combination of hardware and basic software that links the machines on...Read more
Enable / Disable Download Missing COM Components
Explanation You can enable or disable Download missing COM components from gpedit.Directs the system to search Active Directory for missing Component Object Model (COM) components that a program requires. Many Windows programs, such as the MMC snap-ins, use the interfaces provided by the COM. These programs cannot perform all of their functions unless Windows has internally registered...Read more

Write a Comment

Gravatars are small images that can show your personality. You can get your gravatar for free today!

Copyright © 2010 Sooper Tutorials. All rights reserved. Powered by WordPress.org, Website by ISolution.org.