Process Control
These types of system calls deal with process creation, process termination, process allocation, deallocation etc. Basically manages all the process that are a part of OS.
- fork(): Creates a new process (child) by duplicating the current process (parent). This call is made when a process makes a copy of itself and the parent process is halted temporarily until the child process finishes its execution.
- exec(): Loads and runs a new program in the current process and replaces the current process with a new process. All the data such as stack, register, heap memory everything is replaced by a new process and this is known as overlay. For example, when you execute a java byte code using command – java “filename”. Then in the background, exec() call will be made to execute the java file and JVM will also be executed.
- wait(): The primary purpose of this call is to ensure that the parent process doesn’t proceed further with its execution until all its child processes have finished their execution. This call is made when one or more child processes are forked.
- exit(): It simply terminates the current process.
- kill(): This call sends a signal to a specific process and has various purpose including – requesting it to quit voluntarily, or force quit, or reload configuration.
Different Types of System Calls in OS
System calls are interfaces provisioned by the operating system to allow user-level applications to interact with low-level hardware components & make use of all the services provided by the kernel, which is a core component and the heart of an operating system that manages all the hardware and the services provided by the OS. These system calls are essential for every process to interact with the kernel and leverage the services provided by it.
System calls are basically an interface between a process and the operating system. And they’re the only way to switch from user mode to kernel mode.
Pre-requisite: Introduction to System Calls