Sistemi Operativi
Insieme di programmi che permettono di
gestire le risorse (HW e SW )
efficientemente. Funzioni principali:
conservare lo stato delle risorse e del
processo che le sta utilizzando
accettare e soddisfare le richieste di uso di
risorse
risolvere i conflitti tra più risorse
gestire gli utenti e i loro accessi
Sistemi Operativi
 Il
SO è costituiti da un insieme di
moduli, ciascuno dedicato a svolgere
una determinata funzione;
 I vari moduli del SO interagiscono tra di
loro secondo regole precise al fine di
implementare le funzionalità di base
dalla macchina.
Sistemi Operativi
Utente
SW
applicativo
Interprete
comandi
Gestione
memoria
Gestione
processore
HW
Gestione
periferiche
File system
Sistema Operativo
Sistemi Operativi
Sistemi Operativi (nucleo)


Programma: una entità statica composta
dal codice eseguibile dal processore.
Processo: entità dinamica relativa al
programma in esecuzione, ed è
composto da:



codice del programma
dati necessari all’esecuzione del programma
stato dell’esecuzione
Sistemi Operativi (nucleo)


Il nucleo o kernel si occupa di gestire la
sincronizzazione, interruzione e
riattivazione dei processi;
La gestione dei processi avviene in vari
modi, in funzione del tipo di utilizzo cui il
sistema è rivolto.
Sistemi Operativi (nucleo)


Lo Scheduler è quella parte del nucleo
che si occupa della distribuzione del
tempo di CPU tra i vari processi.
Nel caso di elaboratori multi-processore
lo Scheduler si occupa anche di gestire
la cooperazione tra le varie CPU presenti
nel sistema.
Sistemi Operativi (nucleo)
Time Sharing: Il S.O. condivide la CPU tra più processi,
suddividendo il tempo di esecuzione del processore tra
più utenti
 Ogni processo utilizza periodicamente un intervallo di
tempo prestabilito (quanto) compreso tra 100 e 200
ms
 Durante il quanto di esecuzione di un processo, tutti
gli altri processi sono sospesi
 Al termine di ogni quanto, il processo in esecuzione
viene sospeso e il S.O. assegna la CPU ad un altro
processo.
Sistemi Operativi (nucleo)
Quando un processo non è in esecuzione
può assumere due diversi stati:

attesa: il processo è sospeso finché un determinato
evento esterno non si verifica (i.e., I/O)

pronto: il processo è sospeso finché non gli viene
concesso l’uso della CPU

in ogni instante di tempo vi è un solo processo
attivo, e tutti gli altri sono o in attesa o pronti, e
memorizzati in apposite code che ne indicano
l’ordine di esecuzione.
Sistemi Operativi (nucleo)
Selezione primo processo
pronto e sua esecuzione
Inizio esecuzione
(accodamento)
READY
RUN
Processo
attivo
Coda
processi
pronti
Termine quanto di tempo
Completamento
operazione I/O
WAIT
Coda
processi
in attesa
Richiesta
operazione I/O
Termine
elaborazione
Sistemi Operativi (nucleo)

Se il processo richiede operazioni ad altri dispositivi (es.
Operazioni di I/O), la CPU rimarrebbe inutilizzata:




il SO mette il processo in stato di attesa,
il SO sceglie un nuovo processo tra i pronti dalla tabella,
quando l’operazione sarà finita, il SO dichiarerà di nuovo pronto il
processo
Permette un utilizzo molto più efficiente delle risorse di
elaborazione. Esempio:


durante la digitazione di un documento di testo, l’utente compie
molte pause per riflettere sul contenuto che sta scrivendo
questo tempo è usato dal sistema per compiere altre operazioni in
contemporanea
Sistemi Operativi (nucleo)
Le politiche utilizzate dallo scheduler :
Preemptive:
la CPU in uso da parte di un
processo può essere tolta e passata a un
altro in un qualsiasi momento.
Non Preemptive: una volta che un
processo ha ottenuto l’uso della CPU non
può essere interrotto fino a che lui stesso
non la rilascia.
Sistemi Operativi (nucleo)
I
SO che gestiscono l’esecuzione di un
solo programma per volta sono catalogati
come mono-tasking;
 Non è possibile sospendere l’esecuzione
