Different types of system calls

The interface between a process and an operating system is provided by system calls. In general, system calls are available as assembly language instructions. They are also included in the manuals used by the assembly level programmers.

System calls are usually made when a process in user mode requires access to a resource. Then it requests the kernel to provide the resource via a system call.

Types of System Calls

There are mainly five types of system calls. These are explained in detail as follows −

Types of System Calls System Calls Process Control File Management Device Management Information Maintenance Communication fork(), exit(), wait() open(), read(), write() ioctl(), read(), write() getpid(), alarm(), sleep() pipe(), shmget(), mmap()

Process Control

These system calls deal with processes such as process creation, process termination, and process synchronization. They allow programs to create new processes, terminate existing ones, and manage their execution state.

File Management

These system calls are responsible for file manipulation such as creating a file, reading a file, writing into a file, deleting files, and managing file attributes.

Device Management

These system calls are responsible for device manipulation such as requesting device access, reading from device buffers, writing into device buffers, and releasing device resources.

Information Maintenance

These system calls handle information and its transfer between the operating system and the user program. They retrieve system information like time, date, process IDs, and system statistics.

Communication

These system calls are useful for interprocess communication. They also deal with creating and deleting communication connections between processes.

Examples of System Calls

Some examples of all the above types of system calls in Windows and Linux are given as follows −

Types of System Calls Windows Linux
Process Control CreateProcess(), ExitProcess(), WaitForSingleObject() fork(), exit(), wait()
File Management CreateFile(), ReadFile(), WriteFile(), CloseHandle() open(), read(), write(), close()
Device Management SetConsoleMode(), ReadConsole(), WriteConsole() ioctl(), read(), write()
Information Maintenance GetCurrentProcessID(), SetTimer(), Sleep() getpid(), alarm(), sleep()
Communication CreatePipe(), CreateFileMapping(), MapViewOfFile() pipe(), shmget(), mmap()

Common System Calls

wait()

In some systems, a process may wait for another process to complete its execution. This happens when a parent process creates a child process and the execution of the parent process is suspended until the child process executes. The suspending of the parent process occurs with a wait() system call. When the child process completes execution, the control is returned back to the parent process.

exec()

This system call runs an executable file in the context of an already running process. It replaces the previous executable file. This is known as an overlay. The original process identifier remains since a new process is not created but data, heap, stack etc. of the process are replaced by the new process.

fork()

Processes use the fork() system call to create processes that are a copy of themselves. This is one of the major methods of process creation in operating systems. The parent process continues execution while the child process starts from the same point with a different process ID.

exit()

The exit() system call is used by a program to terminate its execution. In a multithreaded environment, this means that the thread execution is complete. The operating system reclaims resources that were used by the process after the exit() system call.

kill()

The kill() system call is used by the operating system to send a signal to a process. Despite its name, it doesn't necessarily terminate the process and can send various types of signals for different purposes like interruption, termination, or user-defined actions.

Conclusion

System calls provide the essential interface between user programs and the operating system kernel. The five main categories − process control, file management, device management, information maintenance, and communication − cover all fundamental operations that applications need to interact with system resources safely and efficiently.

Updated on: 2026-03-17T09:01:38+05:30

81K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements