The operating system controls the resources and functions of the computer through controlling access to the central processor unit (CPU) memory, file storage, and input/output devices. It manages tasks such as scheduling the use of resources to avoid conflicts and interference among processes, regulating the structure and content of files on non-primary storage media and determining which applications are able to utilize hardware components like disc drives or WiFi adapters. It also allows interactive users to try this out connect to the system using the use of a Graphical User Interface or Command-Line Interface.
Process Management
The operating system handles the start, stop and resumption processes of applications. It decides which application should be first executed, for how long the CPU will be used, and also when to stop. It also can split the program into several threads, allowing it to run on several processors in parallel. Each of these actions is controlled by an operating system program called a process control block.
File management
Operating systems maintain the structure and content of files within nonprimary data storage. They know where each piece of data in a file is and can transfer it between storage and memory when needed. They can also map virtual memory pages to physical memory pages to speed up access. This is known as demand paging.
It also communicates directly with the computer hardware through drivers and other interface software. For instance when an application needs to utilize a particular piece of hardware such as an adapter for Wi-Fi, the operating system will provide the driver and then let the application access it. This is all done without the programmer needing to write an entirely new piece of code for each Wi-Fi adaptor disk drive, or another type of hardware.