I have searched the idea of address space that is The set of all legal addresses in memory for a given application. The address space represents the amount of memory available to a program.
I am unable to find that how this concept is implemented? And how it works with operating system? Any help would be appreciated.
1
An address can be represented by a non-negative integer number, so “address space” is a fancy way to describe a set of non-negative integers such that each integer represents a valid address in the memory available to your program.
In some cases, several address spaces can be available to your program: for example, when you are on a system that follows a Harvard architecture, your program has two address spaces – one for the code, and one for the data. In cases like that a non-negative integer is no longer sufficient to uniquely define a location in memory; you must also specify to which of the two address spaces that integer belongs.
The implementation of an address space is done in hardware: a number is mapped to a location in memory by dedicated piece of electronics that controls the interface between the CPU and the memory. Operating systems control this hardware by allocating blocks of physical memory to a running program’s virtual address space.