Swa*_*ala -5 performance kernel
为什么内核代码比用户代码运行得更快?我听说用户代码可以用C语言编写,内核代码也可以用C语言编写,例如Windows。那么在内核模式下更快执行的原因是什么?
通常,在内核空间中运行的代码与用户空间中的代码以相同的速度运行。例如,如果您sin从头开始实现一个函数来计算角度的正弦,则在两种情况下,它都将以相同的速度运行。
进行系统调用时,可以在内核空间中更快地运行代码。当用户模式代码调用系统功能时,操作系统将切换到超级用户模式,并且这种转换可能很慢。在内核空间中运行的代码已经处于超级用户模式,因此不需要模式切换。在某些操作系统上,从用户空间进行系统调用也会导致上下文切换缓慢。
在一个sin函数示例中,如果您向执行系统调用以写入文件的sin函数中添加了日志记录语句,则该函数如果在内核模式下运行,则速度会更快。
有关更多信息,请参见以下Wikipedia文章和部分: