4.6.1 Pentium虚拟存储器的核 心数据结构描述符表 ◆局部描述符表LDT( ocal descriptor table) 和全局描述符表GDT( global descriptor table) ◆每个进程都有一个自己的LDT,它描述 多A据段、堆栈段的基地、大小和有关控制 信息等; ◆系统的所有进程共享一个GDT,它描述 系统段,包括操作系统自己的基地、大 小和有关控制信息等
4.6.1Pentium虚拟存储器的核 心数据结构——描述符表 局部描述符表LDT(local descriptor table) 和全局描述符表GDT(global descriptor table)。 每个进程都有一个自己的LDT,它描述 局部于每个进程的段,包括代码段、数 据段、堆栈段的基地、大小和有关控制 信息等; 系统的所有进程共享一个GDT, 它描述 系统段,包括操作系统自己的基地、大 小和有关控制信息等
4.6.2段选择符和段描述符 ◆选择符是一个16位数,如图4-32所示 选择符中的一位指出这个段是局部的还 是全局的,其他13位是LDT和GDT的入 口号 0=GDT /1=LDT 特权级(0-3)
4.6.2段选择符和段描述符 选择符是一个16位数,如图4-32所示。 选择符中的一位指出这个段是局部的还 是全局的,其他13位是LDT和GDT的入 口号。 索引 13 1 2 0=GDT / 1=LDT 特权级(0-3)
基址24-31 长度16-19PDPL 甚址16-23 基址0-15 ◆●基地址共32位(分三处合并),生成内存段的首址,加上32 位偏移形成内存地址。对于286程序,基地址的24--31位不用, 恒为0;所以,286只能处理24位基址。 ◆●长度位共20位,限定段描述符寻址的内存段的长度,注意段长 度的计量单位可以是字节或页。 ◆●G位用于描述颗粒大小,即段长度的计量单位。G=0表示长度 以字节为单位;G=1表示长度以页为单位,在 Pentium中页的长 度是固定的,为4KB。于是段的长度分别为220字节或 220×4KB=232字节。 ◆●D位:当D=1时,为32位段;当D=0时,为16位段。 ◆●P位表示内存段是否在物理主存中,若P=1,表示段在内存中, 若P=0,表示段不在内存中
l基地址共32位(分三处合并),生成内存段的首址,加上32 位偏移形成内存地址。对于286程序,基地址的24—31位不用, 恒为0;所以,286只能处理24位基址。 l长度位共20位,限定段描述符寻址的内存段的长度,注意段长 度的计量单位可以是字节或页。 lG位用于描述颗粒大小,即段长度的计量单位。G=0表示长度 以字节为单位;G=1表示长度以页为单位,在Pentium中页的长 度是固定的 , 为 4KB 。 于 是 段 的 长 度 分 别 为 2 20 字节或 2 204KB=2 32字节。 lD位:当D=1时,为32位段;当D=0时,为16位段。 lP位表示内存段是否在物理主存中,若P=1,表示段在内存中, 若P=0,表示段不在内存中。 DPL 基址0-15 长度0-15 基址24-31 G D 0 长度16-19 P S type A 基址16-23
◆●Dpl位(2位)表示特权级(0-3),用于保护。0为内 核级;1为系统调用级,2为共享库级,3为用户程序级 Windows95只用两级:0级和3级,即系统级和用户级。 ◆●S位为段位,当S=1时,表示当前段为应用程序;当 S=0时,表示描述符将引用内存段外的系统信息(如OS 的特别数据结构) ●type类型字段(3位),表示内存段类型,如可执行代码 段、只读数据段、调用门等等 ◆●A位为访问位,表示是否访问过内存段,为淘汰作准 备
lDpl位(2位)表示特权级(0—3),用于保护。0为内 核级;1为系统调用级,2为共享库级,3为用户程序级。 Windows 95只用两级:0级和3级,即系统级和用户级。 lS位为段位,当S=1时,表示当前段为应用程序;当 S=0时,表示描述符将引用内存段外的系统信息(如OS 的特别数据结构)。 ltype类型字段(3位),表示内存段类型,如可执行代码 段、只读数据段、调用门等等。 l A位为访问位,表示是否访问过内存段,为淘汰作准 备
4.6.3虛拟存储运行模式选择 当设置G控制位1,系统运行于段页模式,此 时每个进程可有8192个段每个段220个页, 每个页4KB,也就是说段可有23字节大小 ◆当设置G控制位1,把系统六个段寄存器设 置为同一个段选择符段描述符基地址设 置为”03,段大小设置为最大,这时系统运 多人行于分页模式单段、分页,32位地址空 间模式运行。 ◆当设置G控制位0,系统运行于分段模式,每 个进程可有213=8K(8192)个段每个段可有 220字节大小这种模式是为了与286兼容
4.6.3 虚拟存储运行模式选择 当设置G控制位1,系统运行于段页模式,此 时每个进程可有8192个段,每个段2 20个页, 每个页4KB,也就是说段可有2 32字节大小。 当设置G控制位1,把系统六个段寄存器设 置为同一个段选择符,段描述符基地址设 置为”0”,段大小设置为最大;这时系统运 行于分页模式,单段、分页,32位地址空 间模式运行。 当设置G控制位0, 系统运行于分段模式,每 个进程可有2 13=8K(8192)个段,每个段可有 2 20字节大小,这种模式是为了与286兼容