An Operating System is a software that manages the hardware resources of a computer and provides to the higher software layers some standard components. In this way customers can use the connected peripheral devices without worrying about the precise hardware model they use. By taking care of the resources management an Operating System is in charge of monitoring and assign memory, CPU, disk to the processes in execution. It also worries about informing them about potential external events, like the peripheral devices connection or the press of a key by the user.
There are a lot of Operating Systems, divided according to their typology. Among all typologies of the most widespread Operating Systems we can find monolithic Operating Systems (classical ones, to which we are used to, like our PC has), real-time Operating Systems (used in high critical environments) and embedded Operating Systems (widely used in modern electrical appliances).