I'm a bit confused about how the Linux kernel handles parallelism during I/O operations (if it handles it at all).
I assume it can concurrently operate on file descriptors, but does it achieve parallelism when reading files, network sockets, etc.? Or is it a suspend/resume task under the hood (async)?
What happens in these scenarios?
- Multiple threads reading the same file
- Multiple threads reading different files
- Multiple threads reading files and network sockets