系统调用
系统调用是 程序 向 操作系统 发出的请求。它允许 应用程序 访问操作系统 API 中的 函数 和命令。
系统调用执行系统级操作,例如与 硬件 设备通信,以及读取和写入 文件。通过进行系统调用,开发人员可以使用操作系统(OS)支持的预先编写好的函数,而不必从头编写这些函数。这可以简化开发、提高应用的稳定性,并使应用更容易在不同版本的 OS 之间“移植”。
系统调用的工作方式
应用程序在一块称为 用户空间 的 内存 区域中运行。系统调用会访问在内核空间中运行的操作系统 内核。应用程序进行系统调用时,必须先向内核请求许可。这可以通过 中断请求 完成,中断请求会暂停当前的 进程,并将控制权转交给内核。
如果请求获准,内核就会处理该请求,例如创建或删除文件。操作完成后,内核会将 输出 传回应用程序,应用程序再将 数据 从内存中的内核空间传输到用户空间。应用程序会将内核的输出接收为 输入。在程序的 源代码 中,这可能是函数中的 参数 值或返回值。收到输入后,应用程序会恢复进程。
基本的系统调用(例如获取系统日期和时间)可能只需几纳秒。更复杂的系统调用例如与 (网络 设备建立通信)可能需要几秒钟。为了防止出现瓶颈,大多数操作系统会为每个系统调用启动一个单独的内核 线程。现代操作系统支持 多线程,这意味着它们可以同时处理多个系统调用。
测试你的知识