FACTOID # 12: It's not the government they hate: Washington DC has the highest number of hate crimes per capita in the US.
 Home   Encyclopedia   Statistics   States A-Z   Flags   Maps   FAQ   About 


FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:



(* = Graphable)



Encyclopedia > Memory manager

A memory manager is a part of a computer program which accepts requests from the program to allocate and deallocate chunks of memory. A computer program or software program (usually abbreviated to a program) is a step-by-step list of instructions written for a particular computer architecture in a particular computer programming language. ... The terms storage (U.K.) or memory (U.S.) refer to the parts of a digital computer that retain physical state (data) for some interval of time, possibly even after electrical power to the computer is turned off. ...

The objective of the memory manager is generally to allow dynamic memory allocation. For example, in the C programming language, without use of a memory allocation library, memory can only be allocated statically and on the stack, while the use of a memory manager allows for dynamic allocation on the heap. A memory manager can also make allocation and deallocation more efficient, group allocated blocks according to particular conditions, and even collect statistics, and trace memory access violations. In computer science, dynamic memory allocation is the allocation of memory storage for use in a computer program during the runtime of that program. ...     The C Programming Language, Brian Kernighan and Dennis Ritchie, the original edition that served for many years as an informal specification of the language The C programming language is a standardized imperative computer programming language developed in the early 1970s by Dennis Ritchie for use on the Unix operating system. ... Stack in computing refers to: Stack (data structure) Stack-based memory allocation as opposed to Heap-based memory allocation in computing architecture. ...

The interface to the memory manager is a set of functions which are used by the program to allocate and release memory. In C, the memory manager is primarily accessed through malloc and free; there are some additional functions, such as realloc and calloc that are closely related to malloc. In C++ there are 12 global constructs for managing memory: new, new[], delete, delete[], new(nothrow), new(nothrow)[], delete(nothrow), delete(nothrow)[], malloc, calloc, realloc, and free. malloc is a function for performing dynamic memory allocation in the C programming language. ... C++ (pronounced see plus plus, IPA: ) is a general-purpose computer programming language. ...

PC "Memory Managers" of the LIM EMS era

The DOS community once used the term "memory manager" in a completely different way. A PC "memory manager" was a software system which employed a variety of clever tricks to give applications access to more than 640K of "conventional memory". The best-known examples were Quarterdeck's QEMM product and Microsoft's EMM386. DOS refers to the family of closely related operating systems which dominated the IBM PC compatible market for the decade between 1985 and 1995: PC-DOS, MS-DOS, DR-DOS, FreeDOS, OpenDOS, PTS-DOS, and several others. ... Quarterdeck Office Systems, later Quarterdeck Corporation, was an American computer software company. ... QEMM, the Quarterdeck Expanded Memory Manager by Quarterdeck, was the most popular memory manager for the DOS operating system. ... EMM386 was Microsofts expanded memory manager, which created expanded memory using extended memory on Intel 80386 CPUs. ...

During the period roughly spanning the mid-1980s through the mid-1990s, PCs were typically limited to 640K of address space for accessing RAM. Software gradually outgrew this constraint as RAM became cheaper. To allow software to use more than 640K, a mechanism called expanded memory appeared. It integrated bank-switching hardware with software support, allowing applications to exploit additional RAM through a window in the address space. The driver servicing the bank-switching hardware was called an Expanded Memory Manager. Expanded Memory is memory on an IBM PC compatible computer that is used through the Expanded Memory Specification (EMS) memory paging scheme, enabling access to extra RAM above the 1MB conventional memory area while the processor is in real mode. ...

Although applications could use expanded memory with relative freedom, many other software components such as drivers and TSRs were still normally constrained to reside within the 640K "conventional memory" area, which soon became a critically scarce resource. Terminate and Stay Resident (TSR) computer programs were the only way to achieve a primitive sort of multitasking (usually just task-switching) using the DOS operating system. ...

Clever tricks appeared, notably with QRAM and the LOADHI command, which allowed to place device drivers and TSRs in expanded memory. QRAM did not require a 80386 processor. QEMM, the Quarterdeck Expanded Memory Manager by Quarterdeck, was a popular memory manager for the DOS operating system. ...

The biggest break-through came with the Intel 80386 processor, its virtual memory support and virtual 8086 mode. This combination allowed to freely model the address space used by real mode programs and a wide variety of software-only approaches were invented to move as much code as possible out of the 640K area. An Intel 80386 Microprocessor The 386DX architecture. ... The memory pages of the virtual address space seen by the process, may reside non-contiguously in primary, or even secondary storage. ... In the x86 CPU architecture Virtual 8086 mode, also called virtual-real mode, allows the execution of real mode code under the control of a protected mode operating system. ... Real mode is an operating mode of 80286 and later x86-compatible CPUs. ...

Memory managers like QEMM might move the bulk of the code for a driver or TSR into extended memory and replace it with a small fingerhold that was capable of accessing the extended-memory-resident code. They might analyze memory usage to detect drivers that required more RAM during startup than they did subsequently, and recover and reuse the memory that was no longer needed after startup. They might even remap areas of memory normally used for memory-mapped I/O. Many of these tricks involved assumptions about the functioning of drivers and other components. In effect, memory managers might reverse-engineer and modify other vendors' code on the fly. As might be expected, such tricks did not always work. Therefore, memory manages also incorporated very elaborate systems of configurable options, and provisions for recovery should a selected option render the PC unbootable (a frequent occurrence).

Installing and configuring a memory manager might involve hours of experimentation with options, repeatedly rebooting the machine, and testing the results. But conventional memory was so valuable that PC owners felt that such time was well-spent if the result was to free up 30K or 40K of conventional memory space.

  Results from FactBites:
The Memory Management Reference (101 words)
This is a resource for programmers and computer scientists interested in memory management and garbage collection.
Articles giving a beginner's overview of memory management and explaining specific areas of it.
Ravenbrook are happy to provide advanced memory management solutions to language and application developers through our consulting service.
Memory management - Wikipedia, the free encyclopedia (221 words)
Virtual memory systems increase the effectively available amount of RAM using disk swapping.
This is generally implemented at the programming language level and is in opposition to manual memory management, the explicit allocation and deallocation of computer memory resources.
In addition to standard memory management, DOS led to the development of programs known as memory managers.
  More results at FactBites »



Share your thoughts, questions and commentary here
Your name
Your comments

Want to know more?
Search encyclopedia, statistics and forums:


Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms, 1022, m