微型计算机原理第5章存储器管理_第1页
微型计算机原理第5章存储器管理_第2页
微型计算机原理第5章存储器管理_第3页
微型计算机原理第5章存储器管理_第4页
微型计算机原理第5章存储器管理_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章卷储器管理

第5章花储器管理

5.1实方式存储器管理

5.2保护方式存储器管理

5.3保护及任务切换

5.4虚拟8086方式

第5章卷储器管理

5.1实方式存储器管理

5.1.1存储器的分段结构

微处理器运行在实方式时,程序对存储器的访问采用分段地

址。分段地址由一个段值和一个有效的地址偏移值组合而成,

其表示方式为:

段值:偏移量(均以省略后缀H的十六进制形式表示)

偏移量确定在

段中一个字节

偏移量从段字

^0^^则量

安置在10H(16)

段值地址处

图5.1在分段寻址中名

M第5章卷储器管理

5.1.2物理地址的形成

段:1BA4:204E

1930

-------►16^^段值00001BA40H

1530

16位偏移值4—+204EH

190

1DA8EH

20彳立物理地址

图5.2实方式下物理地址的产成

犬第5章卷储器管理

5.2保护方式存储器管理

5.2.1存储器的分段管理

1.段选择器

153210

I-I~~I~~I~~I~~I~~I~~I~~I~~I~~I~~~~~~~~F

士匚1TIRPL

索引

请求者特权级

00b二最高特权

11b二最低特权

表中的索引

J表指示器

。二全局描述符表(GDT)

1二局部描述符表(LDT)

图5.3保护方式段选择器格式

第5章卷储器管理

2.段描述符表

153210

局部描述全局描述

符表符表

图5.4段选择器和描述符表

第5章卷储器管理

3.段描述符

r段描述符

I门

图5.5描述符的分类

第5章卷储器管理

1514131211109876543210

在80286上,这一字

段限量

基地址(24〜31)GD0_必须置为0,以便向上

(16〜19)兼容

6

PDPL类型Base基地址(16〜23)

4

基地址(0-15)

2

段限量(0〜15)

0

域描述

G粒度

D缺省

AVL可用

P出现

DPL描述符特权级

DT描述符类型图5.6段描述符格式

第5章卷储器管理

①段基地址。该域用来确定段在存储器的起始地址。对

80286来说,段基地址24位宽,段可在4MB线性地址空间的任何

字节处起始;对80386和80486来说,段基地址32位宽,分成两

部分,由处理器将它们结合在一起,32位段基地址决定了段可

在4GB线性地址空间中的任何字节处起始。可以看出,保护方

式下段基地址的设置与实方式下段基地址仅限于被10H整除的

地址处是大不相同的,使用起来灵活得多。

第5章卷储器管理

②段限量。该域用来确定段的尺寸。对80286,段限量为16

位无符号数,表示段的最大尺寸为64KBo对80386和80486,段

限量由两部分组成20位的无符号数。但仅就20位的段限量还不能

确定出段的尺寸,还需要根据段描述符中粒度D的设置来共同确

定。若粒度位设置成字节粒状,则限量以字节为单位,得段的

尺寸为1B〜1MBo若粒度位设置成页粒状,则限量以页为单位,

一页为4KB,故段的尺寸为4KB〜4GB。当采用页粒状时,有效

地址偏移量的最低12位不必检查。若粒度设置为页,段限量设置

为00000H,则该段的有效地址偏移量为0〜FFFH(4095)。

犬第5章卷储器管理

③类型。

ST位的设置决定

ST了如何^垄释其他域

数据段

访问(1=yes)访问(l=yes)

可读(1=yes)可写(l=yes)

一致性(1=yes)向下扩展(1二yes)

0寸于正^«段£=0)

图5.7段描述符类型域的定义

第5章卷储器管理

④DT位。这是描述符类型位,用来区分两种类型的段描

述符。DT=1,表示为段描述符;DT=O,表示为一个特殊的

描述符(或称系统段描述符)或门描述符。

⑤DPL。该域为描述符特权级域,用来实现保护而不用

于地址生成。

第5章卷储器管理

⑥PoP位为存在位,用来表示描述符存在于存储器中(P=l)

或不存在于存储器中(P=0),它用于地址生成。如果一个描述符

所描述的段已移至硬盘上,表明不在内存中,这时P=0。若这种

情况下试图将该描述符的段选择器装入段寄存器,处理器便会

产生一个段不存在异常(以P=o为标志),并且操作系统中的异常

