Question: what are the responsibilities of an operating system?
Answer: Hiding the complexities of hardware from the user.
Managing between the hardware's resources which include the processors, memory, data storage and I/O devices.
Handling "interrupts" generated by the I/O controllers.
Sharing of I/O between many programs using the CPU.