Kernel mode 与 User mode

Cpu的计算时间会处于两种不同的状态Kernel mode 与User mode

Kernel mode:内核态,也称为系统态(System mode)。在内核态下,执行代码具有对底层硬件的完全且不受限制的访问,可以执行任何CPU指令并引用任何内存地址。内核模式通常保留给操作系统最底层、最受信任的功能。

User mode:用户态。在用户态下,执行代码无法直接访问硬件或者引用内存(reference memory)。以用户模式运行的代码必须委托给系统API才能访问硬件或内存。

即,程序在调用底层系统功能,例如网络连接、读取硬盘文件等服务,会伴随着用户模式到内核模式的一个切换。这就是read file、I/O等服务的数据需要先到kerner buffer再拷贝到user buffer。

最后,这种状态的切换的代价是非常昂贵的~

reference:
https://blog.codinghorror.com/understanding-user-and-kernel-mode/

你可能感兴趣的:(Kernel mode 与 User mode)