晶羽科技-解读点评影视小说作品

微信
手机版

理解xv6——3 陷阱、中断和驱动

2023-11-30 03:49 作者:岑岑 围观:

当运行一个进程时,CPU执行正常的处理器循环:读取一条指令,推进程序计数器,执行指令,重复。

但是在某些事件上,用户程序的控制必须转移回内核,而不是执行下一条指令。

这些事件包括设备发信号通知它需要注意、用户程序做了非法的事情(例如,引用了没有页表条目的虚拟地址)、或者用户程序通过系统调用向内核请求服务。

在处理这些事件时有三个主要挑战:1)内核必须安排处理器从用户模式切换到内核模式(反之亦然);2)内核和设备必须协调它们的并行活动;以及3)内核必须理解设备的接口。解决这三个挑战需要对硬件的详细理解和仔细的编程,并可能导致不透明的内核代码。本章解释了xv6如何应对这三个挑战。

当运行一个进程时,CPU执行正常的处理器周期:读取指令,推进程序计数器,执行指令,并重复。

但是,对于某些事件,用户程序的控制权必须转移回内核,而不是执行下一条指令。

这些事件包括设备发出信号表示需要注意,用户程序做了一些非法的事情(例如,引用一个没有页表条目的虚拟地址),或者用户程序通过系统调用向内核请求服务。

处理这些事件有三个主要挑战:1)内核必须安排处理器从用户模式切换到内核模式(并返回);2)内核和设备必须协调它们的并行活动;以及3)内核必须理解设备的接口。解决这三个挑战需要对硬件的详细理解和仔细的编程,并可能导致不透明的内核代码。本章将解释XVI如何解决这三个挑战。

相关文章