di un programma per assegnare la CPU a
un altro
 Sono storicamente i primi SO (es MSDOS).
Sistemi Operativi (nucleo)
Tempo di utilizzo della CPU.
Tempo di attesa di eventi esterni.
C
B
A
t
T
Sistemi Operativi (nucleo)
I
SO che permettono l’esecuzione
contemporanea di più programmi sono
definiti multitasking (Windows-NT ,
Linux);
 Un programma può essere interrotto e la
CPU passata a un altro programma
Sistemi Operativi (nucleo)
Tempo di utilizzo della CPU.
Tempo di attesa di eventi esterni.
C
B
A
t
T
multi-tasking
T
mono-tasking
Sistemi Operativi (nucleo)
Throughput: utilizzo della CPU = Tp/Tt
 Tp = tempo dedicato dalla CPU alla
esecuzione dei processi utente
 Tt = tempo totale di osservazione
Alta efficienza: throughput tendente ad 1.
Overhead: tempo impiegato dal SO per
trasferire il controllo da un programma ad
un altro
Sistemi Operativi (nucleo)
Politiche dello scheduler:
 Privilegiare l’utilizzo della CPU.
 Aumentare il throughput.
 Ridurre il tempo di "turnaround» (permanenza di
un processo nel sistema).
 Ottimizzare i tempi di risposta all’utente.
 Garantire a tutti i processi l’uso equo delle
risorse (fairness).
Sistemi Operativi (nucleo)
I SO devono consentire anche la
sincronizzazione dei processi.
 Più processi su una macchina posso essere:




in Competizione: quando cercano di utilizzare una stessa
risorsa contemporaneamente;
in Cooperazione: quando uno ha bisogno dell’altro per
evolvere.
La sincronizzazione avviene grazie a
variabili condivise dette Semafori o a
scambio di messaggi tra processi.
Sistemi Operativi (gest. M.C.)


Ogni processo per essere
eseguito è necessario che il suo
codice e i suoi dati siano caricati
in memoria.
Nei sistemi multitasking più
programmi contemporaneamente
possono essere caricati in
memoria.
Sistemi Operativi (gest. M.C.)
Il gestore della memoria è incaricato di:



Tenere traccia di quali parti della
memoria sono usate e da chi
Decidere quali processi caricare
quando diventa disponibile
spazio in memoria
Allocare e deallocare lo spazio di
memoria quando necessario
Sistemi Operativi (gest. M.C.)
Per ogni «blocco» di
memoria il SO
mantiene un
descrittore con le
informazioni
essenziali (indirizzo
iniziale, indirizzo finale
/ dimensione, stato,
tipo contenuto, ecc.)
Sistema Operativo
«libera»
Risorse del computer
Word
«libera»
Antivirus
«libera»
Sistemi Operativi (gest. M.C.)
Le tecniche di gestione della m.c. provocano uno
spreco di spazio di memoria, noto con il nome di
frammentazione:
 Con i “blocchi” di dimensioni fisse, all’interno di
ogni blocco ci sara’ uno spazio non utilizzato:
frammentazione interna
 Con i “blocchi” di dimensioni variabili, dopo un
