An operating system stands between your program and the raw hardware. Your code never talks to the disk or network directly. It asks the OS, which grants access through system calls.
Three jobs dominate. The OS schedules CPU time, so many programs take turns on limited cores. It hands each program its own memory view, so one bug cannot scribble on another. It manages files, devices, and network behind uniform interfaces.
This design lets your program pretend it owns the machine. In reality dozens of programs share one box. Without the OS enforcing boundaries, a single careless loop could freeze everything or read another program's secrets. That isolation and sharing is the whole point.
Rewriting in plainer words…
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.