Artificial intelligent assistant

How does Linux kernel handles multiple parallel syscall() request? I am wondering what will happen if there is a multiple core system say 8 core for ex. and each task running on core makes `syscall()` request to kernel at same time. My question is how kernel handles multiple parallel `syscall()` request, parallely or sequentially or any other wavy.

In the past, calls into the kernel were serialised, using the Big Kernel Lock. That was removed quite a long time ago though, and even before that quite a few kernel paths no longer used the BKL, so system calls in particular have run in parallel for a long time. With the introduction of pre-emption in the kernel itself, system calls can even interrupt each other (see What was the reason of the non-preemptivity of older Linux kernels? for details).

Thus the short answer to your question is that the kernel handles multiple parallel system calls in parallel.

There will be some cases where execution of the system calls involves acquiring locks, which will serialise conflicting system calls, but that’s getting rarer as time goes on and the existing locks are removed or replaced with finer-grained locks (when they cause performance problems).

xcX3v84RxoQ-4GxG32940ukFUIEgYdPy 1f26dc1e6693fa3550b56f23b46fc847