Sistemi Operativi
(prima parte)
Appunti di TPI
Elaborati dal prof. Ing. Mario Catalano
Per la classe 3 Einf.
Il Sistema Operativo (O.S. Operating System) è un
insieme di programmi che governa e controlla l’uso
delle componenti del sistema di elaborazione ed
ha lo scopo di renderli disponibili all’utente per un
utilizzo trasparente ed efficace.
Il Sistema Operativo può essere inteso come
aiuto verso l’utente attraverso i programmi di
utilità: editor, compilatori, ecc. ecc. GUI, device,
plug and play e come gestore delle risorse:
gestione della memoria, gestione della cpu,
gestione di i/o e gestione del file system)
Caratteristiche
• Il sistema operativo:
– è un insieme di moduli software
– controlla le risorse hardware del sistema
– mette a disposizione dell’utente una macchina virtuale, in
grado di eseguire comandi dati dall’utente, utilizzando la
macchina “reale”.
– la macchina virtuale nasconde tutti i dettagli hardware che
sarebbero troppo complicati da gestire per la maggior parte
degli utenti
Funzioni di servizio del SO
Esecuzione di applicazioni
Accesso ai dispositivi di ingresso/uscita
Archiviazione di dati e programmi
Controllo di accesso
Contabilizzazione
Gestione dei malfunzionamenti
Visioni fornite da un SO
 Dall'alto:
il sistema operativo fornisce
all'utente un'interfaccia conveniente.
 Dal basso: gestisce tutti le parti di un
sistema complesso, allocando in modo
ordinato le diverse risorse della macchina:
processori, memorie, dischi, interfacce di
rete, stampanti e altre periferiche.
Inteprete dei comandi (shell)
L’interprete dei comandi è quella parte del
sistema operativo che riceve ed elabora le
istruzioni impartite da un utente.
E’ possibile utilizzare lo
stesso sistema operativo
con shell differenti.
Questo può rendere
molto diverso il modo di
impartire comandi.
Inteprete dei comandi (shell)
La shell è dunque lo strato più esterno di un
sistema operativo. Di fatto, rappresenta
l’interfaccia tra utente e sistema.
MacOS X
Windows XP
Linux – KDE 3.0
Interfaccia
L’interfaccia è il mezzo attraverso il quale
l’utente invia comandi alla shell.
Esistono diverse interfacce possibili per
l’interazione uomo-macchina.
Interfacce
Due sono i tipi di interfaccia più diffusi per interagire
con un computer:
• Interfacce a caratteri,
caratteri dette “a riga di comando”
(CLI, command line interfaces)
• Interfacce grafiche (GUI, graphical user
interfaces), in particolare di tipo WIMP (Windows,
Icons, Menus, Pointing device)
Elementi grafici
Come abbiamo visto le interfacce attuali, basate sulla
metafora della scrivania, sono di tipo WIMP.
Gli elementi che le compongono vengono detti widget (a
small gadget)
Una “widget” è un elemento che fornisce informazioni
all’utente o gli permette di interagire con il sistema
operativo o con un’applicazione.
Esempi di widget sono le icone, i menu, i pulsanti, le
finestre, le barre di scorrimento, le caselle di testo…
Classificazione dei SO
Come sono scritti i SO
• Data la stretta dipendenza dall’HW alcune
parti del SO sono in linguaggio macchina.
• Tradizionalmente la maggior parte del SW
che compone un SO è scritta in C.
– Es. Windows, Linux
Struttura a “cipolla”
Gli strati della “cipolla”
• Ogni strato (livello) costituisce una
macchina virtuale:
– usa le funzionalità di quello sottostante
– fornisce servizi al livello che segue nella
gerarchia
– gestisce delle risorse mediante politiche
invisibili ai livelli superiori (struttura modulare
del Sistema Operativo)
ARCHITETTURA
DI
SISTEMA OPERATIVO
UN
Livello 1: Nucleo
Hardware
Livello 2: Gestione della
M.C.
Livello 3: Gestione
Periferiche
Livello 4: Gestione informazioni
Programmi di utility: Spool, editor,
ecc.
Programmi Utente.
Livello 0: Macchina fisica: a questo livello appartengono i
moduli software che gestiscono l’hardware;
Livello 1: Nucleo del sistema operativo: contiene il software
Memory Management che ha il compito di gestire il
processore da assegnare ai programmi residenti in M.C;
Livello 2: Memory Management: contiene i moduli per la
gestione della Memoria Centrale ovvero la determinazione
dell’allocazione e rilocazione dei programmi;
Livello 3: I/O Management contiene i moduli che
controllano il flusso dei segnali e informazioni da e verso le
periferiche (Device Management)
Livello 4: File System o gestore delle Memorie di massa
contiene i moduli che controllano l’accesso alle informazioni
memorizzate su memoria di massa (Data Management)
Il livello superiore rappresenta l’utilizzo dell’utente che sfrutta i
servizi del sistema operativo sia dal punto di vista delle
gestioni delle risorse sia dal punto di vista come aiuto a
gestirlo
in
un
modo
molto
semplice.
Organizzazione a “strati”



