Software: di sistema e applicativo
Di sistema: controlla il comportamento del sistema stesso
il più importante dei software di sistema è il sistema operativo:
controlla le risorse del sistema
fornisce la base su cui costruire tutti gli altri programmi
Applicativo: risolve i problemi dell utente, appoggiandosi
sullo strato fornito dal sistema operativo
Alessandro Di Nuovo
1
1
Il sistema operativo
Con il termine sistema operativo si intende
l insieme di programmi e librerie che opera
direttamente sulla macchina fisica...
... mascherandone le caratteristiche specifiche...
... e fornendo agli utenti un insieme di funzionalità
di alto livello
Alessandro Di Nuovo
2
2
Sistemi Operativi
•  MS-DOS
•  MS-Windows (95, 98, 2000, XP, Vista,
Seven)
•  Unix
•  Commerciali: Sun Solaris, IBM AIX, HP-UX,…
•  Linux
•  BSD
•  Apple
•  Mac OS X
•  iOS
•  Altri (IBM AS/400, Symbian, Android…)
Alessandro Di Nuovo
3
3
Architettura di un S.O. - 1
•  Un moderno S.O. è organizzato secondo una architettura
a strati (a cipolla)
•  Ogni strato implementa una macchina virtuale più potente
del precedente
•  Appoggiandosi alle funzionalità offerte dallo strato precedente
•  Tale approccio permette una chiara separazione tra
interfaccia e implementazione delle diverse funzionalità
•  Ogni strato è costituito da un insieme di programmi e
librerie
•  I meccanismi di chiamate tra livelli possono essere diversi
•  chiamate a sottoprogrammi, interruzioni sincrone o asincrone, invio di
messaggi a processi
Alessandro Di Nuovo
4
4
Architettura di un S.O. - 2
Programmi utente
Interfacce utente
Interprete dei
comandi
Interfaccia
grafica
Gestore del file system
Gestori di risorse
(kernel/nucleo)
Gestore delle periferiche
Gestore della memoria
Gestore dei processi (nucleo)
Macchina fisica
Alessandro Di Nuovo
5
5
Il Nucleo
•  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
•  Comprende i principali programmi di risposta
ad interruzione
•  Realizza le primitive di sincronizzazione e
scambio messaggi tra processi
Alessandro Di Nuovo
6
6
Il nucleo
La macchina virtuale realizzata dal nucleo
Processore
virtuale
Processore
virtuale
...
Processore
virtuale
Bus di sistema
Disco
Memoria
centrale
Alessandro Di Nuovo
Interfaccia
delle
periferiche
7
7
Il gestore della memoria
•  Il gestore della memoria
•  Realizza le funzionalità di allocazione della
memoria
•  Supera i limiti della memoria fisica e mostra ai
processi uno spazio di memoria virtuale
•  Partiziona la memoria tra i vari processi che la
richiedono
•  Garantendo la protezione delle diverse zone di
memoria
Alessandro Di Nuovo
8
8
Il gestore della memoria
La macchina virtuale realizzata dal
gestore della memoria
Memoria
virtuale
Memoria
virtuale
...
Memoria
virtuale
Processore
virtuale
Processore
virtuale
...
Processore
virtuale
Bus di sistema
Interfaccia
delle
periferiche
Disco
Alessandro Di Nuovo
9
9
Il gestore delle periferiche
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
Offre ad ogni processo la visibilità di un insieme di
periferiche virtuali dedicate
Gestisce, almeno in parte, i malfunzionamenti
delle periferiche
Cultura tecnologica del progetto
Alessandro Di Nuovo
10
10
Il gestore delle periferiche
La macchina virtuale realizzata dal
gestore delle periferiche
Memoria
virtuale
Interfaccia
periferiche
virtuali
Memoria
virtuale
...
Bus
Interfaccia
periferiche
virtuali
Bus
Processore
virtuale
Processore
virtuale
Bus di sistema
Disco
Alessandro Di Nuovo
11
11
Il gestore del file system
Il gestore del file system
E responsabile della gestione delle periferiche di
massa
Hard disk
CD / DVD
Memory stick USB
...
Fornisce agli strati superiori un insieme di
procedure per l accesso al file system
Garantisce la protezione nell accesso ai file
Alessandro Di Nuovo
12
12
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
Alessandro Di Nuovo
13
13
Il gestore del file system
I dati contenuti nella memoria di massa
vengono strutturati e gestiti mediante una
organizzazione in file
Un file è un contenitore logico identificato da
un nome (filename)
I filename generalmente sono composti da
due parti
ad es. informatica.pdf
Il filename vero e proprio (informatica)
L estensione (pdf)
Alessandro Di Nuovo
14
14
Il gestore del file system
L estensione è spesso associata al programma che ha
generato il file e individua pertanto la tipologia del
contenuto del file
.exe à file eseguibili
.txt à file di testo
.doc à documenti di testo (MS Word)
.wav à file audio
.bmp à immagine in formato bitmap
...
Ad ogni file sono poi associati dal sistema operativo altri dati
Data di creazione / modifica
Lunghezza del file (in byte)
Utenti/Gruppi che possono accedere ai file
Alessandro Di Nuovo
15
15
Il gestore del file system
I file vengono suddivisi in più contenitori logici, chiamati directory,
cataloghi o cartelle (folders)
Le cartelle sono organizzate secondo una struttura ad albero
Il file system contiene una directory detta radice dell albero che può
contenere file o altre cartelle
Ciascun file è individuato univocamente dal suo nome completo o
percorso assoluto
Ad es. D:\downloads\temp\002.part
Due file con lo stesso nome in due cartelle distinte, ad esempio
D:\Immagini\Compleanno\foto1.jpg
D:\Documenti\foto1.jpg
fanno riferimento a due file che in generale possono essere DIVERSI
Alessandro Di Nuovo
16
16
Il gestore del file system
D:
Documenti
Downloads
Incoming
Temp
...
...
Alessandro Di Nuovo
17
17
Nozioni di base
File System
Alessandro Di Nuovo
18
Il gestore del file system
La macchina virtuale realizzata dal gestore
del file system
Memoria
virtuale
Interfaccia
periferiche
virtuali
Memoria
virtuale
File ... File
...
Bus
Interfaccia
periferiche
virtuali
File
... File
19
19
Bus
Processore
virtuale
Processore
virtuale
Bus di sistema
Alessandro Di Nuovo
L interprete dei comandi e l interfaccia grafica
L interprete comandi e l interfaccia grafica
Costituiscono l interfaccia verso l utente
Consentono l interazione dell utente con il s.o. e
con i programmi applicativi in esecuzione
Permettono di accedere ai programmi conservati su
memoria di massa e mandarli in esecuzione
allocando la memoria necessaria e creando il processo
relativo
Nel caso di un sistema multiutente forniscono ai
diversi utenti la visione di una macchina virtuale
dedicata
Cultura tecnologica del progetto
Alessandro Di Nuovo
20
20
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)
•  Il computer a disposizione del programma dall’inizio alla fine
della sua esecuzione
•  Coda dei job, gestita FIFO (first in, first out) e/o con priorità
• 
Sistemi multitask
•  Permettono l esecuzione di più programmi utente
contemporaneamente
•  Classificazione ulteriore:
• 
• 
Multitasking cooperativo (Windows 3.1, MacOS)
Multitasking preemptive (Windows 95/98/NT, Unix)
•  Time sharing o meno
Alessandro Di Nuovo
21
21
Svantaggi dei sistemi monoprocessore mono-tasking
Nessuna interazione utente-programma
Lentezza: la CPU non può essere usata da nessun
processo mentre il programma in esecuzione svolge
operazioni di I/O (molto piu lente di letture/scritture in
Memoria)
Esempio: DOS è un SO monotasking; non si può fare
niente altro mentre si formatta un floppy o si
memorizzano dati su disco
Cultura tecnologica del progetto
Alessandro Di Nuovo
22
22
Multitasking (time sharing)
Ripartizione del tempo di CPU tra tutti i processi che la vogliono
Ogni job rimane in esecuzione solo per un quanto di tempo, poi
l esecuzione passa al prossimo job e il primo va in attesa à
Esecuzione globale più veloce
Durata del quanto di tempo tra 100 e 200 millisecondi à
granularità molto fine
A ciascun utente sembra di avere la CPU tutta per lui, solo più
lenta
Cultura tecnologica del progetto
Alessandro Di Nuovo
23
23
Stati di un processo
Inizio
esecuzio
ne
Selezione primo processo
pronto e sua esecuzione
Processo
in esecuzione
Processi
pronti
Termine quanto di tempo
Richiesta di operazione di I/
O
Processo
Completamento operazione in attesa
di I/O (evento esterno atteso)
Alessandro Di Nuovo
24
24
Attesa
Se il processo richiede operazioni ad altri dispositivi (es.
Operazioni di I/O), la CPU rimarrebbe inutilizzata è
lo scheduler mette il processo in stato di attesa,
il dispatcher sceglie un nuovo processo tra i pronti dalla tabella,
quando l operazione sarà finita, lo scheduler 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 (ad es. gestire la ricezione di e-mail)
Alessandro Di Nuovo
25
25
Sistemi mono e multiprocessore
Time sharing in sistemi mono-processore:
multi-tasking (più programmi in
esecuzione con una sola CPU)
Sistemi multiprocessore:
le varie CPU possono lavorare
contemporaneamente su job diversi
ciascuna CPU opera in multi-tasking
Cultura tecnologica del progetto
Alessandro Di Nuovo
26
26
Bootstrap: avvio del SO
All inizio, la CPU ha in indirizzo fissato nel registro contatore di
programma, che punta all indirizzo nella ROM (Read Only Memory)
ove inizia il programma di bootstrap che è sempre memorizzato lì
L esecuzione del programma di bootsrap trasferisce il kernel del Sistema
Operativo da una parte prestabilita della memoria di massa (hard-disk,
floppy-disk, CD-Rom,…) in memoria principale
Quindi l esecuzione prosegue con un salto all area di memoria principale
contenente il Sistema Operativo (che quindi viene mandato in
esecuzione)
Tra le prime operazione del kernel del Sistema Operativo vi sono
tipicamente quelle di caricamento di altri componenti software:
driver delle periferiche installate
programmi di sistema lanciati automaticamente all avvio
Alessandro Di Nuovo
27
27
Bootstrap
Alessandro Di Nuovo
28
28
MS-DOS
Sviluppato dalla Microsoft nel 1981 per il PC
IBM
Adottato da altri con PC IBM-compatibili
Molto limitato:
mono-utente,
mono-tasking
Circa 50 comandi per il SO:
DIR per vedere il contenuto di una directory
COPY per copiare file
DEL per cancellare un file
REN per cambiare il nome a un file
CD per muoversi in un altra directory
MD per creare nuove directory
RD per cancellare directory
Nome file: per eseguire il file (se eseguibile)
…
Cultura tecnologica del progetto
Alessandro Di Nuovo
29
29
MS Windows – Elementi principali
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
Alessandro Di Nuovo
30
30
Breve storia di windows 1/2
Nel 1980 la Microsoft era una piccola società con 40 dipendenti, che fatturava 8 milioni di
dollari.
Bill Gates venne contattato dall'IBM, che in quel periodo dominava il mercato degli
elaboratori mainframe ed aveva appena iniziato la realizzazione di un personal
computer, per scrivere un nuovo sistema operativo.
Nasce così l'MS DOS ed esplode il boom del computer per tutti.
Due anni dopo Bill Gates annuncia la nascita di una prima versione di Windows (1982).
Non è un sistema operativo, ma una semplice interfaccia grafica attaccata al DOS
molto rozza. Gli utenti cominciano a prendere confidenza con questa nuova
dimensione.
A maggio, nel 1990, viene lanciato Windows 3.0 e un anno dopo esce Windows 3.1.
Nel '94 il fatturato è di 4,65 miliardi di dollari.
Nel '95 viene lanciato Windows 95 e i dollari salgono a quasi 6 miliardi. Internet Explorer
comincia ad insidiare la posizione di leader tra i browser di Netscape.
Infine nel '98 esce la nuova versione di Windows (Windows 98) e nel frattempo la
crescita del sistema operativo di rete, Windows NT, si consolida fino a creare serie
minacce a ben più blasonati sistemi.
Cultura tecnologica del progetto
Alessandro Di Nuovo
31
31
Breve storia di windows 2/2
Il successore di windows NT è Windows 2000. Windows 2000 compare in due
versioni: la Professional e la Server. La prima è la soluzione ideale per
applicazioni desktop mentre la seconda per la gestione e l amministrazioni
di reti, domini, ecc.
Con il nuovo millennio si registra l uscita del nuovo Windows Millennium
Edition (ME), praticamente un Windows 98 SE rivisto nella grafica,
potenziato a livello di funzioni multimediali e nel quale fa la sua definitiva
scomparsa il buon vecchio DOS.
Alla fine del 2002 viene presentato Windows XP nelle versioni Home,
Professional e Server. La prima prenderà il posto di Windows ME mentre le
altre due sostituiranno le analoghe versioni di Windows 2000.
Windows XP presenta un interfaccia completamente ridisegnata, un ottimo
supporto alle periferiche attualmente sul mercato e una grande supporto ai
prodotti multimediali non ultimi i videogame grazie all integrazione diretta
delle DirectX.
Windows XP è presente sul mercato anche nella versione a 64 bit per
processori Alpha.
Nel 2006 è stata rilasciato Windows Vista. Tra le principali novità: pieno
supporto dei processori a 64 bit (funziona però anche a 32 bit); nuovo
motore per l interfaccia grafica; funzionalità avanzate di ricerca dei
documenti archiviati; maggiore protezione rispetto agli attacchi informatici.
Cultura tecnologica del progetto
Alessandro Di Nuovo
32
32
Unix
Sistema Operativo:
multi-utente,
multi-tasking, con time-sharing
Nato negli anni 60 con un progetto
congiunto AT&T e MIT
Concepito per poter funzionare su diverse
piattaforme hardware con adattamenti
limitati
Interprete dei comandi: shell
testuale
più di 300 comandi, con opzioni
Disponibilità di interfaccia grafica (finestre,
mouse, etc.) messa a disposizione da un
insieme di moduli separati (sistema X
Window)
Cultura tecnologica del progetto
Alessandro Di Nuovo
33
33
Linux
Linux è una delle molte varianti di Unix con la peculiarità di essere
open source (= il cui codice sorgente è liberamente disponibile)
La sua nascita è dovuta in parte alle restrizioni imposte da AT&T
all’uso di del codice sorgente di UNIX per la didattica:
hanno indotto Andy Tanenbaum allo sviluppo di MINIX, un
implementazione di UNIX per scopi didattici
MINIX ha ispirato Linus Torvalds a realizzare una propria
implementazione del kernel UNIX
Il kernel sviluppato da Linus è stato combinato con una suite di
programmi UNIX, sviluppati nell ambito del progetto GNU
(iniziativa che ha originato il movimento open source), per formare
la prima distribuzione di Linux e renderla disponibile su Internet
come software open source
Oggi esistono innumerevoli distribuzioni di Linux, distinte per
diverse combinazioni di kernel, interfacce grafiche (le più note
sono Gnome e KDE) e programmi di utilità.
Alessandro Di Nuovo
34
34
Linux
Gnome
à
ß KDE
Alessandro Di Nuovo
35
35
BSD
BSD è un altra versione open source del sistema
operativo Unix, in questo caso nata alla
University of California, Berkeley (USA)
Ritenuto più stabile di Linux (anche grazie ad un
gruppo di sviluppo più ristretto, quindi più
controllabile) ma il numero di applicazioni
disponibili è più ristretto (principalmente
applicazioni per i server)
Oggi esistono 4 distribuzioni principali di BSD:
3 distribuzioni free: FreeBSD, OpenBSD, NetBSD
1 distribuzione a pagamento, all interno del Sistema
Operativo Apple MAC OS-X
Cultura tecnologica del progetto
36 36
Alessandro Di Nuovo
MAC OS-X
Architettura MAC OS
Applicazioni
•  MAC OS-X è l ultima
generazione di S.O. per i
personal computer prodotti
da Apple
•  Abbandonato il precedente
sistema operativo Apple ha
costruito la nuova
generazione del proprio
S.O. a partire da una
variante di BSD, chiamata
Darwin, che rimane open
source
•  A questo nucleo, Apple ha
aggiunto componenti
proprietari, dall interfaccia
grafica (Aqua) ad una suite
di applicazioni e utilities.
GUI à
Kernel,
gestori di
risorse e
servizi di
base
Alessandro Di Nuovo
37
37
Introduzione al Deadlock
Definizione:
Un insieme di processi e in stallo se ogni processo
dell’insieme è in attesa di un evento che solo un
altro processo dell’insieme può causare
Normalmente l’evento è l’accesso ad una risorsa
occupata
Nessun processo può
Andare in esecuzione
Rilasciare la risorsa
Essere sbloccato
Alessandro Di Nuovo
38
38
Condizioni per il Deadlock
•  Condizione di mutua esclusione
Ogni risorsa è assegnata ad un processo o è disponibile
•  Condizione di “Hold and wait”
I processi che detengono risorse possono chiederne altre
•  Condizione di assenza di prerilascio
Le risorse assegnate non possono essere tolte forzatamente ad
un processo
•  Condizione di attesa circolare
Deve esistere una catena circolare di due o più processi ognuno
dei quali è in attesa di una risorsa occupata dal prossimo processo
della catena
Alessandro Di Nuovo
39
39
Algoritmo dello struzzo
•  Fare finta che il problema non esiste
•  È ragionevole se
•  Il deadlock è un evento raro
•  Il costo della sua prevenzione è alto
•  UNIX e Windows hanno tale approccio
•  La valutazione da fare è rispetto a
•  convenienza
•  correttezza
Alessandro Di Nuovo
40
40