文章

63

粉丝

0

获赞

0

访问

13.1k

头像
2017年计算机学科专业基础综合试题 - 第45题回答
操作系统
发布于2025年10月16日 09:46
阅读数 286

(1)f1第一行代码对应地址为00401020H,f1最后一行代码对应地址为0040107FH,因为页内偏移占12位,所以二者的页目录号+页表索引均为00401,所以f1的机器指令代码占1页。

(2)由(1)得00401H = 0000 0000 0100 0000 0001B,页目录号为0000 0000 01B=1,页表索引为0000 0000 01B=1,所以分别时页目录的第1个表项和页表索引的第1个表项。

(3)在调用 scanf()函数获取n的值时,进程P会被阻塞,即进人阻塞状态,等待用户输人完n后才能继续执行。等待用户输人完成并通知进程P。当scanf()函数完成并返回n的值后,需要通过中断处理程序将进程P从阻塞状态唤醒为就绪状态,等待CPU分配时间片来执行后续的计算任务。因为scanf需要使用系统调用来从外设获取n,而P被阻塞后也需要中断唤醒,系统调用和中断处理程序都需要在内核态下执行,CPU会从用户态陷人内核态。


评分及理由

(1)得分及理由(满分1分)

学生正确分析了函数f1的起始地址00401020H和结束地址0040107FH,指出两者页目录号和页表索引相同(均为00401),因此所有指令在同一页中。结论正确,理由充分。得1分。

(2)得分及理由(满分2分)

学生正确将虚拟地址00401020H分解为二进制,并提取页目录号(高10位)和页表索引(中间10位),得出页目录号为1、页表索引为1,因此访问页目录第1个表项和页表中第1个表项。分析过程正确,结果与标准答案一致。得2分。

(3)得分及理由(满分4分)

学生描述了进程P在scanf()过程中从执行态变为阻塞态,输入完成后通过中断处理程序唤醒为就绪态,再经调度变为运行态,并指出CPU会从用户态陷入内核态。这些要点与标准答案完全一致,描述清晰。得4分。

题目总分:1+2+4=7分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发