What is the Difference Between System Call and Interrupt

The main difference between System Call and Interrupt is that System Call is a method that allows a program to request services from the kernel while Interrupt is an event that indicates the CPU to perform a specific task immediately.

The operating system works as the interface between the user and the hardware.  Moreover, the core of an operating system is the kernel. It performs various tasks such as process management, file handling, hardware device management, securing the system, and many other tasks. System call and interrupt are two terms that are related to an operating system.

Key Areas Covered

1. What is System Call
     – Definition, Functionality
2. What is Interrupt
     – Definition, Functionality
3. Relationship Between System Call and Interrupt
     – Outline of Relationship
4. Difference Between System Call and Interrupt
     – Comparison of Key Differences

Key Terms

CPU, Hardware Interrupt, Interrupt, Kernel, Software Interrupt, System Call

Difference Between System Call and Interrupt - Comparison Summary

What is System Call

There are two modes in a computer: the user mode and the kernel mode. Most programs in the operating system are executed in the user mode. When a program is executed in the user mode and requires access to RAM or a hardware resource, it asks the kernel for resource via a system call. When the program makes a system call, the mode changes from user mode to kernel mode. After completing the task, the mode changes from the kernel mode back to the user mode. We also call this mode change context switching.

Difference Between System Call and Interrupt

Usually, system calls can occur when creating, opening, closing and deleting files, creating and managing new processes, establishing a connection in a network to send and receive packets and to request access to hardware devices.

What is Interrupt

An interrupt is an event that notifies the CPU to take immediate action. It is caused by components other than the CPU. Latest computers respond to interrupts immediately. In addition, there are two types of interrupts:  hardware and software interrupts.

Main Difference - System Call vs Interrupt

Hardware devices create hardware interrupts. Hard disk, network devices, timers, input devices such as mouse and keyboard can cause hardware interrupts. Furthermore, each hardware interrupt is associated with an interrupt number. The number indicates the CPU about the device which causes the interrupt.

There are two types of hardware interrupts:

Maskable interrupts – CPU can delay these interrupts when it receives higher priority interrupts.

Non-Maskable Interrupts – CPU cannot delay these interrupts and it should immediately consider them.

Moreover, a software interrupt is caused by an executing program. It also helps to communicate with the kernel to invoke system calls.

When an interrupt occurs, the CPU pauses the currently executing program and executes the corresponding Interrupt Service Routine (ISR). ISR consists of code specifying the tasks to follow when the interrupt occurs. After handling the interrupt, the CPU executes the usual programs.

Relationship Between System Call and Interrupt

  • Software interrupt facilitates communication with the kernel to invoke a system call.

Difference Between System Call and Interrupt

Definition

A system call is a programmatic way in which a computer program requests a service from the kernel of the operating system it is executing on while an interrupt is an event that is triggered by external components that alert the CPU to perform a certain action. Thus, this is the main difference between system call and interrupt. 

Usage

Moreover, a system call allows a program to communicate with the kernel to access a resource such as memory or a hardware device while an interrupt indicates the CPU to pause the currently executing programs and to perform some immediate action. Hence, this is also an important difference between system call and interrupt. 

Conclusion

System call and interrupt are two important concepts related to an operating system. In brief, the main difference between System Call and Interrupt is that System Call is a method that allows a program to request services from the kernel while Interrupt is an event that indicates the CPU to perform a specific task immediately.

References:

1.“Interrupt.” Interrupt Definition, Available here.
2.“Introduction to System Calls.” Studytonight, Available here.

Image Courtesy:

1.”System call interface” By system call interface(CC BY-SA 4.0) via Commons Wikimedia
2.”Path of interrupts from hardware, to PIC, to CPU” By Jfmantis – Own work (CC BY-SA 3.0) via Commons Wikimedia

About the Author: Lithmee

Lithmee holds a Bachelor of Science degree in Computer Systems Engineering and is reading for her Master’s degree in Computer Science. She is passionate about sharing her knowldge in the areas of programming, data science, and computer systems.

Leave a Reply