certo numero di allocazione e deallocazione di
processi, si formeranno un certo numero di
porzioni di memoria libere (“buchi”), di dimensioni
insufficienti a contenere un processo:
frammentazione esterna
Sistemi Operativi (gest. M.C.)
N.B. Per Frammentazione nelle
memorie di massa si intende la divisione
di un file in diverse catene di blocchi non
contigue. La frammentazione riduce
drasticamente le prestazioni perché non
posso leggere il file in un semplice giro
della testina, ma devo seguire un
percorso e ricostruire il file in memoria
Sistemi Operativi (gest. M.C.)
Se l’effettiva memoria fisica non è
sufficiente a contenere tutto lo spazio
richiesto dai processi, il gestore della
memoria risolve i conflitti garantendo
uno spazio di memoria virtuale anche
superiore alla capacità della memoria
fisica, mantenendo nella memoria
centrale solo le parti di codice e dei dati
che servono in quel momento.
Sistemi Operativi (gest. M.C.)
In un sistema che utilizza la memoria virtuale,
soltanto le parti del programma o dei dati al
momento necessarie vengono caricate nella
memoria centrale, il resto è salvato sul disco
fisso fino a che non si renda necessario il suo
spostamento nella memoria reale.
Swap-out
Swap-in
Sistemi Operativi (gest. M.C.)
Paginazione
Suddivisione della memoria centrale in
blocchi di dimensioni fisse (pagine)
tipicamente 2KB o 4KB.
L'immagine di un processo viene suddivisa
in pagine caricate all'interno della memoria
principale in modo indipendentemente,
anche in posizioni non contigue.
Sistemi Operativi (gest. M.C.)
Il SO gestisce una Page Table che
memorizza per ogni pagina (spazio logico)
del processo la sua posizione in memoria
centrale (spazio fisico)
Sistemi Operativi (gest. M.C.)
Memoria centrale (spazio fisico)
pagina 0
Spazio logico
processo 1
pagina 1
Spazio logico
processo 2
pagina 2
pagina 0
pagina 0
pagina 3
pagina 1
pagina 1
pagina 4
pagina 2
pagina 5
pagina 3
pagina 6
pagina 7
Sistemi Operativi (gest. M.C.)
Se durante l’esecuzione del processo, la
CPU fa riferimento ad un indirizzo che
appartiene ad una pagina non caricata in
memoria centrale – page fault - , il SO
provvede a mettere il processo in stato
d’attesa e a far partire il caricamento della
pagina richiesta, - swap - dopo di che’ il
processo puo’ riprendere la sua
esecuzione.
Sistemi Operativi (gest. M.C.)
Nella paginazione esiste ancora il
problema della frammentazione, che e’
pero’ limitato al fatto che l’ultima pagina
di ogni processo è solo parzialmente
occupata.
Mediamente si può considerare uno
spreco pari a circa ½ pagina per ogni
processo.
Sistemi Operativi (gest. M.C.)



Segmentazione / Partizionamento
La memoria fisica è suddivisa in un
determinato numero di aree, "segmenti" o
"partizioni".
In ciascun segmento può essere caricato
un solo programma per volta per essere
eseguito.
Un segmento può essere utilizzato solo da
quel programma, fino a quando non viene
deallocato dal S.O.
Sistemi Operativi (gest. M.C.)
Ogni entry nella segment table contiene l’indirizzo
base di un segmento e la sua lunghezza.
0
Sistema Operativo
Segment table
Inizio
Dimensione
0
20M
22M
17M
37M
10M
«libera»
20M
Risorse del computer
22M
37M
Word
«libera»
47M
Sistemi Operativi (gest. M.C.)
Svantaggio principale: frammentazione.
La memoria non viene sfruttata
completamente in quanto ciascun
programma deve essere allocato in M.C.
in maniera contigua, per cui é
necessario che esista un segmento di
memoria libero sufficientemente grande.
Sistemi Operativi (gest. M.C.)
Anche se in totale vi é una grossa parte
della M.C. libera, potrebbe accadere che
un nuovo programma debba attendere
prima di essere allocato perché le
frammentazioni sono sparse.
Per ovviare a ciò esiste un processo di
compattamento: traslazione dei
programmi.
Sistemi Operativi (gest. M.C.)
Politiche di allocazione della m.c. partizionata:
 First-fit: Alloca il primo frammento libero
sufficiente.
 Best-fit: Alloca il più piccolo frammento
libero sufficiente; ricerca sull’intera lista e
produce frammenti piccoli.
 Worst-fit: Alloca il più grande frammento;
