In computing, a system call is the programmatic way in which a computer program requests a service from the kernel of the operating system it is executed on. A system call is a way for programs to interact with the operating system. A computer program makes a system call when it makes a request to the operating system’s kernel. System call provides the services of the operating system to the user programs via Application Program Interface(API). It provides an interface between a process and operating system to allow user-level processes to request services of the operating system. System calls are the only entry points into the kernel system. All programs needing resources must use system calls.
Services Provided by System Calls :
- Process creation and management
- Main memory management
- File Access, Directory and File system management
- Device handling(I/O)
- Networking, etc.
- Process control: end, abort, create, terminate, allocate and free memory.
- File management: create, open, close, delete, read file etc.
- Device management
- Information maintenance
- Operating System | Dekker’s algorithm
- File Allocation Methods
- Operating System | Process Management | Introduction
- Operating System | Page Table Entries
- Difference between 32-bit and 64-bit operating systems
- Allocating kernel memory (buddy system and slab system)
- Operating System | Selfish Round Robin Scheduling
- Operating System | Introduction of Operating System – Set 1
- Operating System | Process-based and Thread-based Multitasking
- Operating System | Difference between multitasking, multithreading and multiprocessing
Types of System Calls : There are 5 different categories of system calls –
Examples of Windows and Unix System Calls –
|Process Control||CreateProcess() ExitProcess() WaitForSingleObject()||fork() exit() wait()|
|File Manipulation||CreateFile() ReadFile() WriteFile() CloseHandle()||open() read() write() close()|
|Device Manipulation||SetConsoleMode() ReadConsole() WriteConsole()||ioctl() read() write()|
|Information Maintenance||GetCurrentProcessID() SetTimer() Sleeo()||getpid() alarm() sleep()|
|Communication||CreatePipe() CreateFileMapping() MapViewOfFile()||pipe() shmget() mmap()|
|Protection||SetFileSecurity() InitlializeSecurityDescriptor() SetSecurityDescriptorGroup()||chmod() umask() chown()|
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.