An address space refers to a range of either physical or virtual addresses that are accessible to a processor or reserved for a process. A process is an instance of a program (application) running in a computer. On a computer, each process is allocated address space, which is some portion of the processor's address space.
Current and previous operating systems have only one address space model that is provided to the application developers. Current or previous operating systems either have the “single address space model” or the “multiple address space model”. In the single address space model, an entire machine or computer has one address space that all applications use. In the multiple address space model, each process running on the computer has its own address space. For the application writer, the single address space model has better performance, but less flexibility, than the multiple address space model.
Furthermore, in previous approaches, since an operating system supports only the single address space model or the multiple address space model, an application may fail during operation because there is no algorithm to adapt an address space layout of a process in order to provide flexibility for the process or improve performance of the application.
Thus, the current approaches and/or technologies are limited to particular capabilities and/or suffer from various constraints or deficiencies.