An Operating System manages all the computer's resources, including hardware and software. It provides an environment in which a user can execute his/her programs conveniently and efficiently by hiding the hardware's underlying complexities and acting as a Resource Manager.
Abstraction simply means hiding the working complexity or technical details of the system. The operating system provides a level of abstraction or a layer of abstraction with the help of OSAL. OSAL stands for Operating System Abstraction Layer, a set of application programming interfaces (APIs) that a developer can use to quickly develop an application without considering the type of operating system, hardware, and background complexity of the operating system.
Arbitration in an Operating System is a set of rules that allocate machine resources, such as memory or peripheral devices, to multiple users or programs. It acts as a controller to divide hardware resources to the running processes or apps. Arbitration helps to create a more efficient and adequate multitasking environment in the OS. It also enforces system and security policies to isolate apps from interfering with each other. For example, arbitration can prevent a software crash from affecting other running software.
An operating system uses various memory management techniques such as Paging or Segmentation.
Paging - Paging is a technique that divides memory into fixed-sized blocks. The main memory is divided into blocks known as Frames and the logical memory is divided into blocks known as Pages.
Segmentation - Segmentation divides the user program and the secondary memory into uneven-sized blocks known as Segments.