Politecnico
di Milano
Sistemi Operativi
ed interazione con HW e CAD
Corsi di Informatica Grafica
Prof. Manuel Roveri
Dipartimento di Elettronica e Informazione
[email protected]
Politecnico
di Milano
Indice

Il Sistema Operativo
◦
◦
◦
◦
◦
Software di sistema e applicativo
Architettura di un sistema operativo
Classificazione dei sistemi operativi
Bootstrap
Panoramica dei principali sistemi operativi
 MS DOS, MS Windows, UNIX, Linux, BSD, Mac OS

Interazione tra SO, HW e CAD
◦ Un esempio pratico: la grafica computerizzata
2
Politecnico
di Milano
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
3
Politecnico
di Milano
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
4
Politecnico
di Milano
Sistemi Operativi
MS-DOS
 MS-Windows (95, 98, 2000, XP, Vista)
 Unix

◦ Commerciali: Sun Solaris, IBM AIX, HP-UX,…
◦ Linux
◦ BSD

Mac OS
◦ Mac OS X

Altri (IBM AS/400, Symbian,…)
5
Politecnico
di Milano
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
6
Politecnico
di Milano
Architettura di un S.O. - 2
Programmi utente
Interfacce utente
Interprete dei comandi
Interfaccia grafica
Gestore del file system
Gestore delle periferiche
Gestori di risorse
(kernel)
Gestore della memoria
Gestore dei processi (nucleo)
Macchina fisica
Politecnico
di Milano
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
8
Politecnico
di Milano
Il Nucleo

La macchina virtuale realizzata dal nucleo
Processore
virtuale
Processore
virtuale
...
Processore
virtuale
Bus di sistema
Disco
Memoria
centrale
Interfaccia
delle
periferiche
9
Politecnico
di Milano
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
10
Politecnico
di Milano
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
Disco
Interfaccia
delle
periferiche
11
Politecnico
di Milano
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
12
Il gestore delle periferiche
Politecnico
di Milano

La macchina virtuale realizzata dal gestore
delle periferiche
Interfaccia
periferiche
virtuali
Memoria
virtuale
Bus
Interfaccia
periferiche
virtuali
Memoria
virtuale
...
Processore
virtuale
Bus
Processore
virtuale
Bus di sistema
Disco
13
Politecnico
di Milano
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
14
Politecnico
di Milano
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
15
Politecnico
di Milano
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. curriculum_vitae.doc
◦ Il filename vero e proprio (curriculum_vitae)
◦ L’estensione (doc)
16
Politecnico
di Milano
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
.dwg  file di AutoCAD
...
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
17
Politecnico
di Milano
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
18
Il gestore del file system
Politecnico
di Milano
D:
Documenti
Downloads
Temp
Incoming
...
...
19
Politecnico
di Milano
Il gestore del file system

Memoria
virtuale
La macchina virtuale realizzata dal gestore del
file system
Interfaccia
periferiche
virtuali
Bus
File
...
Memoria
virtuale
File
...
Processore
virtuale
Interfaccia
periferiche
virtuali
File
...
File
Bus
Processore
virtuale
Bus di sistema
20
Politecnico
di Milano
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
21
Politecnico
di Milano
Una possibile classificazione dei
moderni S.O.
◦ 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
22
Politecnico
di Milano
Svantaggi dei sistemi
monoprocessore monomono-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
23
Multitasking (time sharing)
Politecnico
di Milano




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
24
Politecnico
di Milano
Stati di un processo
Selezione primo processo pronto e sua
esecuzione
Inizio
esecuzione
Processo
in esecuzione
Processi
pronti
Termine quanto di tempo
Richiesta di
operazione di I/O
Completamento operazione di I/O
(evento esterno atteso)
Processo
in attesa
25
Politecnico
di Milano
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)
26
Politecnico
di Milano
Sistemi mono e multimulti-processore

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
27
Politecnico
di Milano
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
28
Politecnico
di Milano
Bootstrap
29
Politecnico
di Milano
MS--DOS
MS



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)
◦ …
30
Politecnico
di Milano
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
31
Breve storia di windows 1/2
Politecnico
di Milano








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.
32
Breve storia di windows 2/2
Politecnico
di Milano

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.

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.

