参考:《Understanding Unix/Linux Programming: A Guide to Theory and Practice》之2.7
用户进程位于用户空间,内核进程位于系统空间,磁盘只能被内核直接访问。
在运行内核代码时,CPU工作在管理员模式,这对应于一些特殊的堆栈和内存环境,必须在系统调用时切换到这个环境中。系统调用结束后,CPU要切换到用户模式,又要将堆栈和内存环境恢复到用户模式的状态,这种内存环境的切换要耗费很多时间。
因此,系统调用所耗费的时间主要在两次环境切换上,如果用户程序中普通代码和系统调用交替出现,那么将产生很大的环境切换的开销。
本文深入探讨了Linux系统中用户进程与内核进程之间的交互机制,特别是系统调用过程中环境切换带来的开销。解释了CPU在管理员模式下的运行方式,以及系统调用前后内存环境的切换对性能的影响。

1075

被折叠的 条评论
为什么被折叠?



