Examples of address spaces are the set of all:
- Phone numbers - for example the German address space starting with +49
- IP addresses - for example the IPv4 address space from 0.0.0.0 to 255.255.255.255
- addressable memory addresses in a computer (see below)
- E-mail addresses of a domain - for example all local-parts @ de.wikipedia.org
- Domain Name System / FQDN
Address space in information technology
The main memory in computers is managed and addressed with the help of addresses. In modern computers, however, there is not just a single address space; rather, memory management mechanisms can often be switched on that make it possible to use different address spaces. The mapping of the addresses of an address space to the respective memory cells is taken over by the memory management . This mapping can also take place in several stages, so that the address from the address space is mapped to the address of the address space , and only the address is then mapped to the address of the memory cell to be addressed. Furthermore, the address translation can change during the runtime, as a result of which one and the same address of an address space can be assigned different memory cells at different times.
Common memory address spaces
In modern computer systems u. a. the following memory address spaces are used:
Physical address space
- The physical address space or memory space is the set of all memory addresses that can be addressed by a processor . The size of this address space is limited by the number of address lines of the processor or the memory management ( MMU ).
- As a rule, the physical address space is not simply mapped onto the available main memory . Certain address areas are reserved for special functions; they are used for communication with hardware components (for example the AGP aperture for communication with the graphics card ) or for access to non-volatile memory (for example Flash ROMs that contain the BIOS ). The working memory ( RAM ) available in the system is addressed via address areas between the reserved areas. As a result, the available main memory of some systems cannot be addressed via a single, contiguous address range beginning at the first physical address. Depending on the system memory configuration, parts of the physical address space are not assigned, i.e. they cannot be used.
- In the past, bank switching in the form of extensions such as EMS was used to expand the physical address space .
- In addition to the work and program memory , the I / O address space is also important, which can be implemented as memory mapped I / O or as isolated I / O depending on the computer system .
Linear address space
- In modern processors, the operating system and MMU can work together to form a virtual address space that is contiguous from the first to the last linear address. This is done using so-called page management . It enables a linear address space that can be larger than the number of working memory cells actually present in the system. Depending on the processor and its MMU, the linear address space can even be larger than the physical address space (for example with the PowerPC ).
- If page management is not supported or if it is switched off, the physical and linear address space are identical.
Logical address space
- With the help of segmentation , the operating system and MMU divide the linear or (directly) the physical address space into segments and thus form the logical address space. Logical addresses consist of two parts, a segment address and an offset. The segment address indicates from which segment of the linear address space an address is to be addressed. The offset addresses, relative to the start of the segment, the memory location within the segment that is to be addressed. If only the offset is specified, the current segment is usually meant ("implicit addressing").
- If the memory segmentation is not available or is deactivated, the logical and linear address space are identical.
More recent operating systems
In desktop or server operating systems such as Microsoft Windows (from Windows NT ), Solaris or Linux (from kernel version 2.6), linear address spaces are used throughout, except during the system boot process. Since the segmentation cannot be switched off on x86 processors in 32-bit protected mode, a greatly simplified logical address space is used here, in which the program, data and stack segments extend over the entire linear address space, starting at the smallest linear address . This means that there is no segmentation here either and the offset and linear address are identical.
Older operating systems
Simple computer systems (8-bit computers from the 1970s and 1980s, today only the microcontrollers in the lowest price segment) usually do not support any real memory management at all; all three named address spaces are identical there. The 16-bit MS-DOS family operating systems only used segmentation as a form of memory management; here the physical and linear address space are identical, the logical address space differs. The same is true of early versions of Microsoft Windows . MS Windows versions of the 1990s ( Windows 3.x , Windows 9x ) used a complex combination of segmentation and page management; here, in many situations, all three address spaces mentioned differ from one another.
- space The large online lexicon for information technology. Retrieved February 16, 2015.
- Gerhard Weck: Principles and Realization of Operating Systems . Springer, 2013 ( online excerpt )
- Definition of address space University of Erlangen-Nürnberg Chair of Computer Science 4. Accessed on February 16, 2015.