处理程序会把该段重新装入存储器。因而该位的设置使操作系

统能够对应用程序实现虚拟存储器的功能。

X第5章卷储器管理它

⑦AVLoAVL为可用位,只在80386、80486中使用。该位

用来确定是否允许系统程序员扩充处理器的保护机制,即是否

允许对存储器映象的I/O口实现保护。当AVL=1时,表示该描述

符(用来描述存储器映象的I/O段)可被系统软件使用。当AVL=0

时,表示该描述符对应的段选择器不能重新装入和使用。

第5章卷储器管理E

⑧DoD位为缺省操作尺寸位,不用于地址生成,只在

80386及80486的代码段描述符中被识别。当D=0时,表示操作数

和有效地址的缺省值是16位;当D=1时,表示操作数和有效地址

的缺省值为32位。当一条单指令具有超越前缀时,可以超越该

位设置。

⑨GoG位为粒度位,在80386、80486中,它用来指定段限

量的单位。G=0,表明段限量以字节为单位;G=l,表明段限

量以页为单位,每页4KBo

X(2)特殊的段描述符及门描述符。

表5.1系统段类型域定义

类型域值位设置描述符

00000保留

10001可用的16位TSS

20010LDT

3001116位TSS忙

4010016位调用门

5010116位任务门

6011016位中断门

7011116位陷阱门

81000保留

91001可用的32位TSS

AH1010保留

BH101132位TSS忙

CH110032位调用门

DH1101保留

EH111032位中断门

FH111132位任务门

第5章卷储器管理

4.描述符表寄存器

全局描述符表寄存器(GDTR)

基地址限量

_______________________________________A_________

80286-24位16位

80386/80486-32位

局部描述符表寄存器(LDTR)

选择器基地址限量

16位80286-24位知位

80386/80486-32位

图5.8描述符表寄存器

第5章卷储器管理

第5章卷储器管理

X第5章卷储器管理

而看露—〜一一

可见部分不可见部分

III

6350494847403916150

可写

向下扩展

:几关口

第5章卷储器管理

分不5]^部分

10390898887646332310

图5.1280386和80486段寄存器格式

■^15.2.2存储器的分页管理

1,页目录和页表

分页管理机制在将线性化地址空间的页转换到物理地址空间的

页时,由于每个页面的整个4KB是作为一个单位进行映射的,且

每个页面都对齐在4KB的边界,因而线性地址的低12位在分页转

换过程中将直接作为物理地址的低12位使用。分页管理机制中的

重定位函数(或称转换函数)实际上是把线性地址的高20位转换成对

应物理地址的高20位,并且,这个转换函数是通过对常驻内存的

页表查询来完成的。对页表的查询分两步进行,即查询一个两级

表来完成。第一级表称为页目录表,它的长度也总是恰好为一页(4

KB),且起始于能被1000H整除的物理存储器地址上。因而页目录

表的起始地址为20位(80386sx中为12位),页目录表可在微处理器

4GB(80386sx为16MB)地址空间内任意安置,只要它对齐在4KB

第5章卷储器管理

页目录的4KB数据结构共存放了1024个项(称为页目录项)。

每项4B,32位,是一个指针,它指向另一个相似的数据结构。

这个相似的数据结构即是称为页表的第二级表。它也总是4KB

长,并对齐在4KB的边界处。页表的4KB数据结构又存放了1

024个页表项,每项同样4B,32位长,且作为物理存储器中页

的指针。页目录项和页表项的格式都一样,表示在图5.13中。

其中高20位称为页帧地址,低12位定义如下:

第5章卷储器管理

3112119876543210

UR

页基地址

AVL00DA00//P

32---12

SW

图5.13页目录表/页表的表项格式

第5章卷储器管理

(1)P位。该位为存在位。P=1表示该项里的页地址映射到物

理存储器中的一个页。P=0,表示该项里的页地址没有映射到物

理存储器中,或说该项所指页不在物理存储器中。这时,若欲

用该项进行地址转换将产生一个页出错异常,并且操作系统中

的页出错处理程序将把该项重新装入存储器。如果页目录中,

某项的P位清零,则表示对应的页表已被移出存储器。可以说操

作系统利用P位提供的信息实现了请求分页的虚拟存储器的能力。

(2)R/W位。R/W位为读/写位,用于实现页级保护,它不

涉及到地址转换。

第5章卷储器管理

(3)U/S位。U/S位为用户/监控程序位,用于实现页级保护,

