Un _sistema operativo_ è un software che fa da intermediario tra il software dell'utente e l'hardware, fornendo un ambiente di lavoro **comodo**, **performante** e **sicuro** e **mascherando i dettagli dell'hardware**. ## Allocamento risorse Il sistema operativo assegna risorse del computer ai vari programmi in esecuzione, come: - Tempo della CPU (tramite lo **scheduler**) - Spazio su disco - Memoria sulla RAM Le risorse sono bloccate con un **semaforo**: quando il semaforo diventa verde, un nuovo programma ottiene accesso a una risorsa. ## Programma di controllo Il sistema operativo coordina l'esecuzione parallela dei programmi: impedisce che programmi diversi usino le risorse in modo incorretto o malizioso. ## Creazione astrazioni Il sistema operativo astrae le specifiche dell'hardware sottostante, e lo rende più semplice da capire.