9.2保护模式的主要数据结构9.2.1段描述符在保护模式下,把有关一个段的信息即段基址、限长(段的字节数)、类型、访问权限和其他属性信息存放在8字节长的数据结构中,这种数据结构称为段描述符,简称描述符(Descriptor)。有两种类型的描述符:程序段描述符和系统段描述符程序段即应用程序段,也就是通常的代码段、数据段和堆栈段;而系统段包括任务状态段TSS(TaskStateSegment)和各种门,另外,局部描述符表也作为一种系统段。任务状态段是多任务系统中的一种特殊数据结构,它对应一个任务的各种信息
9.2 保护模式的主要数据结构 9.2.1 段描述符 ◼在保护模式下,把有关一个段的信息即段基址、限长(段 的字节数)、类型、访问权限和其他属性信息存放在8字节 长的数据结构中,这种数据结构称为段描述符,简称描述 符(Descriptor)。 ◼有两种类型的描述符:程序段描述符和系统段描述符。 ◼程序段即应用程序段,也就是通常的代码段、数据段和堆 栈段;而系统段包括任务状态段TSS(Task State Segment) 和各种门,另外,局部描述符表也作为一种系统段。任务 状态段是多任务系统中的一种特殊数据结构,它对应一个 任务的各种信息
9.2.2 描述符表为了查找和识别,把系统中的描述符按线性表的形式来组织即构成描述符表。描述符表的每一项就是一个描述符。描述符表由操作系统建立,并由操作系统维护和管理。有三种类型的描述符表:全局描述符表GDT(GlobalDescriptor Table)、局部描述符表LDT(LocalDescriptorTable)和中断描述符表IDT(Interrupt Descriptor Table)。全局描述符表GDT含有可供系统中所有任务使用的段描述符。局部描述符表LDT只含有与系统中某一个给定任务相关联的描述符。中断描述符表IDT含有指出各中断服务程序位置及相关属性信息的描述符
9.2.2 描述符表 ◼ 为了查找和识别,把系统中的描述符按线性表的形式来组织, 即构成描述符表。描述符表的每一项就是一个描述符。描述 符表由操作系统建立,并由操作系统维护和管理。 有三种类型的描述符表:全局描述符表GDT(Global Descriptor Table)、局部描述符表LDT(Local Descriptor Table)和中断描述符表IDT(Interrupt Descriptor Table)。 ◼ 全局描述符表GDT含有可供系统中所有任务使用的段描述 符。 ◼ 局部描述符表LDT只含有与系统中某一个给定任务相关联的 描述符。 ◼ 中断描述符表IDT含有指出各中断服务程序位置及相关属性 信息的描述符
采用描述符表带来的优点如下1.可以极大地扩展存储空间。2.可以实现虚拟存储。3.可以实现多任务隔离。由于描述符表是位于存储器中的,因此系统中分别用一个寄存器来指出其位置,并称该寄存器为描述符表寄存器共有三个描述符表寄存器,分别是全局描述符表寄存器GDTR、局部描述符表寄存器LDTR和中断描述符表寄存器IDTR
◼ 采用描述符表带来的优点如下: 1. 可以极大地扩展存储空间。 2. 可以实现虚拟存储。 3. 可以实现多任务隔离。 ◼ 由于描述符表是位于存储器中的,因此系统中分别用一个 寄存器来指出其位置,并称该寄存器为描述符表寄存器。 共有三个描述符表寄存器,分别是全局描述符表寄存器 GDTR、局部描述符表寄存器LDTR和中断描述符表寄存器 IDTR
9.2.3段选择符(或选择子)每个段描述符都有一个与之对应的段选择符。在保护模式下,16位段寄存器的内容即为段选择符。段选择符对GDT或LDT提供索引、全局/局部标志以及请求特权级信息。即用段选择符的高13位来选择描述符表中8192个描述符中的一个描述符(213=8192),用段选择符的右数第3位决定是从GDT中还是从LDT中选择描述符,用段选择符的最低两位指出请求特权级。注意,段选择符并不直接指向段,而是指向定义段的段描述符。段选择符的格式及功能如图9.1所示
9.2.3段选择符(或选择子) ◼ 每个段描述符都有一个与之对应的段选择符。在保护模 式下,16位段寄存器的内容即为段选择符。段选择符对 GDT或LDT提供索引、全局/局部标志以及请求特权级 信息。即用段选择符的高13位来选择描述符表中8192个 描述符中的一个描述符(213=8192),用段选择符的右数 第3位决定是从GDT中还是从LDT中选择描述符,用段 选择符的最低两位指出请求特权级。 ◼ 注意,段选择符并不直接指向段,而是指向定义段的段 描述符。段选择符的格式及功能如图9.1所示
150321段选择符索引TIRPL(16位).?段描述符(8字节段描述符(8字节)全局描述符表局部描述符表图9.1段选择符的格式及功能
15 3 2 1 0 全局描述符表 局部描述符表 段选择符 (16位) 图9.1 段选择符的格式及功能