lab6

interrupt

  • 先设置初始化中断,在每个cpu运行进程时启用该cpu的中断。当需要向设备写入或读取数据时,调用函数判断该是否有缓冲区写入数据,如果有,则发生数据;如果没有,则该进程休眠,进行上下文切换,执行其他进程。

  • cpu接受到中断,由用户模式切换为监督者模式,进入usertrap()函数,判断为哪类中断。跳转到对应中断处理函数。

  • 对于以太网等能以极高频率产生中断的程序(极大的中断开销),通常采用轮询(polling)的方式来处理中断。

Implement copy-on write (hard)

太菜了没能搞成实验,搞了很久还是不行,内核编程太痛苦了。有时间把这个补充以下。

//TODO

总结一下原因:

  1. 将重复、可明确区分的操作划分为函数操作,方便调试和区分。
  2. 增加动手前的思考时间,减少中途的改动。
  3. 要有耐心。