系统调用

系统调用是 程序 向 操作系统 发出的请求。它允许 应用程序 访问操作系统 API 中的 函数 和命令。

系统调用执行系统级操作,例如与 硬件 设备通信,以及读取和写入 文件。通过进行系统调用,开发人员可以使用操作系统(OS)支持的预先编写好的函数,而不必从头编写这些函数。这可以简化开发、提高应用的稳定性,并使应用更容易在不同版本的 OS 之间“移植”。

系统调用的工作方式

应用程序在一块称为 用户空间 的 内存 区域中运行。系统调用会访问在内核空间中运行的操作系统 内核。应用程序进行系统调用时,必须先向内核请求许可。这可以通过 中断请求 完成,中断请求会暂停当前的 进程,并将控制权转交给内核。

如果请求获准,内核就会处理该请求,例如创建或删除文件。操作完成后,内核会将 输出 传回应用程序,应用程序再将 数据 从内存中的内核空间传输到用户空间。应用程序会将内核的输出接收为 输入。在程序的 源代码 中,这可能是函数中的 参数 值或返回值。收到输入后,应用程序会恢复进程。

基本的系统调用(例如获取系统日期和时间)可能只需几纳秒。更复杂的系统调用例如与 (网络 设备建立通信)可能需要几秒钟。为了防止出现瓶颈,大多数操作系统会为每个系统调用启动一个单独的内核 线程。现代操作系统支持 多线程,这意味着它们可以同时处理多个系统调用。

更新日期 2019年4月27日 作者 Per C.

quiz测试你的知识

哪种编程语言曾同时用于开发 NeXTSTEP 和 Mac OS X 应用程序?

A
Objective-C
0%
B
C#
0%
C
Pascal
0%
D
Cobol
0%
正确! 错误!     查看Objective-C的定义。
更多测验 →

Tech Terms 计算机词典

本页中系统调用的定义是由 TechTerms.com 的作者撰写的原创定义。如果您想引用本页或引用此定义,请使用定义正下方的绿色引用栏。

我们的目标是以简单易懂的方式解释计算机术语。我们努力使发布的每个定义都做到准确和简明。如果您对本定义有任何反馈,或想建议一个新的技术术语,请联系我们。

Tech Terms 通讯

通过我们的每日或每周通讯提升您的技术知识!立即订阅,即可将新术语和测验发送到您的收件箱。

订阅免费的 TechTerms 通讯

您希望多久收到一封电子邮件?

您可以随时使用每封邮件中的链接取消订阅或更改接收频率。 有疑问?请联系我们。

注意:通讯以英文发送。