Ogni macchina virtuale è un insieme di programmi che
realizza delle funzionalità che utilizzano i servizi forniti a
livello inferiore.
Ogni macchina virtuale ha il compito di gestire risorse
specifiche di sistema regolandone l’uso e
mascherandone i limiti.
I meccanismi che garantiscono la correttezza logica
sono separati dalle politiche di gestione (maggiore
flessibilità).
ogni “strato” risolve un problema specifico
Il Nucleo
– Si appoggia direttamente sulla macchina
fisica
– Effettua la gestione dei processi
– In un sistema multitasking realizza una
macchina virtuale in cui ad ogni processo è
assegnata un processore virtuale
– Realizza le primitive di sincronizzazione e
scambio messaggi tra processi
Il gestore della memoria
– Realizza le funzionalità di allocazione della
memoria
– Partiziona la memoria tra i vari processi che la
richiedono garantendo la protezione delle
diverse zone di memoria
Il gestore delle periferiche
– Maschera le caratteristiche fisiche delle
periferiche
– Fornisce agli strati superiori un insieme di
procedure di alto livello per l’accesso alle
diverse periferiche
– Gestisce, almeno in parte, i malfunzionamenti
delle periferiche
Il gestore del file system
• Il gestore del file system
– E’ responsabile della gestione delle
periferiche di massa
– Fornisce agli strati superiori un insieme di
procedure per l’accesso al file system
– Garantisce la protezione nell’accesso ai file
Il gestore del file system
• Le funzioni di base che sono supportate
da un file system sono
– Il recupero di dati precedentemente
memorizzati
– L’eliminazione di dati obsoleti
– La modifica/aggiornamento di dati preesistenti
– La copia di dati
• Tra supporti di memorizzazione diversi (ad es. da
HD a CD)
• In cartelle diverse nello stesso supporto
Riassumendo: Funzioni
• Il gestore dei processi (nucleo) gestisce
l’esecuzione dei programmi da parte
dell’unità di elaborazione
• Il gestore della memoria alloca la memoria
e la partiziona tra i vari programmi
• I driver sono responsabili delle operazioni di
ingresso/uscita che coinvolgono le
periferiche
• Il file system è responsabile della gestione
dei file in memoria di massa
• L’interprete comandi consente all’utente di
attivare i programmi
Una possibile classificazione
dei moderni S.O.
• I moderni sistemi operativi possono essere classificati in:
– Sistemi monotask:
• Permettono l’esecuzione di un solo programma utente per
volta (es. DOS)
– Sistemi multitask
• Permettono l’esecuzione di più programmi utente
contemporaneamente
Ambiente monotasking
• Viene gestita l’esecuzione di un solo programma
per volta
• L’esecuzione non puo’ essere sospesa (per
assegnare la CPU ad un altro programma) 
prima bisogna terminare l’esecuzione in corso
• Alla terminazione di un programma, si puo’
attivare un altro programma
• Piu’ programmi attivati con un solo comando: job
• Lentezza:
– la CPU non puo’ essere usata da nessun processo
mentre il programma in esecuzione svolge operazioni
di I/O (molto piu’ lente di letture/scritture in Memoria)
Ambiente multitasking
• SO che permettono l’esecuzione
contemporanea di piu’ programmi
• Se una sola CPU  esecuzione contemporanea
virtuale (una sola istruzione alla volta)
• Minimizzano il tempo di inattivita’ ella CPU
durante le operazioni di I/O, che possono anche
occupare l’80% del tempo
Time sharing
• Ripartizione del tempo di CPU tra tutti i processi
che la vogliono
• Durata del quanto di tempo: tra 100 e 200
millisecondi
• A ciascun utente sembra di avere la CPU tutta
per lui, solo piu’ lenta
Coda dei processi pronti
• I processi sono messi in una coda
• Il processo in cima alla coda ha a disposizione
la CPU per un quanto di tempo, fissato e uguale
per tutti
• Quando il tempo finisce, viene interrotto e
messo in fondo alla coda
• Se richiede un’operazione di I/O, va nel gruppo
dei processi sospesi, quando l’operazione
finisce viene rimesso in coda per la CPU
• La CPU va al primo in coda
Sistemi paralleli
• Sistemi multiprocessore costituiti
da più CPU con capacità di
comunicazione diretta.
• i processori condividono la memoria
ed il clock; le comunicazioni
avvengono normalmente attraverso
la memoria condivisa.
Sistemi distribuiti
• Distribuiscono le elaborazioni fra
più processori fisici.
• Ciascun processore ha la propria
memoria locale; i processori
comunicano fra loro attraverso vari
tipi di linee di comunicazione, quali
bus ad alta velocità.
Sistemi Real Time
• Un sistema Real Time è al servizio di
una specifica applicazione, ad es.:
– controllo macchinario medico
– controllo caldaia
– controllo radar
• Ha severi limiti nei tempi di risposta
– ossia la risposta deve essere prodotta
in tempi utili per l’ambiente esterno
Grazie per l’attenzione!