第四章存储器管理-2终稿.pptx
文本预览下载声明
离散分配方式
基本思想:将一个进程分散的装入不相邻的分区中。
离散分配的基本单位是页,则称为分页存储管理方式;
如果离散分配的基本单位是段,则称为分段存储管理方式。
4.5 分页存储管理方式
1、页面和物理块
将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页,并为各页编号,从0开始,如第0页、第1页等。
把内存空间分成与页面相同大小的若干个存储块,称为块或页框,也加以编号,如0#、1#块等。
以块为单位将进程中的若干个页分别装入到多个可以不相邻接的物理块中。
页内碎片
由于进程的最后一页经常不满一块而形成可不可利用的碎片,称之为“页内碎片”。
页面大小
通常1KB—8KB
页面太小:页内碎片小,提高内存利用率,但页表过长,占内存;降低对换效率。
页面太大:提高了对换速度。但页内碎片大,降低了内存利用率。
2、地址结构
页号P
位移量W
0
11
12
31
位移量W又称页内地址:
每页大小:212=4KB
地址空间中最多有:
220=1M页
例:
页号P
位移量W
0
9
10
15
每页大小:210=1KB
地址空间中最多有:
26=64页
逻辑地址A
页面大小L
页号P
页内地址d
页面大小L
逻辑地址
A
0
则:P=[A/L]
d=[A]MOD L
例如:
逻辑地址A=2170B,页面大小L=1KB。求页号及页内地址。
解:
页号P=[A/L] =2
页内地址d =[A]MOD L=122
3、页表
系统为了能在内存中找到每个页面对应的物理块而为进程建立的一张页面映像表,简称页表。
页表作用:实现从页号到物理块号的地址映射。
0页
1页
2页
3页
4页
……
n页
用户程序
0
2
1
3
2
6
3
8
4
9
…
…
页表
0
1
2
3
4
5
6
7
8
9
内存
页号 块号
页表表项中常设有存取控制字段,对存储块中内容加以保护。
一位: 允许读/写
只读
两位:
允许读/写
只读
只执行
页表由一组专门的寄存器来实现,一个页表项用一个寄存器。
页表大多数驻留在内存中。
系统中只设置一个页表寄存器PTR,存放页表在内存的始值和页表的长度。
进程未执行时,页表的始值和页表长度存放在本进程PCB中。当调度到进程时,装入页表寄存器中。
图4-15分页系统的地址变换机构
4.5.2地址变换机构
1、基本的地址变换机构
●逻辑地址被分为两部分:
●页号
●页内位移
●例如逻辑地址1500的二进制形式为0000 0101 1101 1100
由于页的大小为1024B(210),故页内位移占10位,剩下6位为页号
●逻辑地址1500对应的页号为1(二进制为0000 01)
●页内位移为476(二进制为01 1101 1100)
页式存储管理逻辑地址结构
页式存储管理地址变换机构
2、快表引入原因
CPU存取一个数据时要两次访问内存:
第一次是访问页表,找到指定页的物理块号,再将块号与页内偏移量W拼接形成物理地址。
第二次访问内存,从所得地址中获得所需数据(或向此地址中写入数据)。
“联想寄存器” 或 “快表”:
为提高地址变换速度,增设一个具有并行查询能力的高速缓冲寄存器,称为,用于存放当前访问的页表项。
地址变换过程
cpu给出有效地址,由地址变换机构自动地将页号p送入高速缓冲存储器,并将此页号与高速缓存中的所有页号进行比较,若有与此相匹配的页号,则表示所要访问的页表项在快表中。于是,可直接读出该页所对应的物理块号,并送物理地址寄存器中。
页号
高速缓冲存储器
页号
匹配
如在快表中末找列对应的页表项,还须再访问内存中的页表,找到后,把从页表项中读出的物理块号送地址寄存器;同时,还将此页表项存入快表中的一个寄存器单元中,亦即置新修改快表、但如果联想存储器已满,则os必须找到一个老的且已被认为不再需要的页表项将它换出。
图4-16具有快表的地址变换机构
快表通常只存放16~512个页表项
大型作业只能将其一部分页表项放入其中
从快表能找到所需页表项的命中率可达90%。
4.5.3访问内存的有效时间
例:
检索联想存储器的时间为20ns,访问内存的时间为100 ns。如果能在联想存储器中检索出页号,则CPU存取数据总共需要
如果不能在联想存储器中找到该页号,则总共需要 。再假定访问联想存储器的命中率分别为o%,5o%,80%,90%,98%,计算有效访问时间。
t1=120 ns。
t2=220 ns
有效访问时间:T
命中率:h
T=h*t1+(1-h)*t2
显示全部