MEMORY MANAGEMENT AND VIRTUAL ADDRESSING

The remaining 14 bits of the selector component uniquely designate a particular segment. The virtual address space of a program, therefore, may encompass as many as 16,384 (214) distinct segments. Segments themselves are of variable size, ranging from as small as a single byte to as large as 64K (2 16) bytes. Thus, a program's virtual address space may contain, altogether, up to a full gigabyte (2'0

=214 X 216) of individually addressable byte locations.

The entirety of a program's virtual address space is further subdivided into two separate halves, as distinguished by the TI ("table indicator") bit in the virtual address. These two halves are the global address space and the local address space.

The global address space is used for system-wide data and procedures including operating system software, library routines, runti.me language support and other commonly shared system services. (To application programs, the operating system appears to be a set of service routines that are accessible to all tasks.) Global space is shared by all tasks to avoid unnecessary replication of system service routines and to facilitate shared data and interrupt handling. Global address space is defined by addresses with a zero in the TI bit position; it is identically mapped for all tasks in the system.

The other half of the virtual address space-comprising those addresses with the TI bit set-is separately mapped for each task in the system. Because such an address space is local to the task for which it is defined, it is referred to as a local address space. In general, code and data segments within a task's local address space are private to that particular task or user. Figure 6-2 illustrates the task isolation made possible by partitioning the virtual address spaces into local and global regions.

TASK 1 VIRTUAL ADDRESS SPACE

TASK 3 VIRTUAL ADDRESS SPACE~

TASK 2 VIRTUAL ADDRESS SPACE

G30108

Figure 6-2. Address Spaces and Task Isolation

6-3

Page 113
Image 113
Intel 80286, 80287 manual Address Spaces and Task Isolation