lec4 lab1 SPOC思考题

提前准备

  • 了解GCC/Rust的RV内联汇编以及RV汇编
  • 了解qemu的启动参数的含义
  • 学会使用 qemu
  • 在linux系统中,看看 /proc/cpuinfo的内容

思考题

4.1 中断处理过程

  1. RV中断处理中硬件压栈内容?用户态中断和内核态中断的硬件压栈有什么不同?
  2. 为什么在用户态的中断响应要使用内核堆栈?

4.2 中断初始化

  1. CPU加电初始化后中断是使能的吗?为什么?

开放思考题

  1. 如果没有中断,操作系统设计会有哪些问题或困难?在这种情况下,能否完成对外设驱动和对进程的切换等操作系统核心功能?

课堂实践

练习一

在Linux系统的应用程序中写一个函数print_stackframe(),用于获取当前位置的函数调用栈信息。实现如下一种或多种功能:函数入口地址、函数名信息、参数调用参数信息、返回值信息。

练习二

能否在ucore/rcore内核中写一个函数print_stackframe(),用于获取当前位置的函数调用栈信息。

results matching ""

    No results matching ""