80386的内存分页机制

80386处理器的内存分页由CR0寄存器的PG位控制,启用后线性地址划分为目录、页表和偏移量三部分。4G线性空间以4K页大小映射,需1M页,采用两级页表,页目录表有1K项,页表同样如此。Windows98通过切换页表实现在不同时间片内的线性地址映射变化。
摘要由CSDN通过智能技术生成

除了CR3,使用的是物理地址,其他寄存器使用的是线性地址。

是否启动分页机制,是由CR0中PG(31)位决定的。

在启用分页机制后,32位的线性地址被划分成3个域:

  • Directory(目录),在线性地址中为最高10位,用于访问页目录表中的项。
  • Table(页表),在线性地址中为中间10位,用于访问页表中的项。
  • Offset(偏移量),最低12位,用于访问页内的某个存储单元。

映射表结构:4G的线性空间,页大小为4K,那么就需要1M页,也就是说映射表中有1M项,每项占4字节,那么这张表就需要4字节。

采用上面页映射表分为二级。页目录表有1K个表项,每项为4字节。页表也这么分配。

windows98的一个进程的线性空间安排

开始位置

 

ffffffff

操作系统代码

c0000000

系统dll

80000000

用户dll

10000000

进程堆栈和进程代码、数据

00400000

dos/win16兼容区

00001000

空指针区域

通过切换页表内容让线性地址在不同的时间片内映射不同的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值