learningOS开源操作系统社区
  • 首页
  • 训练营
  • 明星学员
  • 共建单位
  • 项目实习
  • 问答论坛
登录
    Copyright © 2024 opencamp.ai All rights reserved.
    2019 年春 lab3 评分
    匿名2023/07/31 19:51:40提问
      lab3student
    344

    评分标准
    ==============================================================================
    lab3 满分 10 分.

    * 实验基础分 8 分:
    - 看 make grade

    * 对实现过程的简要描述占 1 分:
    - 只贴代码扣 0.5 -- 希望是自然语言的描述
    - 描述有重大错误酌情扣分

    * 对三个问题的回答占 1 分
    - 错一个扣 0.5

    * 在我下载 repo 后才补交的, 我探测了部分, 这些人得分乘以 0.8.
    * 即刻起不接受补交.


    集中出现的问题
    ==============================================================================
    最大的错误在于练习 1 问题 2:

    > 如果ucore的缺页服务例程在执行过程中访问内存, 出现了页访问异常,
    > 请问硬件要做哪些事情?

    答案要点

    * 需要明确提到 *硬件* 要做什么.
    - 关键词须包含 CR2, "将 eflags/eip/cs/errorcode 压栈", 以及 "跳转到 IDT 项指向的中断处理例程".
    有些人意思是对的, 但是说的过于简略 "硬件执行缺页异常处理例程", 没分.
    - 很多人一通瞎说, 想到什么写什么吗, 能写多少写多少 (Chinese 博大精深), 他们的答案里面一堆事情是软件做的.

    * 缺页服务例程过程中继续缺页不是 double fault.
    - double fault 指的是, 处理器尝试跳转到 handler 这一过程中发生了异常.
    包含但不限于: handler 在 IDT 中对应项的 Present = 0; 将 eflags 等压栈时栈溢出导致保护错误
    - double fault 不指: 异常处理例程执行过程中, 因为某条指令执行而导致的嵌套异常.

    * 还有的人把 "缺页异常" 写成 "缺页中断"
    - 建议从汇编开始补习, 着重补习汇编和计原



    附录
    ==============================================================================
    Double fault 在 Intel SDM 中的描述如下. 注意是 while calling, 而非 while
    executing. (英文 broad and profound)

    > Indicates that the processor detected a second exception while calling an
    > exception handler for a prior exception.
    回答(0)
    即可发布评论
      推荐问答
        Simple Empty
        暂无数据