GO语言的系统调用

内核态

内核态:
 通常一个内核由负责响应中断的中断服务程序,负责管理多个进程从而分享处理器时间的调度程序,负责管理进程地址空间的内存管理程序和网络,进程间通信等系统服务程序共同组成。其独立于普通应用程序,一般处于系统态,拥有受保护的内存空间和访问硬件设备的所有权限,这种系统态和被保护起来的内存空间统称为内核空间。

用户态:
 应用程序在用户空间执行,它们只能看到允许它们使用的部分系统资源,并且只能使用某些特定的系统功能,不能直接访问硬件,也不能访问内核划给别人的内存范围。
 当内核运行时,系统以内核态进入内核空间执行,而执行一个普通用户程序时,系统将以用户态进入用户空间执行。

GO语言的系统调用_第1张图片

从用户态切换到内核态的三种方式:
(1).系统调用:

     首先我们都知道应用程序通过系统调用界面陷入内核,这是应用程序完成其工作的基本行为方式;
(2).中断进入内核:

     当外围设备完成用户的请求操作后,会像CPU发出中断信号,此时,CPU就会暂停执行下一条即将要执行的指令,转而去执行中断信号对应的处理程序&#x

你可能感兴趣的:(linux,内核)