不涉及地址转换。

(4)A位。A位为访问位,用来表明该项指出的页是否已被读

或写。若目录项中A=l,则表示该项所指出的页表已被访问过。

若页表项中A=l,则表示该页表项所指出存储器中的页已被访

问过。总之,A位的置位由处理器完成,A位的状态可供操作系

统软件测试,以便计算不同页的使用频度。

X第5章卷储器管理・

(5)D位。该位为页面重写标志位,只在页表项中设置,而

不在页目录项中设置。当页表项中D=1时,表明该项所指出的存

储器中的页已被写。D位的状态可被操作系统软件测试,以便操

作系统判断存储器的某页在它最后一次被复制到磁盘后是否被

修改过。

(6)AVL域。该域为可用域,共3位,供系统软件设计人员

使用。可将与页使用有关的信息放在该域中,帮助分析判断应

把哪些页移出存储器。

第5章卷储器管理

2.线性地址到物理地址的转换

313029282726252423222120191817161514131211109876543210

目录索引域表索引域偏移量

(10位)(10位)(12位)

图5.14线性地址格式

第5章卷储器管理

31222112110

第5章卷储器管理

31222112110

00100101011001110100100010010000

<—目录索弓]——弓I——偏移量

(1(M立)(10位)(12位)

图5.16线性地址25674890H的分解

L第5章卷储器管理Hr

J^CR3=28345XXXH,而左后录基地址=28345000H。%

性地址中目录索引地址为0010010101B,故得页目录表中所寻址

项的物理地址=目录表基地址+偏移地址(目录索引地址乘

4)=28345000H+254H=28345254H。

设目录表中寻址项(从28345254H开始的4个字节)的内容为

00200021H,这表明寻址项对应页表的基地址为00200000H,P位

(位0)及A位(位5)为1,该被寻址页表在存储器中,且对应目录项

已被访问过。线性地址中的页表索引地址为loonioiooB,故得

页表中所寻址项的物理地址二页表基地址+页表索引地址

X4=00200000H+9D0H=002009D0Ho

又设页表中所寻址项(从002009D0H开始的4个字节)的内容为

34567021H,则页帧基地址=34567000H,要寻址的存储单元最终

物理地址二页帧基地址+线性地址中的12位偏移量

=34567000H+890H=34567890Ho

第5章卷储器管理

4,页转换高速缓冲存储器

31151412110

386DX=20位WEO

386sx=12位

图5.17386DX/386sx转换监视缓冲器(TLB)结构

第5章卷储器管理

3.小结

段机制分页机制

(分页被禁用)

图5.18虚拟一物理地址转换

第5章卷储器管理

5.3保护及任务切换

5.3.1不同任务间的保护

不同任务间的保护首先开始于把每个任务放置在不同的虚拟

地址空间,然后,再在每个任务中定义一组独立的映射表,完成

相互间各不相同的虚拟-物理地址转换。这样,一个任务中的虚

拟地址空间映射到物理存储器的一部分;另一个任务的虚拟地址

空间映射到物理存储器的另外区域。在各任务中定义各自独立的

一组映射表时,一般不应使它们所映射的物理存储空间重叠,因

而,各任务之间是彼此隔离的。

第5章卷储器管理

为了将操作系统与各应用程序隔离,且为各应用程序所共享,

常把操作系统存储在一个单独的任务中,并把操作系统存储在虚

拟存储空间的一个公共区域中。然后,再对每个任务按此公共区

域分配一个同样的虚拟地址空间及定义同样的虚拟-物理地址转

换函数。这样,既可使每个任务能对操作系统进行访问,又可

保证操作系统不被各应用程序破坏。通常,称各任务公用的这

部分虚拟地址空间为全局地址空间,而称仅被一个任务独占不被

其它任务共享的虚拟地址空间为局部地址空间。

M第5章卷储器管理

5.3.2段级别保护

1514131211109876543210

GD0i(皆9)■0286上,

基地址(24〜31)_为向上

6此字必?幡为0

PDPLDT基地址:(16〜23)

4

基地址(0-15)

2

段限量(0~15)

0

域描述

G颗位性

D

AVL可用

P^4

DPL描述符特权级别

DT描述符类型图5.19段描述符格式

犬第5章卷储器管理

1.类型检查

ST位的设置决定

STII।如^可解释其他域

代码段数据段

可访问的(1=yes)可访问的(l=yes)

可读的(1二yes)可写的(byes)

一致的(1二yes)向下扩展(1二yes)

第5章存储器管理

表5.2存储段描述符类型

类型说明类型说明

0只读8只执行

只读、已访问9只执行、已访问

读/写10执行/读

1,读/写、已访问y执行/读、已访问

重只读、向下扩展12;只执行、一致码段

1只读、向下扩展、已访问只执行、一致码段、已访问

6,读/写、向下扩展11执行/读、一致码段

7读/写、向下扩展、已访问15执行/读、一契码段、已访问

第5章存储器管理

表5.3相容的段寄存器和段类型

段类型

;段寄存器’

只读读写只执行执行/读

DS、ES、FS、GS是是否是

'是E否

SS否•否

CS否否是是

第5章卷储器管理

2.限度检查

实方式下,段的限度固定为64KB。保护方式下,段的限度

由段描述符的限度域指出,是不固定的。对80286来说,限度以

字节为单位,16位限度域表明一个段最大尺寸为64KBo对

80386/80486来说,限度域为20位,当描述符中G=0时,限度以字

节为单位,一个段最大尺寸为1MB;当G=1时,限度以页为单位,

一页为4KB,限度=限度域值*4096+4095。因此,若限度域值为

0,则该段的最大尺寸为4KB,程序可访问段内从0到4095的字节。

第5章卷储器管理

除了向下扩充的段以外,所有段的段描述符的限度(化为字

节数)都表示从段起始处开始的最大偏移量。当访问存储器操作

数时,只要被访问操作数的一部分超出限度,处理器就会发出

一般保护异常信号。例如,访问一个双字操作数,其地址在限

度减2处,便会发生异常。

当段描述符中E=1时,为向下扩充段,它常用于堆栈段。

对向下扩充的段来说,限度表示一个段的最小偏移量。向下扩

充堆栈段的合法偏移量范围是从限度的字节数+1直到22。-1(对16

位段)或232-1(对32位段)。当限度=o时,向下扩充段具有最大的

尺寸。

第5章卷储器管理

向上扩展的段向下扩展的段

EIX立二0量EIX立二1量

FFFFHFFFFH

吃卜段内

段的有

PSS+1W偏移量^?£围<P助夏+1w偏移量

WFFFFHCFFFFH

据+1IW+1

IW

段内彭卜

段的有

效范围OOOOHW偏移量0000HW偏移量

WB阪W限度

0000H0000H

*向下扩展的段通常用作堆栈

跖卦痂捉田的坐刑

第5章卷储器管理

3.襁板标

(用户级别)

扩展

系统服务

硼J3核

(最(氐级另狙级另打级别。

级W(最高特权

'第5章商储器管理Br1

5.3.3数据访问

每当一个程序试图访问一个数据段时,便将程序的当前特权

级CPL与要访问段的特权级DPL进行比较,只要DPL的特权级别等

于或低于CPL(或RPL)的特权级,对该数据段的访问便是允许的。

否则便不允许,并产生一个一般保护异常,向操作系统报告该访

问操作违反了特权规则。因而,在数据访问时,被访问的数据段

的特权级DPL规定了允许访问该段的最外层特权级。由于数据访

问的这一特权级规则使得上节所述特权级的典型用法中,0级的操

作系统核心,有权访问任务中的所有数据存储段;1级的操作系统

其余部分有权访问2级和3级的所有数据存储段;3级的应用程序只

能访问本身的处于3级的数据存储段。反过来,0级操作系统核心

的数据存储段却得以保护,不能被操作系统除核心外的其余部分

及应用程序访问。同时,整个操作系统也得到了保护,它的数据

存储段不允许任何2级和3级的应用程序访问。

第5章卷储器管理

5.3.4控制转移

在同一任务中实现控制转移有3种方式:段内转移,直接转

移到另一代码段的段间转移和通过调用门的段间转移。

1.段内转移

段内转移通过近程跳转指令JMP或近程调用指令CALL及返

回指令RET(包括直接给出段内偏移量和间接给出段内偏移量)执

行。它不会引起特权级的变化,也不需再加载CS段寄存器,只

需作限度检查,即检查是否会转移到段外。同时为加速保护检查,

限度值已预先装入到段描述符高速缓存器中。

X第5章卷储器管理

直接的段间转移是最简单的段间转移,它使用具有远程标号

的跳转指令或调用及返回指令执行。这时,远程标号直接给出

一个48位的远指针:16位选择子和32位偏移量。该16位选择子

作为新的选择器值装入CS寄存器时,便将所指向的段描述符装

入CS段寄存器对应的段描述符高速缓存器中。接下来应进行保

护检查,只有当远指针所指目标段的描述符特权级DPL与当前特

权级CPL(当前正执行程序段的特权级)相等,且目标段是一个存

在的可执行的代码段,或目标段描述符特权级DPL高于等于当前

特权级CPL,且目标段是一个存在的,一致的可执行代码段时,

这种控制转移方能实现。即目标段转移地址的基地址由远指针

所指段描述符提供,转移地址的偏移量由跳转或调用指令提供。

第5章卷储器管理石]

这里所谓一薮的可而亍代码段是一种特别的存储段,以段描

述符类型域中ST=1及C=1来标志。一致的可执行代码段用来存放

多个特权级程序共享的例程。例如,存放数值库例程。这样,

不同特权级执行的程序可以使用段间调用指令调用库中被共享的

例程,并可在调用程序(主程序)具有的特权级(等于或低于一致可

执行代码段的特权级)执行该例程,而不要求改变特权级。因此,

可以说直接的段间转移实现的是同一特权级同一任务的转移。

控制转移到一致的代码段,将在调用程序(主程序)具有的特

权级执行一致代码段中的共享例程,而不在一致的代码段由其

DPL表示的特权级上执行共享例程。因而,这种情况下,一致代

码段中的DPL用来规定可以转移到该一致代码段的最内层特权级。

DPL的这种解释正好与数据访问时相反。

第5章花储器管理

3.通过调用门的段间转移

表5.4系统段和门的类型字段的编码

类型编码定义类型编码定义

0未定义8-未定义

1可用286Tss,9可用386Tss

2LDT10未定义

3忙的286TSS11忙的386Tss.

4286调用门12386调用门•

5任务门113未定义

6286中断门14386中断门

7286陷阱门15386陷阱门

第5章卷储器管理

调用门

偏移量(高)*

PDPL0类型000计数

代码段选择器

偏移量(低)

*对80286,大多数二0

域描述

P存在

DPL描述符特权级别

类型指定门类型

计数要拷贝至目标栈的字数(16位门)n

双字数(32位门)

图5.23调用门描述符格式

第5章卷储器管理

1决定谁可以访问门

2决定谁可以访问过程

允话弼绥至不一致代码段,如果:

较d特权(CPL、RPL)W门

DPL、

允许调用期码段,如果:

较寺权(CPL、RPL)W门

DPL、

B^DPL<CPL

图5.24通过调用门的转移

第5章卷储器管理

图5.25特权级和门及其间的调用

第5章卷储器管理

CALL指令通过调用门向内层程序转移时,不仅切换特权级,

而且也需要切换栈。为使微机系统安全运行,操作系统应使每个

任务为每个特权级别保持一个独立的栈。因而,当通过调用门向

内层转移时,必须从主调用程序的外层栈切换到目标的内层栈。

内层栈的特权级别由目标代码段描述符的DPL决定。内层栈的栈

段寄存器SS及栈指针ESP由任务状态段TSS中适当(与目标代码段

相同特权级)的指针进行初始化。TSS由操作系统为每个任务所建,

它包含有由操作系统初始化,且为只读的指向0级、1级和2级的

48位栈指针:栈段选择器(SS)和偏移量(ESP)o通常TSS中的ESP

指针设置成新栈段的高端限定值,因而在新的特权区总是建立起

第5章卷储器管理

向内调用

向外返回

返回后的

内层栈

图5.26切换到内层栈

第5章卷储器管理

5.向外层返回

CALL指令通过调用门把外层的程序转移到内层的过程(子程

序)后,当内层的子程序执行完时,需执行一条段间返回指令RET,

把程序再从内层转向外层,并将堆栈从内层切向外层。仍以图5

26为例说明返回过程。首先,从内层栈中弹出返回地址指针到

CS寄存器和EIP寄存器中,并且可以调整内层栈的ESP值(如图

5.26中ESP+16,该调整数16为RET16的操作数),使其跳过CALL

指令执行时从外层栈拷贝入内层栈的4个双字参数,指向外层栈

指针ESP的压入处。返回地址指针的选择子部分指向要返回的外

层栈。选择子的RPL字段确定返回后的特权级。

第5章卷储器管理

5.3.5页级别保护

图5.27页表及页目录项目格式

第5章存储器管理

表5.5页级保护属性

U/SiR/W用户访问权限系统访问权限

00/读/写/执行

醺[1,产,读/写/执行

1tft;:读/执行1读/写/执行:

11读/写/执行读/写/执行

第5章卷储器管理

表5.6页目录和页表的保护组合

页目录项目页表项目有效保护

特权访问特权访问特权访问

监督者R或R/W监督者或用户R或R/W监督者R/W

用户:

R或R/W监督者R或R/W监督者R/W

用户R用户R或R/W用户R

用户R/W用户R用户R

用户R/W用户R/W用户R/W

第5章卷储器管理31161510

I/O映射基址000000000000000T64H

任务切换0000000000000000任务的LOT选群60H

5.3.60000000000000000GS5CH

0000000000000000FS58H

0000000000000000DS54H

1.任务状态段0000000000000000SS50H

0000000000000000cs4CH

0000000000000000ES48H

EDI44H

ESI40H

EBP3CH

ESP38H

EBX34H

EDX30H

ECX2CH

EAX28H

EFLAGS24H

EIP20H

保留1CH

0000000000000000CPL2演S18H

CPIN的ESP14H

0000000000000000CPL1的SS10H

CPL1的ESPCH

0000000000000000CPLO的SS8

CPLO的ESP4

图52832位任务状态段注:累添髅普落"变在初始化后不改变。其它区

第5章卷储器管理

1)链接字段

任务A任务B任务CEFLAGS

图5.29任务状态段的链接链

第5章卷储器管理

》两层布措钎

任务状态段中有3个内层栈指针,均为48位全指针,依次存

放在TSS中偏移量为4、12及20开始的区域中,分别指向0级、1级

及2级堆栈的栈顶。当发生向内层转移时,便把相应的内层栈指

针装入到SS及ESP寄存器,以便切换到内层堆栈,且把外层栈指

针压入内层栈中,以便当内层向外层返回时恢复外层栈用。TSS

段的内层栈指针没有指向3级的栈指针(因为3级是最外层的特权

级)。如果任务在3级被挂起,由于没有发生特权级转移,堆栈不

用切换,且被挂起任务的指针保存在TSS的SS及ESP寄存器映象

中。

TSS段中的内层栈指针只能读出不能写入,因而,向内层栈

切换时总是将内层栈初始化为同样的栈指针。这是因为不可能发

第5章卷储器管理

不方亲前画弱的筋荐露

这里所谓有关地址映射的基寄存器是指局部描述符表寄存器

LDTR和控制寄存器CR3。LDTR包含当前任务的LDT描述符的选

择子。CR3包含页转换机制中页目录表的基地址(起始地址)。

任务切换时,处理器用新任务TSS段中偏移量为60H中的内容(任

务的LDT描述符选择子)装入LDTR寄存器。这样,便将局部描述

符表LDT变成新任务的LDT,从而也就改变了虚拟地址到线性地

址的转换函数。同样,在任务切换时,处理器用新任务TSS段中

偏移量为1CH处的内容装入CR3寄存器。这样,就将页目录表变

成新任务的页目录表,从而改变了线性地址到物理地址的转换函

数。这种在任务之间改变转换函数的能力,也是保护机制的一部

分,使任务之间得到相互隔离。

第5章卷储器管理

4)寄存器保存区域

TSS的寄存器保存区位于偏移量为20H〜5FH的区域,用来保

存通用寄存器、处理器控制寄存器及段寄存器的内容。其中各

段寄存器内容都保存在一个32位的双字中,双字的低16位存放

16位选择子,双字的高16位为全零。当TSS对应的任务正在执行

时,保存区域是未定义的。当前任务被切换时,通用寄存器、

处理器控制寄存器及段寄存器的当前值便存入当前任务的保存

区域中。这样,当再次发生任务切换,并切换回原任务时,各

寄存器的值可由保存区域读出,恢复成该任务切换前的状态,

以使原任务能恢复执行。

第5章卷储器管理

5)其它字段

TSS中偏移量从66H开始的区域存放I/O许可位图,它定义了

可由TSS对应任务寻址的I/O端口地址。I/O许可位图属于TSS中

的附加字段。

TSS中偏移量为64H处的字是为任务提供的特别的属性。

80386中只定义了一个调试陷阱属性位T(位于64H处字的最低位),

字的其它位为全零。当发生任务切换时,进入任务的T位为1,

则在任务切换后,新任务的第一条指令执行之前产生调试陷阱。

调试陷阱可使软件在任务之间根据需要有效地共享调试寄存器。

第5章卷储器管理

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论