Nel 2009 arriva Windows 7 ...
33
Politecnico
di Milano
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)
34
Linux
Politecnico
di Milano


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à.
35
Politecnico
di Milano
Linux
Gnome 
 KDE
36
Architettura MAC OS-X
MAC OSOS-X
Politecnico
di Milano



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.
Applicazioni
GUI 
Kernel,
gestori di risorse
e servizi di base
37
Politecnico
di Milano
Un esempio pratico:
la grafica computerizzata
Interazione tra HW, SO e CAD
38
Politecnico
di Milano
Un esempio pratico: la grafica
computerizzata
Hard Disk
RAM
Monitor
Sistema Operativo
Sistema Operativo
Desktop
AutoCAD
File di salvataggio
AutoCAD
Accensione del computer
39
Politecnico
di Milano
Un esempio pratico: la grafica
computerizzata (2)
Hard Disk
RAM
Sistema Operativo
Sistema Operativo
AutoCAD
AutoCAD
File di salvataggio
AutoCAD
Dati di
AutoCAD
Monitor
Frame
Buffer
Finestra di
AutoCAD
Display window
000000000000
000000000000
000000000000
000000000000
000000000000
Attivazione Programma AutoCAD
40
Politecnico
di Milano
Un esempio pratico: la grafica
computerizzata (3)
Hard Disk
RAM
Sistema Operativo
Sistema Operativo
AutoCAD
AutoCAD
File di salvataggio
AutoCAD
Monitor
Dati di
AutoCAD
Frame
Buffer
Line X1Y1-X2Y2
000000100000
000001000000
000010000000
000100000000
000000000000
Finestra di
AutoCAD
Display window
Generazione di una linea
41
Politecnico
di Milano
Un esempio pratico: la grafica
computerizzata (4)
Hard Disk
RAM
Sistema Operativo
Sistema Operativo
AutoCAD
AutoCAD
File di salvataggio
AutoCAD
Monitor
Dati di
AutoCAD
Frame
Buffer
Line X1Y1-X2Y2
Circle X0Y0-R0
000000100000
000111100000
001010010000
000111100000
000000000000
Finestra di
AutoCAD
Display window
Generazione di un cerchio
42
Politecnico
di Milano
Un esempio pratico: la grafica
computerizzata (5)
Hard Disk
RAM
Monitor
Sistema Operativo
Sistema Operativo
AutoCAD
AutoCAD
File di salvataggio
AutoCAD
Dati di
AutoCAD
Frame
Buffer
Line X1Y1-X2Y2
Circle X0Y0-R0
Line X1Y1-X2Y2
Circle X0Y0-R0
000000100000
000111100000
001010010000
000111100000
000000000000
Salvataggio su file
Finestra di
AutoCAD
Display window
43
Politecnico
di Milano
Un esempio pratico: la grafica
computerizzata (6)
Hard Disk
RAM
Monitor
Sistema Operativo
Sistema Operativo
AutoCAD
AutoCAD
File di salvataggio
AutoCAD
Dati di
AutoCAD
Frame
Buffer
Line X1Y1-X2Y2
Circle X0Y0-R0
Circle X0Y0-R0
000000000000
000111100000
001000010000
000111100000
000000000000
Rimozione della linea
Finestra di
AutoCAD
Display window
44
Politecnico
di Milano
Un esempio pratico: la grafica
computerizzata (7)
Hard Disk
RAM
Monitor
Sistema Operativo
Sistema Operativo
AutoCAD
AutoCAD
File di salvataggio
AutoCAD
Dati di
AutoCAD
Frame
Buffer
Circle X0Y0-R0
Circle X0Y0-R0
000000000000
000111100000
001000010000
000111100000
000000000000
Salvataggio su file
Finestra di
AutoCAD
Display window
45