In This Article
What is Address Space?
An address space on the memory refers to the series of logical spaces where every data byte has its own address. In simple words, it signifies the total amount of memory that a computer system can address.
Technically, these address spaces are created by combining a lot of qualifiers that are uniquely identified.
This makes an address explicit within the space by partitioning it into different regions based on its mathematical structure.
- The address space on a memory signifies the set of discrete addresses corresponding to a memory cell.
- The number of address spaces in a memory will depend on the underlying structure of the address, which is limited by the architecture of the computer in question.
- If a system comes with a virtual memory, the address space may match the highest-level translation table.
- The address space can be either flat or segmented, where the data is stored and located when required in the future.
- These spaces may refer to several physical and logical entities but are limited by physical and arbitrary restrictions.
Understanding Address Space
The array of valid addresses that a program or a process can access is called an address space in memory. Ideally, an address space may refer to any one or both of the following:
- The physical memory, such as the Random Access Memory (RAM) chips
- The virtual memory disks such as the Solid State Drive or (SSD)
For example, a 32-bit computer system may support a physical memory of a smaller capacity, say 4 GB, and a larger virtual memory, say 1 TB.
In the case of total order, such as in the memory addresses, the address spaces are usually simple chunks.
These chunks typically maintain a hierarchical design and usually may look like a directed ordered tree in specific nested domain hierarchies, such as:
- The directory structure
- The Domain Name System (DNS)
As for the internet space, ranges of Internet Protocol (IP) addresses are assigned by the Internet Assigned Numbers Authority (IANA) to the different registries.
This allows each of them to manage their respective portions of the global Internet address space.
Used typically for carrying out instructions and storing data, in computing especially, an address space describes the set of separate addresses.
Each of these addresses may correspond to a different physical or logical entity such as:
- A memory cell
- A network host
- A disk sector
- A peripheral device
There is an address space assigned to each and every device and process in a computer, and each of these spaces holds a specific portion of the address space of the processor.
However, this address space of the processor is normally limited to the following:
- The address bus
- The width of the registers
The address space, on the other hand, itself may be restricted by two specific limitations such as:
- The physical limitations of the device itself
- The arbitrary limitations that separate data of specific types from each other
Typically, an address space is classified into specific groups, based on its design, such as:
- Flat – Here, the addresses are characterized as integers that increase incrementally starting from zero.
- Segmented – Here, the addresses are denoted as separate segments that are increased by values or offsets that help in creating secondary addresses.
However, in some specific types of systems, the address space is also modified from one particular format to another by means of a process referred to as thunking.
It is the process where machine-generated, low-level codes called ‘Thunks’ are used to implement details of a software based virtual memory system to map them from virtual to physical addresses.
Address Space Example
As for a few examples of address spaces, they typically refer to the amount of memory assigned to all available addresses of any computational entity, such as a file, a device, a server, or a networked computer.
Ideally, these examples are based on the specific form of addresses and their varied uses. Some significant examples of these address spaces include, but are not limited to the following:
- The memory address space refers to the virtual memory or Random Access Memory of the computer, memory-mapped I/O, main memory, and even to the virtual memory as well
- The network or internet address spaces refer to the IP addresses and Uniform Resource Locators (URLs)
- The sector address spaces typically refer to those on the hard disk drives
- The address spaces for the file names typically signify the file system volume
- The device addresses on the expansion bus
- The different types of network host addresses in different computer networks
What is Address Space Size?
Ideally, the size of the address space depends on the architecture of the memory or a peripheral device as well as the operating system that supports it.
Every address space can be 16 exabytes in size, which is a bit more than a billion gigabytes, or a new address space may have 264 addresses, which is 8 billion times larger than a 2 GB address space that can logically hold 231 addresses.
Typically, before the 64-bit address space came into existence, there were two specific types of address spaces available, such as:
- The 24-bit addresses – These address spaces reigned supreme in the 1970s and started at address 0 and ended at 16 MB.
- The 31-bit addresses – These addresses prevailed in the early 1980s and were referred to as XA or Extended Architecture. They were characterized as one that started at address 0 but ended at 2 GB.
With reference to maintaining compatibility, two different Addressing Modes (AMODEs) were provided by the operating system. These are as follows:
- The particular programs that operated by using only the initial 16 MB of the address space followed AMODE 24.
- The specific programs that operated by using the whole of the 31-bit address space followed AMODE 31.
When the size of the address spaces started to increase, newer terms were required to describe them.
Therefore, programs that use more than 2 GB address space of a virtual storage need to run in AMODE 64.
This eventually created an address space architecture of larger size that can provide 64-bit addresses.
However, the structure of the address spaces of less than 2 gigabytes remained unaltered. This means that all those programs that operated in AMODE 24 and AMODE 31 continued to run in the same way.
Therefore, in some basic ways, it is the 64-bit address space that acts as the virtual line or the bar that marks the 2-gigabyte address. It separates the storage into two distinct parts, such as:
- The storage below the 2-gigabyte address, which is called below the bar storage.
- The storage above a 2-gigabyte address, which is called above the bar storage.
And, as for the 31-bit address space, a similar virtual line differentiates the 16-megabyte address in a different way as follows:
- The region above the bar is projected for data, where no programs can run.
- The region below the bar, which is intended for the programs.
Ideally, there is no precise area above this specific bar that can be considered to be common to all available address spaces, and there are also no system control blocks that can occur above the bar.
Typically, the size of the address spaces can be altered to be more than the physical memory by means of a specific memory management tactic called virtual memory, also called a page file. This page file resides on the disk and performs in either of the two following ways:
- An additional RAM
- A RAM module
What are the Types of Address Space?
There are basically three main types of address spaces, namely the ACB address space, the associated address space, and the session address space, to name a few. Each of these types comes with a diverse set of features and functionalities.
ACB address space
This specific type of address space opens the Access Method Control Block (ACB) for the applications and resides on the common storage to allow using multiple address spaces for the application program.
The ACB address space can be characterized as follows:
- They use the whole set of Virtual Telecommunications Access Method (VTAM) macroinstructions.
- It can issue the VTAM macroinstructions in both Service Request Block (SRB) mode and Task Control Block TCB mode in authorized path or in a non-authorized path.
- There can be more than one ACB.
- It may be an associated address space with respect to a different ACB.
- It may also be a session address space.
- It refers to the address space where specific types of EXLST exits are performed.
- This address space is the only one where the ACB can be closed.
- If the ACB address space is closed or terminated, then, as a result, all sessions related to it will also be terminated irrespective of which address space is used by the session.
Associated address space
With respect to ACB, if an address space issues VTAM macroinstructions opened in a different address specifying an ACB, it is called an associated address space. It can be characterized as follows:
- It can reference only an ACB residing in a common storage.
- It can be related to more than one ACB.
- It can issue VATM macroinstructions only through an authorized path for an ACB in a different address space using either TCB or SRB mode.
- A CLOSE macroinstruction cannot be issued by it for an ACB opened in a different address space.
- It can also be an ACB address space because it can issue an OPEN macroinstruction for an ACB.
Session address space
This is an address space designed for issuing VTAM macroinstructions for establishing OPNDST or OPNSEC sessions. These address spaces can be characterized as follows:
- It can be either an associated address space or an ACB address space.
- The RECEIVE OPTCD=SPEC, RESETSR, SESSIONC and SEND macroinstructions can only be issued from this particular address space.
A couple of other types of address spaces are:
Virtual address space
This address space can be characterized as follows:
- It is the binary number in the virtual memory.
- It allows the processes to use a virtual address location in primary storage.
- It supports the use of the main memory.
- It is not dependent on other processes.
- It supports using more space than what is actually available.
- It operates by transferring some content to the hard disk or an internal flash drive.
Logical address space
This is another specific type of address space that is produced by a computer system for a particular program. Ideally, these sets of logical address spaces, when mapped to their corresponding sets of physical addresses, create the physical address spaces.
Address Space Vs Memory
- An address space refers to the group of addresses produced by the programs while referencing data and instructions. On the other hand, a memory refers to the specific space that stores the actual locations of the main memory that can be addressed directly while processing data and instructions.
- The address space is typically larger than the memory space when you compare the two.
- The programmers typically use addresses that are virtual and a set of these virtual addresses is called the address space. On the other hand, the memory space indicates a group of actual locations and therefore is not virtual.
Where is the Address Space Located?
Usually, the address space is located on the secondary storage disk.
If it is virtual, the address space will be mapped to the physical or actual space by the operating system by maintaining an image of it in the secondary storage, which is why it is usually larger in size than the physical memory.
Ideally, it serves the requirements of different programs so that they can operate as they should when needed.
Therefore, after reading this article, you are now quite knowledgeable about the address space and how useful it is to the memory of a computer.
Typically, based on the design and functionalities, you can say that the address space on a memory of a computer is made up of both virtual memory and physical memory.