存储管理

段式存储管理是实现内存访问控制的一种方式,相比于直接根据地址访问,段式访问增加了一些额外的过程以及对一些寄存器的含义进行了重新定义。参考Linux内核源代码情景分析,简要记录如下。

对段寄存器进行了重新定义,使用其高13位,然后低三位用于状态权限的控制,根据高13位指定的位置,结合低位中的描述符来确定是使用全局描述符表指针还是本地描述符表指针,在这个数据结构中以寄存器中的结果为索引找到对应的GDTR表项,根据表项来决定访问的物理地址。

后续发展形成分页存储管理,分页存储管理和分段存储管理是两码事,只不过考虑到之前的基础,分页弄到了分段之后,在分段形成线性地址后再经过分页映射形成物理地址。
在分页中用到CR系列寄存器来进行分页的控制的初始地址的给出。对地址中的位置含义进行了重新定义。在分两层的情况下,分为高10位,中间10位,低12位,高10位指明了页目录项目,中间10位指向页表项,低12位指向偏移地址。因此在每一次的映射过程中低12位就可以用作控制信息的存储。

在分段中通过将地址不变的映射为线性地址再进行分页映射。

【实验目的】 1. 通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解; 2. 熟悉虚存管理的各种页面淘汰算法; 3. 通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解。 【实验准备】 1.虚拟存储器的管理方式  段式管理  页式管理  段页式管理 2.页面置换算法  先进先出置换算法  最近最久未使用置换算法  Clock置换算法  其他置换算法 【实验内容】 1. 实验题目 设计一个请求页式存储管理方案。并编写模拟程序实现之。产生一个需要访问的指令地址流。它是一系列需要访问的指令的地址。为不失一般性,你可以适当地(用人工指定地方法或用随机数产生器)生成这个序列,使得 50%的指令是顺序执行的。25%的指令均匀地散布在前地址部分,25%的地址是均匀地散布在后地址部分。为简单起见。页面淘汰算法采用 FIFO页面淘汰算法,并且在淘汰一页时,只将该页在页表中抹去。而不再判断它是否被改写过,也不将它写回到辅存。 2. 具体做法 产生一个需要访问的指令地址流;指令合适的页面尺寸(例如以 1K或2K为1页);指定内存页表的最大长度,并对页表进行初始化;每访问一个地址时,首先要计算该地址所在的页的页号,然后查页表,判断该页是否在主存——如果该页已在主存,则打印页表情况;如果该页不在主存且页表未满,则调入一页并打印页表情况;如果该页不足主存且页表已满,则按 FIFO页面淘汰算法淘汰一页后调入所需的页,打印页表情况;逐个地址访问,直到所有地址访问完毕。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值