Sistema operativo
Definizione: Insieme di programmi, organizzati in moduli in ordine gerarchico, che gestisce l'hardware facendo da inferfaccia con l'utente e i programmi (codice)
Interprete (Shell)
/msdos-commands-580d2b603df78c2c7355a118.png)
CUI(Command User Interface) es. MS-DOS

GUI(Graphical User Interface) es.Windows 10
Fyle System
Kernel
Strato più basso(primitivo) che è il primo ad interfacciarsi con l'HW, per cui offre le funzioni di base, usate dagli altri componenti
Gestione dei processi
First Come First Served (FCFS):
i processi pronti vengono schedulati
ed eseguiti secondo l'ordine di arrivo
Shortes Job First(SJF):
viene eseguito prima il processo
che occuperà meno tempo per la CPU. Causa il fenomeno della Starvation(quando un processo rimane troppo tempo in coda,in stato di WAIT)
Shortest Remaining Time First(SRTF):
come il SJF ma si misura non il tempo
del job intero ma della parte rimanente
che dovrà essere eseguita
Scheduling Con Priorità:
viene assegnato ad ogni processo un
numero intero che ne indica la priorità
(Ogni Sistema Operativo usa delle regole per organizzare le priorità)

Algoritmo Multiple Level Feedback Queses(MLFQ):
si ottiene dalla combinazione di un FCFS con un algoritmo di priorità in base al quale si organizzano delle liste di priorità;può anche essere implementato il Round Robin facendo si che i processi che sono presenti in coda da più tempo aumentino di priorità e quelli che avevano maggiore priorità e sono stati eseguiti nel time slice, ma non completati vengano ridotti di priorità
Scheduling Round Robin:
ogni processo ha un uguale tempo stimato
di esecuzione(time slice)al termine del quale,passerà nello stato di attesa se l'esecuzione non è stata terminata
Gestione della Memoria
Partizionamento della memoria:
La memoria viene divisa in partizioni e ad ognuna di esse è associato un programma; se la partizione ha dimensioni molto maggiori rispetto al programma si verificherà la frammentazione interna, lasciando gran parte della partizione vuota occupata, mentre nel caso in cui il programma abbia dimensioni maggiori della partizione si verificherà la frammentazione esterna(anche se con la somma di due partizioni si potrebbe coprire l'intera dimensione del programma)
Memoria virtuale
Paginazione:
Consiste nel dividere il programma in pagine di uguali dimensioni; vengono distinte pagine logiche cioè quelle in cui viene scomposto il programma da quelle fisiche in cui viene divisa la RAM
Segmentazione:
A differenza della paginazione segmenta in parti distinte le istruzioni e i dati evitando quindi di caricare più volte il programma nel caso in cui si vogliano creare più istanze; il continuo caricare e scaricare la memoria genera il problema del frazionamento
Gestione delle periferiche
•Nuovo(new) :processo appena creato
•Esecuzione(running):la CPU sta eseguendo le sue istruzioni
•Attesa(waiting):manca una risorsa per poter evolvere
•Pronto(ready):manca solo la risorsa CPU per evolvere
•Finito(terminated):termine dell'esecuzione
Processi
Le unità dinamiche, in evoluzione, che compongono un programma, eseguite singolarmente dalla CPU.
PROCESS DESCRIPTOR, O PROCESS CONTROL BLOCK
Che contiene le informazioni per l'esecuzione del processo
