文章
7
粉丝
0
获赞
0
访问
3.8k
(1) 虚拟页面号的划分方式
虚拟地址为32位,页大小为4KB(即2^{12}字节),所以虚拟地址的低12位为页内偏移。剩余的32 - 12 = 20位为虚拟页号部分。
TLB采用4路组相联,共16组,所以组号占4位(因为2^4 = 16),那么TLB标记位为20 - 4 = 16位。
即虚拟页号的高16位是TLB标记,低4位是TLB组号。
(2) 虚拟页面访问数量计算
• 指令代码存储在内存中,假设指令代码占用的空间对应的虚拟页面数:指令共若干条,每条指令占用一定字节,由于页大小为4KB,可计算指令代码占用的虚拟页面数为1个(假设指令总长度小于4KB)。
• 数组A大小为2048B,2048B < 4KB,所以数组A占用1个虚拟页面。
• 综上,至少需要访问1 + 1 = 2个虚拟页面。
(3) 内存分配策略和置换策略组合
• 内存分配策略:固定分配,因为系统为该进程初始分配两个固定的物理页面,后续缺页时仅在已分配页面中置换。
• 置换策略:随机置换,因为当发生缺页时,从已分配页面中随机选择一页换出。
评分及理由
(1)得分及理由(满分2分)
学生正确指出虚拟页号占20位,TLB组号占4位(因为16组),TLB标记占16位(20-4),划分方式正确。但未具体计算第14条指令的虚拟页号(00401H),标准答案要求给出具体页号。因此扣1分,得1分。
(2)得分及理由(满分3分)
学生错误计算数组A大小:数组A有2048个int元素(每个4B),总大小为8192B(8KB),占用3个页面(因为8KB/4KB=2,但起始地址0804A010H到0804C010H跨越3个页)。指令部分占用1个页面正确。但学生误算数组大小为2048B(应为8192B),导致错误结论(2个页面)。计算过程错误,...
登录后发布评论
暂无评论,来抢沙发