Logical address

From Wikipedia, the free encyclopedia
(Redirected from Program address)
Jump to navigation Jump to search

In computing, a logical address is the address at which an item (memory cell, storage element, network host) appears to reside from the perspective of an executing application program.

A logical address may be different from the physical address due to the operation of an address translator or mapping function. Such mapping functions may be, in the case of a computer memory architecture, a memory management unit (MMU) between the CPU and the memory bus.

There may be more than one level of mapping. For example, on multiprocessor configurations of the IBM S/360, S/370 and successors, IBM distinguishes among

  1. Virtual address seen by the program
  2. Real address, the result of translating a virtual address
  3. Absolute address, the result of mapping a real address using a low-storage prefix[1][2][b] assigned to each CPU.

Computer memory

[edit | edit source]

The physical address of computer memory banks may be mapped to different logical addresses for various purposes.

In a system supporting virtual memory, there may actually not be any physical memory mapped to a logical address until an access is attempted. The access triggers special functions of the operating system which reprogram the MMU to map the address to some physical memory, perhaps writing the old contents of that memory to disk and reading back from disk what the memory should contain at the new logical address. In this case, the logical address may be referred to as a virtual address.

Notes

[edit | edit source]
  1. ^ 8192 bytes for z/Architectural mode
  2. ^ The prefix is the block number of a 4096[a] byte

References

[edit | edit source]
  1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).

See also

[edit | edit source]