XV6 0x6
lab6
interrupt
先设置初始化中断,在每个cpu运行进程时启用该cpu的中断。当需要向设备写入或读取数据时,调用函数判断该是否有缓冲区写入数据,如果有,则发生数据;如果没有,则该进程休眠,进行上下文切换,执行其他进程。
cpu接受到中断,由用户模式切换为监督者模式,进入
usertrap()
函数,判断为哪类中断。跳转到对应中断处理函数。对于以太网等能以极高频率产生中断的程序(极大的中断开销),通常采用
轮询(polling)
的方式来处理中断。
Implement copy-on write (hard)
太菜了没能搞成实验,搞了很久还是不行,内核编程太痛苦了。有时间把这个补充以下。
//TODO
总结一下原因:
- 将重复、可明确区分的操作划分为函数操作,方便调试和区分。
- 增加动手前的思考时间,减少中途的改动。
- 要有耐心。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Randolfluo's blog!