System Call

A system call is a request made by a program to the operating system. It allows an application to access functions and commands from the operating system's API.

System calls perform system-level operations, such as communicating with hardware devices and reading and writing files. By making system calls, developers can use pre-written functions supported by the operating system (OS) instead of writing them from scratch. This simplifies development, improves app stability, and makes apps more "portable" between different versions of an OS.

How System Calls Work

Applications run within an area of memory called user space. A system call accesses the operating system kernel, which runs in kernel space. When an application makes a system call, it must first request permission from the kernel. This may be done with an interrupt request, which pauses the current process and transfers control to the kernel.

If the request is allowed, the kernel processes the request, such as creating or deleting a file. When the operation is complete, the kernel passes the output back to the application, which transfers data from the kernel space to the user space in memory. The application receives the output from the kernel as input. In the source code of a program, this may be a parameter value or a return value within a function. Once the input is received, the application resumes the process.

A basic system call, such as getting the system date and time, may take a few nanoseconds. A more advanced system call, such as establishing communication with a network device may require a few seconds. In order to prevent bottlenecks, most operating systems initiate a separate kernel thread for each system call. Modern operating systems are multithreaded, meaning they can process multiple system calls at one time.

Updated April 27, 2019 by Per C.

quizTest Your Knowledge

What does "desk checking" a program involve?

A
Testing an app on a desktop computer
0%
B
Running a program on multiple PCs at once
0%
C
Manually reviewing source code
0%
D
Having a non-developer review an application
0%
Correct! Incorrect!     View the Desk Checking definition.
More Quizzes →

The Tech Terms Computer Dictionary

The definition of System Call on this page is an original definition written by the TechTerms.com team. If you would like to reference this page or cite this definition, please use the green citation links above.

The goal of TechTerms.com is to explain computer terminology in a way that is easy to understand. We strive for simplicity and accuracy with every definition we publish. If you have feedback about this definition or would like to suggest a new technical term, please contact us.

Sign up for the free TechTerms Newsletter

How often would you like to receive an email?

You can unsubscribe or change your frequency setting at any time using the links available in each email.

Questions? Please contact us.