Difference between revisions of "Memory management"

From Computer History Wiki
Jump to: navigation, search
(An OK start)
 
m (Add link)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''Memory management''' is the name for the hardware in a [[Central Processing Unit|CPU]] which controls which areas in physical [[main memory]] a given [[user]] [[process]] is allowed to use. In other words, it controls what the process' [[address space]] looks like.
+
'''Memory management''' is the name for the hardware (sometimes called the '''Memory Management Unit''', or '''MMU''') in a [[Central Processing Unit|CPU]] which controls which areas in physical [[main memory]] a given [[user]] [[process]] is allowed to use. In other words, it controls what the process' [[address space]] looks like.
  
 
This hardware is needed for two reasons. First, in a [[time-sharing]] [[operating system]]s, to prevent one user's erroneous (or hostile) program from interfering with the memory of another user (or the OS itself); i.e. to confine it to that area of main memory to which it had been assigned. Second, it is useful in the allocation of main memory, particularly in [[virtual memory]] systems, where memory is allocated in [[page]]s of equal size, which makes allocation of physical memory much simpler - unlike in earlier [[base and bounds]] memory management.
 
This hardware is needed for two reasons. First, in a [[time-sharing]] [[operating system]]s, to prevent one user's erroneous (or hostile) program from interfering with the memory of another user (or the OS itself); i.e. to confine it to that area of main memory to which it had been assigned. Second, it is useful in the allocation of main memory, particularly in [[virtual memory]] systems, where memory is allocated in [[page]]s of equal size, which makes allocation of physical memory much simpler - unlike in earlier [[base and bounds]] memory management.
  
Early [[International Business Machines|IBM]] [[System/360]] machines exposed the actual physical memory addresses to users (hence the ubiquitous use of BALR instructions to load [[index register]]s), although the protection mechanism in their case was not a bounds register, but [[protection key]]s on each block of memory. Also, the need for an [[adder]] in the addressing logic was not done away with entirely - to prevent the need to re-link a program each time it was loaded, indexing registers were used extensively, needing an adder there.
+
Early [[International Business Machines|IBM]] [[System/360]] machines exposed the actual physical memory addresses to users (hence the ubiquitous use of BALR instructions to load [[index register]]s), although the protection mechanism in their case was not a bounds register, but [[protection key]]s on each block of memory. Also, the need for an [[adder]] in the addressing logic was not done away with entirely - to prevent the need to re-[[linking|link]] a program each time it was loaded, indexing registers were used extensively, requiring an adder there.
 +
 
 +
[[Category: CPU Basics]]

Latest revision as of 16:28, 8 June 2023

Memory management is the name for the hardware (sometimes called the Memory Management Unit, or MMU) in a CPU which controls which areas in physical main memory a given user process is allowed to use. In other words, it controls what the process' address space looks like.

This hardware is needed for two reasons. First, in a time-sharing operating systems, to prevent one user's erroneous (or hostile) program from interfering with the memory of another user (or the OS itself); i.e. to confine it to that area of main memory to which it had been assigned. Second, it is useful in the allocation of main memory, particularly in virtual memory systems, where memory is allocated in pages of equal size, which makes allocation of physical memory much simpler - unlike in earlier base and bounds memory management.

Early IBM System/360 machines exposed the actual physical memory addresses to users (hence the ubiquitous use of BALR instructions to load index registers), although the protection mechanism in their case was not a bounds register, but protection keys on each block of memory. Also, the need for an adder in the addressing logic was not done away with entirely - to prevent the need to re-link a program each time it was loaded, indexing registers were used extensively, requiring an adder there.