文章

7

粉丝

0

获赞

0

访问

3.8k

头像
2025 年 9 月第 1 次 408 月考试卷 - 第45题回答
操作系统
发布于2025年9月20日 15:12
阅读数 514

(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个页面)。计算过程错误,...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发