假定题44给出的计算机M采用二级分页虚拟存储管理方式,虚拟地址格式如下:
(1)函数f1的机器指令代码占多少页?
函数f1的代码段中所有指令的虚拟地址的高20位相同,因此f1的机器指令代码在同一页 中,仅占用1页。
(2)取第1条指令(push ebp)时,若在进行地址变换的过程中需要访问内存中的页目录和页表, 则会分别访问它们各自的第几个表项(编号从0开始)?
push ebp指令的虚拟地址的最高10位(页目录号)为00 00000001,中间10位(页表索引)为00 0000 0001,所以,取该指令时访问了页目录的第1个表项,(1分)在对应的页表中访问了第1个表 项。
(3)M的I/O采用中断控制方式。若进程P在调用f1之前通过scanf( )获取n的值,则在执行 scanf( )的过程中,进程P的状态会如何变化?CPU是否会进入内核态?
在执行scanf( )的过程中,进程P因等待输入而从执行态变为阻塞态。
输入结束时,P 被中断处理程序唤醒,变为就绪态。(1分)P被调度程序调度,变为运行态。(1分)CPU状态会从 用户态变为内核态。