ricerca sull’intera lista e produce frammenti
grandi.
Statisticamente First-fit e Best-fit sono migliori del
Worst-fit in termini di velocità e uso di memoria.
Sistemi Operativi (gest. M.C.)
Nei moderni SO con m.c. di grandi capacità si
utilizza la paginazione dei segmenti:
un segmento viene realizzato tramite un
insieme di pagine.
Questa soluzione differisce dalla
segmentazione “pura” poiché una entry nella
segment table non contiene l’indirizzo base di
un segmento, ma l’indirizzo base della page
table di quel segmento.
Sistemi Operativi (gest. M.C.)
Un’area di memoria nota come Cache
mantiene alcuni blocchi logici in memoria per
un accesso più veloce ai dati.
Quando è necessario l'accesso ad un dato,
questo dato viene prima cercato nella cache.
Se è presente, viene utilizzata la copia
presente. Viceversa, viene recuperato dalla
memoria principale, e memorizzato nella
cache, nel caso possa servire
successivamente.
Sistemi Operativi (gest. perif.)
Gestore delle periferiche:
permette la comunicazione tra il
calcolatore e tutti i dispositivi
esterni ad esso collegati,
assegnando i dispositivi ai
processi che ne fanno richiesta e
controllando i dispositivi stessi.
Sistemi Operativi (gest. perif.)
Gestore delle periferiche:
garantisce un comportamento
asincrono dell’ambiente rispetto
al calcolatore e gestisce gli
accessi contemporanei da parte
di più periferiche
Sistemi Operativi (gest. perif.)


Particolari programmi detti device
driver gestiscono le operazioni di
in/out tra le varie periferiche
collegate alla macchina.
I device driver sono spesso
realizzati dai produttori dei
dispositivi stessi che ne conoscono
le caratteristiche fisiche in maniera
approfondita.
Sistemi Operativi (gest. perif.)
Funzioni device driver :



Rendono trasparenti le caratteristiche
fisiche tipiche di ogni dispositivo;
Gestiscono la comunicazione dei
segnali verso i dispositivi;
Gestiscono i conflitti, nel caso in cui
due o più task vogliono accedere
contemporaneamente allo stesso
dispositivo.
Sistemi Operativi (gest. perif.)
Nelle versioni più recenti dei sistemi
operativi, la necessità di configurare
“manualmente” ogni periferica tramite
appositi driver viene sostituita da
funzioni Plug&Play
Sistemi Operativi (gest. perif.)
Modalità Plug&Play:


ad ogni accensione il S.O. scandisce tutte
le risorse HW rilevando quelle non ancora
configurate
ogni periferica comunica al S.O. i driver di
cui necessita ed il S.O. installa gli appositi
driver senza l’intervento dell’utente.
Sistemi Operativi (gest. perif.)
Spooling: tecnica utilizzata dai driver per rendere
virtuali più periferiche non condivisibili.
Una stampante e più processi che intendono stampare:



ogni processo invia il file da stampare al driver della
stampante, che lo mette in coda nella directory di
spooling
i file in coda vengono stampati secondo l’ordine di arrivo
quando a directory di spooling si svuota il driver rimane in
memoria in attesa di una nuova richiesta di stampa.
In questo modo i processi evitano lunghe attese ed
operano indipendentemente dalla periferica.
Sistemi Operativi (file system)
Il File System gestisce le memorie di
massa cioè organizza logicamente i dati
e le possibili operazioni su di essi:


recupero, cancellazione o modifica di dati
memorizzati
copia di dati per backup o trasferimento da
supporto a supporto.
I servizi vengono forniti sia ai programmi
applicativi che direttamente agli utenti.
Sistemi Operativi (file system)
Nei sistemi multi-utente, il File System
deve mettere a disposizione dei
meccanismi di protezione in modo tale da
consentire agli utenti di proteggere i propri
dati dall’accesso da parte di altri utenti non
autorizzati.
Permette anche la condivisione o il
mascheramento, dei file, con altri utenti.
Sistemi Operativi (file system)
Funzioni tipiche del File System :




Fornire un meccanismo per l’identificazione
dei Files;
Fornire opportuni metodi per accedere ai
dati;
Rendere trasparente la struttura fisica del
supporto di memorizzazione;
Implementare meccanismi di protezione dei
dati.
Sistemi Operativi (file system)
File e cartelle/directory sono
organizzati secondo una struttura
gerarchica ad albero che ne
rende semplice la localizzazione:
• Radice = radice del’intero file
system
• Nodi interni = cartelle / directory
• Foglie = documenti/programmi
Sistemi Operativi (file system)
C:\
Documenti
Musica
Programmi
Photoview
Moderna
tesi.doc
Adobe
Classica
lucidi_tesi.pps
mare.jpg
Dreamweaver.exe
On The Run.mp3
Breathe.mp3
Time.mp3
Sinfonia 9.mp3
Bolero.mp3
Sistemi Operativi (file system)
Path names.
In un’organizzazione ad albero i nomi
devono contenere informazioni sui
cammini sui quali si trovano i
corrispondenti file:
 Nomi relativi. Relativi ad una particolare
