Advertisement

系统调用概念

阅读量:

【系统调用作为操作系统向用户程序开放的交互通道,使得用户程序能够获取操作系统内核所提供的各项服务。这一机制可以被视作连接用户空间与内核的桥梁,其作用类似于中介者,将用户进程的请求传递至内核,并在内核完成处理后将结果反馈给用户空间。关于系统调用的概念,主要涉及两个运行状态:

内核态:当某个进程执行系统调用并进入内核代码运行时,该进程即处于所谓的内核运行态(或简称内核态)。此时处理器正在以最高特权级(0级)运行内核代码。在该状态下,进程所执行的代码会使用当前进程对应的内核栈,每个进程均拥有独立的内核栈。

用户态:当进程执行自身代码时,则处于用户运行态(即用户态)。此时处理器以最低特权级(3级)运行用户的代码。如果在执行用户程序过程中发生中断,则可以象征性地认为该程序进入了类似内核态的状态。因为中断处理程序会使用当前进程的内核栈,这种状态与真正的内核态存在一定的相似性。

在内核态中运行的代码属于操作系统独有的部分,通常较为简洁高效。应用程序通过系统调用进入该状态以实现对计算机其他资源的实际访问。

应用代码从用户态切换至内核态的过程依赖于系统调用机制。具体实现步骤如下:

1、准备相关参数

2、触发系统调用进入内核模式

3、在内核模式下进行处理

4、将处理结果复制回用户空间

5、用户空间获取最终返回值

常见的Unix系统调用大致可分为三类:用于文件操作的系统调用、用于控制

全部评论 (0)

还没有任何评论哟~