Each virtual address space forms a domain. If an address space is not part of the system address space and has not been defined explicitly as shareable, the pages of the address space are accessible only within this address space. In other words, the pages are protected against access from other address spaces. This protection is achieved by means of address conversion, which always refers to the activated address space when converting a virtual address into a real address. On task initialization, a special hardware register (CR1) is activated. This register contains the base address and the length of the conversion table valid for this address space. (When a task is deinitialized, its address space is deactivated; switching a task therefore also switches the address space associated with it.)
A virtual address is composed of the segment number, page number (index) and byte number. BS2000 converts this address into a real address in two stages. Firstly, a page table is selected via the corresponding segment table (conversion table). This page table then contains the (real) main memory page number associated with the virtual page number. Address conversion takes place only for the page section (segment and page number) of an address; the real and virtual displacement within a page remains unchanged.
The size of virtual and real pages is 4 Kbytes for all BS2000 servers.
Accordingly, a virtual 31-bit address is divided into 11 bits segment number, 8 bits page number and 12 bits offset (see figure 5).
Figure 5: Address conversion for a 31-bit address