What is an OS? Its functionality?
Definition-1: It’s a program that lets you run other programs. We need to differentiate this from a command interpreter or a windowing system, which run other programs based on user requests.
Definition-2: A program that provides controlled access to a computer’s resources. These resources include the CPU (process scheduling), memory (memory management), display, keyboard, mouse (device drivers), persistent storage (file systems), and the network.
The OS provides a level of abstraction (a set of APIs) so that user programs don’t have to deal with the details of accessing the hardware. The OS is also responsible for enforcing proper protections and some concept of “fairness”.
Structure of OS:
Basic Functions of OS:
Process Management: The Operating System also Treats the Process Management means all the Processes those are given by the user or the Process those are System ‘s own Process are Handled by the Operating System. The Operating System will Create the Priorities for the user and also Start or Stops the Execution of the Process and Also Makes the Child Process after dividing the Large Processes into the Small Processes.
The interface between the user and the hardware: An OS provides an interface between user and machine. This interface can be a graphical user interface (GUI) in which users click onscreen elements to interact with the OS or a command-line interface (CLI) in which users type commands at the command-line interface (CLI) to tell the OS to do things.
Memory Management: Operating System also Manages the Memory of the Computer System means Provide the Memory to the Process and Also Deallocate the Memory from the Process. And also defines that if a Process gets completed then this will deallocate the Memory from the Processes.
Coordinate hardware components: An OS enables coordination of hardware components. Each hardware device speaks a different language, but the operating system can talk to them through the specific translational software called device drivers. Every hardware component has different drivers for Operating systems. These drivers make the communication successful between the other software and the hardware.
Provide an environment for software to function: An OS provides an environment for software applications to function. An application software is a specific software which is used to perform the specific task. In GUI operating systems such as Windows and macOS, applications run within a consistent, graphical desktop environment.
Provide structure for data management: An OS displays structure/directories for data management. We can view file and folder listings and manipulate those files and folders like (move, copy, rename, delete, and many others).
Security: Limit users access granting privileges are also the work of OS. Not only users but also programs are given a fair share of memory and restricted so that they cannot just go into other programs memory or access it.
Error Detection and Handling: OS must always aware of possible errors. E.g. if a program wants to access an illegal location then it must be stopped before it consuming too much CPU time. Also, OS should react on errors appropriately and keep the computing consistent and correct.
Monitor system health and functionality: OS monitors the health of our system’s hardware, giving us an idea of how well (or not) it’s performing. We can see how busy our CPU is, or how quickly our hard drives retrieve data, or how much data our network card is sending etc. and it also monitors system activity for malware.