系统调用是如何与操作系统连接的?
系统调用是一种程序通过操作系统进行通信的方法。无法直接访问系统调用的应用程序开发者可以通过API访问(这指的是软件组件必须进行通信的方式)。
系统调用提供了用户程序和操作系统之间的接口。当用户想要向操作系统发出指令时,它将通过系统调用来完成。或者,用户程序可以通过系统调用访问操作系统的内核部分。
这是一种程序化方式,计算机程序通过它向操作系统内核请求服务。
程序以两种模式执行,如下所示:
用户模式 - 无法访问任何硬件资源,只能执行用户操作。
内核模式 - 可以访问硬件资源,如RAM、打印机。
计算机中的处理器根据处理器上运行的代码类型在两种模式之间切换。在用户模式下运行的进程无法访问为操作系统保留的虚拟地址。
当操作系统运行用户应用程序(例如处理文本编辑器)时,系统处于用户模式。当应用程序请求操作系统的帮助或发生中断或系统调用时,就会发生从用户模式到内核模式的转换。
在用户模式下,模式位设置为1。当程序需要任何硬件资源时,它需要调用内核。
API中的函数调用正常的系统调用。系统调用允许用户级活动来调用操作系统的服务。
在用户模式下的程序需要访问RAM,程序应该请求内核提供对RAM的访问权限,这通过系统调用来完成。从用户模式到内核模式的切换称为上下文切换。
注意 - 内核模式是强大的特殊模式。任何崩溃都会导致整个系统停止,这在用户模式下不会发生,在用户模式下只有特定程序会停止。
下图描述了内核模式:
广告