directory (es. ..\..\esami\dispense.ppt)
 Nomi assoluti. Specificano il cammino a
partire dalla root del file system (es.
c:\documenti\esami\dispense.ppt)
Sistemi Operativi (file system)
Entità atomica è il file, contenitore logico di
informazioni (dati o istruzioni).
Per ogni file vengono registrati:





Identificatore (nome.estensione)
Periferica (drive) e percorso sulla periferica
Data creazione
Dimensione
Posizione effettiva dei dati nella memoria di
massa
Sistemi Operativi (file system)
Altre informazioni:

applicazione che consente all’utente di
“usare” il file in base all’estensione (es.









.exe  file eseguibili
.txt  file di testo
.doc  documenti di testo (MS Word)
.mp3  file audio
.bmp  immagine in formato bitmap
data di ultima modifica
diritti di accesso al contenuto del file
Attributi: file di sistema, file nascosto.
Tipo: File di caratteri e binari (eseguibili),
cartella.
Sistemi Operativi (Interprete Comandi)



L’interprete dei comandi o shell è quella
parte più esterna di un SO che riceve ed
elabora le istruzioni impartite da un utente.
I SO per rendere agevole l’utilizzo del
sistema da parte degli utente implementano
dei meccanismi di accesso: Interfaccia
Utente.
Consente di far “girare” i programmi
Sistemi Operativi (Interprete Comandi)
L’interprete dei comandi interagisce con i
moduli interni al SO per eseguire le fasi
elementari utili all’esecuzione di un
programma:



Ricerca e lettura del programma da una
cartella della memoria di massa (file system)
Caricamento del file in memoria (gestore
memoria)
Attivazione del processo (nucleo)
Sistemi Operativi (Interprete Comandi)
Interfaccia testuale.
L’utente deve scrivere lo specifico
comando rispettandone
correttamente la sintassi; la
risposta è costituita da codici
numerici o messaggi prefissati. Il
formato è la riga di comando
Sistemi Operativi (Interprete Comandi)
Interfaccia testuale
Sistemi Operativi (Interprete Comandi)
Alcuni comandi DOS
FORMAT A: inizializza un dischetto (crea root e FAT)
MD <nome> (ovvero MD <pathname>) crea una
nuova sottodirectory nella directory corrente (ovvero
della directory <pathname>)
CD <pathname> la directory <pathname> diventa la
d. corrente
DIR (ovvero DIR <pathname>) elenca il
contenuto della directory corrente (ovvero nella
directory <pathname>)
Sistemi Operativi (Interprete Comandi)
Interfaccia grafica.
Tramite un dispositivo di puntamento l’utente
seleziona il comando da un menù o da un
oggetto grafico visualizzato (pulsante, area,
campo…).
Una GUI (graphical user interfaces), tipica è
quella di tipo WIMP (Windows, Icons, Menus,
Pointing device).
Sistemi Operativi (Interprete Comandi)
Interfaccia grafica:
• Mouse che sposta un
cursore
• Cut & paste (copia e incolla)
• Drag & drop (trascina e
lascia)
• Icone associate a file,
directory, dischi, …
• Directory come cartelle
• Pulsanti
• Finestre: cornici con
strumenti
• Menu di comandi
Sistemi Operativi (Interprete Comandi)
Alcune caratteristiche dell’interfaccia Windows
 Scrivania (desktop)
 Il pulsante di avvio
 La barra delle applicazioni
 La gestione delle risorse e il file system
 Proprietà di file e cartelle
 Menù di scelta rapida
 Creazione di collegamenti
 Il cestino
 Esecuzione di un programma
 Guida in linea
 Accessori
Scarica

Poliba sistemi operativi