7-8 Vol. 3
TASK MANAGEMENT
of a TSS. Attempting to switch to a task whose TSS descriptor has a limit less than
67H generates an invalid-TSS exception (#TS). A larger limit is required if an I/O
permission bit map is included or if the operating system stores additional data. The
processor does not check for a limit greater than 67H on a task switch; however, it
does check when accessing the I/O permission bit map or interrupt redirection bit
map.
Any program or procedure with access to a TSS descriptor (that is, whose CPL is
numerically equal to or less than the DPL of the TSS descriptor) can dispatch the task
with a call or a jump.
In most systems, the DPLs of TSS descriptors are set to values less than 3, so that
only privileged software can perform task switching. However, in multitasking appli
-
cations, DPLs for some TSS descriptors may be set to 3 to allow task switching at the
application (or user) privilege level.
7.2.3 TSS Descriptor in 64-bit mode
In 64-bit mode, task switching is not supported, but TSS descriptors still exist. The
format of a 64-bit TSS is described in Section 7.7.
In 64-bit mode, the TSS descriptor is expanded to 16 bytes (see Figure 7-4). This
expansion also applies to an LDT descriptor in 64-bit mode. Table 3-2 provides the
encoding information for the segment type field.