Presentazione di PowerPoint - Home page istituzione trasparente

UD 1.5c: Il Sistema
Operativo
Il Sistema Operativo
 E’ in assoluto il prodotto più complesso mai progettato e
realizzato dagli uomini.
 Windows XP conta 40 Milioni di linee di codice
 Stampate su fogli A4, con interlinea singola, occuperebbero
750.000 pagine (750 volumi da 500 pagine l’uno)
 Senza Sistema Operativo non sarebbe possibile utilizzare i
moderni computer (se non in casi speciali)
16 nov 2011
 Supervisiona e gestisce l’intero sistema.
 Carica ogni programma dal disco fisso in RAM e lo esegue
 Determina dove e come memorizzare dati e programmi sui
dischi.
 Permette l’interazione tra programmi, utenti e hardware
2
Le funzioni principali del S.O.
 Gestisce le risorse hardware del sistema di elaborazione
 Controlla, ottimizza l’uso e coordina la comunicazione tra le varie
risorse hardware del computer, sia principali (processore e RAM)
che periferiche (memorie di massa, schermo, stampanti, tastiera,
ecc.).
 Gestisce le risorse software del sistema di elaborazione
 Pilota e controlla l’esecuzione degli altri programmi
 Assegna le risorse ai programmi applicativi e ne controlla
l’attività, per evitare che entrino in conflitto fra loro.
16 nov 2011
 Gestisce l’interazione tra utente e macchina. Ogni operazione che
l’utente svolge sul computer viene intercettata dal S.O.
 direttamente quando l’utente con dei comandi esegue certe
operazioni predefinite
 indirettamente quando si serve di programmi applicativi per
svolgere operazioni più complesse
3
BIOS
BIOS è software memorizzato perennemente in ROM (oggi
EEPROM).
E’ una via di mezzo tra hardware e software (Firmware).
BIOS accede alle informazioni sulle periferiche (Setup del computer)
memorizzate nella CMOS
 CMOS: Piccola porzione di
memoria, presente sulla scheda
madre di un PC, che contiene
informazioni
necessarie
al
funzionamento del PC.
 La memoria CMOS è alimentata
dalla corrente di casa quando il
PC è sotto tensione e da una
piccola pila a bottone presente
sulla mainboard quando ci
troviamo
in
assenza
di
alimentazione.
4
16 nov
2011
BIOS
 Il BIOS fornisce il collegamento tra il software e
l’hardware. In particolare, Il BIOS è lo strumento
utilizzato dal SO per accedere all’hardware.
 Il SO intercetta ogni richiesta di uso di una periferica e la
trasmette al BIOS
 Ad esempio, quando si chiede di stampare un
documento dall’interno di un programma (es Word)
16 nov 2011
 Il comando di stampa viene passato dal programma al
SO
5
 Dal Sistema Operativo esso passa poi al BIOS
 Il BIOS, infine, si collega alla stampante, dopo aver
trasformato la richiesta di stampa in una serie di comandi
comprensibili alla stampante
Funzionalità di un SO
 Per svolgere le sue funzioni, un SO deve essere
in grado di eseguire i seguenti compiti:
 Interprete dei comandi
 Gestore dei processi
 Gestore della memoria centrale
 Gestore delle periferiche di I/O
16 nov 2011
 Gestore del File system
6
Interprete comandi
 E’ l’unica parte del sistema operativo
direttamente visibile all’utente
 L’interprete comandi interpreta i comandi
inviati dall’utente (da tastiera o con il mouse) e
li esegue
16 nov 2011
 attivando i programmi corrispondenti o
7
 effettuando le operazioni richieste
La Gestione dei Processi
 I programmi in esecuzione vengono chiamati
processi
 Programma = lista di istruzioni = nozione statica
 Processo = programma in esecuzione =nozione
dinamica
16 nov 2011
 ATTENZIONE: in ogni istante di tempo una CPU
può eseguire un solo processo
8
 Il Sistema Operativo deve stabilire, in ogni dato
istante di tempo, quale processo può utilizzare la
CPU
 Inoltre deve reagire agli eventi esterni (le
interruzioni provenienti dalle periferiche)
La Gestione dei Processi
 Diverse tecniche di gestione dei processi:
 Monoprogrammazione e monoutenza
 Multiprogrammazione e monoutenza (o
Multitasking)
 Multielaborazione e multiutenza
16 nov 2011
 Elaborazione parallela (con hardware apposito)
9
 La scelta dipende anche dal tipo di calcolatore
e dalle sue caratteristiche hw
Monoutenza e
Monoprogrammazione
 Single User e Single Task
 Modalità operativa dei personal computer fino a 15-20
anni fa (sistema MS-DOS):
 permette l’accesso al computer ad un solo utente per
volta,
 il quale può mandare in esecuzione un solo programma
alla volta.
16 nov 2011
 E' il modo più semplice per gestire un elaboratore
 il S.O. gestisce in modo sequenziale i diversi programmi,
uno per volta
 poca efficienza dell'hw a causa della diversa velocità tra
CPU e periferiche
10
Monoutenza e
Multiprogrammazione
 Single User e Multi Task (multiprogrammazione)
 E’ la modalità operativa dei sistemi Windows ‘client’:
 permette l’accesso al computer ad un solo utente per volta,
 Il quale può mandare in esecuzione più programmi, che
utilizzano le stesse risorse del computer.
 il S.O
16 nov 2011
 deve essere in grado di gestire l’uso contemporaneo delle
stesse risorse (ad esempio la RAM) da parte delle
applicazioni contemporaneamente attive, senza che si
creino “conflitti”.
11
 In particolare, poiché il processore è unico e quindi può
soddisfare una sola richiesta per volta, deve assegnare la
CPU al singolo processo, tenendo fermi tutti gli altri processi
“attivi”, che restano in attesa di poter utilizzare, a loro volta,
la CPU.
Monoutenza e
Multiprogrammazione
 Un processo perde l’uso della CPU (Deallocazione) se:
 E’ richiesta un’operazione di I/O da parte del processo in
esecuzione, che in termini di tempo è molto lenta.
16 nov 2011
 Termina il tempo a disposizione del processo. Ogni processo
accede alla CPU per un breve intervallo di tempo (ad
esempio 10 ms), terminato il quale la CPU viene staccata dal
processo e viene agganciata al processo successivo, e poi al
successivo, ecc., fino a tornare al primo e così via (tecnica del
time-sharing o condivisione di tempo)
12
Multitasking
 Pronto: il processo attende il proprio turno per essere
eseguito;
 In Esecuzione: Il processo ha accesso alla CPU che ne
esegue le istruzioni;
 In Attesa:
il processo attende il completamento di
un’operazione asincrona
Multithreading
 Un programma può effettuare più operazioni
contemporaneamente sullo stesso documento.
 Ad esempio può leggere dati immessi da tastiera,
stampare, visualizzare e contemporaneamente salvare il
documento.
16 nov 2011
 Ovviamente le operazioni non vengono fatte nello stesso
momento, ma è applicato il principio del multitasking (il
processore esegue le varie operazioni un po’ alla volta,
passando dall’una all’altra).
14
Multiutenza e
Multiprogrammazione
 Multi User e Multi Task
 E’ la modalità operativa dei sistemi Windows ‘server’:
 permette l’accesso al computer a più utenti per volta,
16 nov 2011
 Ognuno dei quali può mandare in esecuzione più
programmi, che utilizzano le stesse risorse del computer.
15
 Richiede l’impiego di notevoli risorse sia da parte del
sistema operativo sia dell’hardware, per questo
generalmente la si trova nei sistemi più sofisticati e su
macchine di una certa potenza.
Sicurezza e protezione - SO
multiutente
 Un sistema operativo multiutente deve possedere
un meccanismo per identificare gli utenti
 Il sistema più usato è quella di attribuire a ciascun
utente una login ed una password
 Ad ogni utente può essere attribuito un costo per le
risorse da lui usate
16 nov 2011
 Si può restringere a certi utenti l’accesso al file system
e alle risorse
16
 L’utente può avere un proprio ambiente
personalizzato
Elaborazione Parallela
 Più CPU o più elaboratori cooperano nell'esecuzione dei programmi
 Problematiche molto complesse
 Richiedono speciali architetture dei sistemi di elaborazione
 Sono lo stato dell'arte della tecnologia corrente
 La CPU può essere caratterizzata da diversi livelli di parallelismo:
 parallelismo di parola (stringhe di n bit di lunghezza)
 parallelismo spaziale (indica la quantità di dati che vengono elaborati
contemporaneamente)
 parallelismo di istruzione :
16 nov 2011
due istruzioni indipendenti e
che utilizzano diverse risorse,
possono essere eseguite
contemporaneamente
17
La Gestione della memoria
centrale
 Il gestore della memoria deve allocare la
memoria e partizionarla tra i processi che la
richiedono
16 nov 2011
 Grazie al gestore della memoria gli strati
superiori hanno l’illusione che ogni processo
abbia una memoria dedicata
19
La Gestione della memoria
centrale
 Un servizio offerto dalla gestione della memoria
è la cosiddetta memoria virtuale o swapping
16 nov 2011
 E’ possibile eseguire programmi più grandi della
memoria centrale caricando in memoria solo
alcuni parti (pagine) del programma
20
 Quando serve una pagina del programma
residente su disco avviene la sostituzione di una
pagina in memoria con quella desiderata
La Gestione delle Periferiche di
I/O
 Una caratteristica comune a tutti i dispositivi è quella
di operare in modo asincrono rispetto al processore
 Consideriamo una tastiera che produce dei dati di
input. Il processore non è in grado di prevedere e di
controllare il momento in cui un dato di input sarà a
disposizione
16 nov 2011
 Allo stesso modo, il processore non può prevedere il
momento in cui un dispositivo in output avrà terminato
di produrre i dati in uscita
21
 Sono
pertanto
necessarie
delle
forme
sincronizzazione tra i dispositivi e il processore
di
La Gestione delle Periferiche di
I/O
 Un dispositivo di input deve avvertire il processore
quando un dato di input è disponibile
16 nov 2011
 Un dispositivo di output deve avvertire il processore
quando ha terminato di produrre dati in uscita o
quando è pronto per ricevere dati dal processore
22
 I dispositivi di Input/Output inviano al processore un
segnale, detto interrupt, per richiedere l'attenzione
del processore stesso
La Gestione delle Periferiche di
I/O
16 nov 2011
 Ad ogni ciclo di clock, l'unità di controllo, prima
di iniziare l'esecuzione della prossima istruzione
del programma in corso, verifica se è arrivato
un segnale di interrupt da parte di qualche
dispositivo
23
 Se non c'è alcun segnale di interrupt il
processore prosegue normalmente, altrimenti
sospende l'esecuzione del programma attivo
ed esegue le operazioni richieste dal dispositivo
Le Categorie dei Sistemi
Operativi
Sistema Operativo e Hardware
 Tutti gli elaboratori sono dotati di Sistema Operativo.
 Un Sistema Operativo è legato alla complessità
dell’hardware (un SO di un mainframe è diverso da quello di
un portatile)
 Monoprogrammazione-Multiprogrammazione-Multiutenza
sono invece una caratteristica del sistema operativo.
16 nov 2011
 Caricando su un PC il sistema operativo DOS, avremo un
funzionamento di tipo “single user e single task”.
 Se sullo stesso PC carichiamo Windows XP Professional, avremo
un funzionamento di tipo “Single User e Multi Task”.
 Infine caricando il sistema operativo Windows XP Server,
avremo un funzionamento di tipo “Multi User e Multi Task”.
25
Sistemi Operativi per Desktop
 MS-DOS, della Microsoft, è stato il primo sistema operativo per
PC (in disuso)
 Windows, della MS, è installato su circa 80-90% dei PC
 Windows 95/98, sistemi operativi per PC, di vecchia generazione
 Windows NT, sistema operativo per PC , di vecchia generazione e
utilizzato come server di rete
 Windows 2000/XP, sistemi operativi per PC ancora molto diffusi
16 nov 2011
 Windows 8/Windows 10, i sistemi operativi di ultima generazione
26
 MacOS X, della Apple è installato su circa il 2% dei PC
 Linux/Unix è installato sui restanti Computer.
Sistemi Operativi per Server
 Server: Computer che gestisce reti di altri
computer.
 Sistemi Operativi potenti, sicuri e affidabili.
 Sono Multiuser, Multitasking, Multithreading
 Esempi:
 Windows Server
16 nov 2011
 IBM OS/2 (non più utilizzato)
27
 Unix
Sistemi Operativi Opensource
 Linux e Unix sono Sistemi Operativi “aperti”.
 Un SO aperto, detto anche “Opensource”, funziona
su macchine diverse.
 Fa parte della categoria dei software Public
Domain, quindi esso è
16 nov 2011
 completamente gratuito
28
 è modificabile da qualsiasi programmatore, essendo
distribuito assieme al codice sorgente
 Presente in molte versioni, a volte non compatibili tra
di loro (dato che ognuno può “modificarlo”)
Sistemi Operativi Proprietari
 Un SO “Proprietario” funziona su un solo tipo di computer.
Sviluppati da grandi case per mainframe e minicomputer
 IBM sviluppò il SO OpenMVS
 Digital sviluppò il VMS (poi diventato OpenVMS)
 Spesso le case costruttrici sviluppavano anche il Software
Applicativo (detto anch’esso “proprietario”)
16 nov 2011
 Svantaggi principali:
 Dipendenza pressoché totale dal produttore anche per semplici
operazioni di “personalizzazione” che coinvolgono modifica del
codice
 Costi elevatissimi
 Difficoltà di “portabilità” del software e, spesso, anche dei dati.
29
Altri Sistemi Operativi
 Smartphone e Tablet
 iOS 7.1
 Android
 Windows Phone 8
 Blackberry 10
16 nov 2011
…
30
 Sistemi Operativi Embedded sono invece
incorporati in piccoli dispositivi e sono codificati
su un chip di memoria ROM, invece che su Hard
Disk.
Il Sistema Operativo
16 nov 2011
 In un computer possono essere presenti più
sistemi operativi, utilizzabili singolarmente
poiché un loro uso contemporaneo creerebbe
un conflitto nella gestione delle risorse della
macchina.
31
 Per poter installare più sistemi operativi è
necessario suddividere l'hard disk in sezioni
separate (partizioni) e assegnare a ognuna un
sistema operativo che avrà il compito di gestire
il computer ogni volta che si lavora con essa.
Prestazioni di un Sistema
 Throughput: quantità di lavoro effettivamente
svolto, espressa in qualche unità di misura
sensata (job al minuto, ecc.)
 Overhead: i “costi di gestione”
163 nov 2011
 Ottimizzare le prestazioni: ridurre l’overhead al
minimo per ottenere il massimo throughput
32
Gestione del file system
Il file system
 Dati e programmi sono memorizzati sul disco
fisso all’interno di “contenitori logici” detti files.
 Un file è un contenitore di informazioni
 identificato da un nome (filename) e
21 nov 2011
 memorizzato in una delle memorie di massa
 Tra i compiti più importanti del sistema
operativo vi è la gestione dei files (file system
management) che si occupa di gestire i
documenti presenti nelle memorie di massa
 organizzandoli logicamente
 permettendo di operare su di essi
34
I nomi dei Files
 In quasi tutti i sistemi operativi un filename è
costituito da due parti: il nome vero e proprio e
l’estensione, separata dal nome da un punto,
paragonabili al nome e al cognome di una
persona.
 Il nome è scelto dall’utente.
21 nov 2011
 L’estensione
 rappresenta il tipo di dato che il file contiene
 solitamente indica il programma con cui è stato creato il file
(“.doc” per i documenti Word, “.exe” o “.bat” per i file eseguibili,
“.jpg” o “gif” per le immagini, ecc.).
35
21 nov 2011
I nomi dei Files
36
 In base all’estensione di un file, il Sistema
Operativo è in grado di aprire la corretta
applicazione semplicemente cliccando sul
nome del file.
Cartelle o Directory
 Per rendere più agevole il ritrovamento dei files,
il disco è diviso in cartelle (chiamate directory)
 Una directory è un contenitore logico che può
contenere a sua volta altre cartelle o semplici
files
21 nov 2011
 Una directory ha un nome che la
contraddistingue dalle altre directory
37
 Lo scopo principale delle directory è di
organizzare i file presenti nel dispositivo di
memorizzazione
File System Gerarchico
 La maggior parte dei sistemi operativi adotta un file
system gerarchico: le cartelle sono strutturate ad
albero, la cui radice è detta directory principale o
21 nov 2011
ROOT
38
39
File System Gerarchico
21 nov
2011
Unità
 Il file system può gestire file
memorizzati in più memorie di
massa (floppy disk, hard disk, CDRom, unità di rete, ecc.)
 Ad ogni memoria di massa è
associata una lettera
identificativa e/o un nome
A: è il floppy disk
C: è l’hard disk
D: è il CD-Rom
F: è l’unità Flash
21 nov
2011
40
Pathname (o percorso)
 Ogni file si trova in una sola directory, la quale,
a sua volta, si può trovare in un’altra directory
(e così via)
21 nov 2011
 All’interno della stessa directory non possono
esistere più file con lo stesso nome
(nome+estensione)
41
 Il percorso per arrivare dalla ROOT al file in
questione si chiama pathname
Pathname (o percorso)
 La directory principale si chiama \ (o ROOT –
Radice)
21 nov 2011
 Nel percorso le directory sono separate dal
carattere \
42
Programmi di gestione dei files
 Esplora Risorse
21 nov 2011
 Visualizza cartelle e files nelle varie unità secondo
una struttura ad albero.
43
Programmi di gestione dei files
 Motore di ricerca
21 nov 2011
 Esistono versioni dei motori di ricerca che vengono
applicati alla gestione dei files interni al proprio sistema.
L’utente si muove come se navigasse in Internet
44
Le Utilità di un Sistema
Operativo
La Formattazione di un Disco
 Predisposizione del disco all’uso da parte di un
Sistema Operativo
21 nov 2011
 Creazione di una tabella, (detta File Allocation
Table, FAT, oppure Master File Table, MFT) con le
informazioni principali sui files, sulla loro disposizione
su disco e sui settori vuoti
46
La Deframmentazione di un Disco
 Il
Sistema
Operativo
memorizza
un
file
scomponendolo in parti della stessa dimensione
(dette cluster), pari generalmente alla dimensione
del settore su disco
21 nov 2011
 Quando il disco è vuoto i cluster di un file vengono
memorizzati in settori contigui
47
 Quando il disco comincia a riempirsi i vari cluster
di un file (soprattutto se esso è molto grande)
vengono memorizzati dove c’è posto, spesso in
settori molto distanti l’uno dall’altro.
La Deframmentazione di un Disco
 Quando un file è frammentato, il sistema impiega
molto tempo ad “aprirlo” (cioè a copiarlo in RAM per
permettere l’utilizzo)
21 nov 2011
 la testina di lettura deve spostarsi molte volte sul disco
per “raccogliere” e serializzare le varie parti di un file
48
La Deframmentazione di un Disco
 Deframmentazione: spostamento dei cluster di
un file finchè tutti i frammenti sono su zone
contigue del disco
es. Dati i file A (4 cluster), B (3 cl.) e C (6 cl.)
… C3 C4 A1 A2 B3 A4 C6 C1 B1 A3 B2 C5 C2 …
21 nov 2011
… A1 A2 A3 A4 B1 B2 B3 C1 C2 C3 C4 C5 C6 …
49
Lo Scanning di un Disco
 Durante l’uso possono danneggiarsi parti di un
supporto e diventare quindi inutilizzabili,
rendendo di fatto inutilizzabile tutto il file che
comprende queste parti.
21 nov 2011
 Per limitare i danni è possibile effettuare, a
livello preventivo, una scansione del disco, in
modo da accantonare i settori guasti, ma non
ancora “allocati” ad alcun file.
50
 Scanning: programma che individua difetti o
danneggiamenti della superficie del disco,
problemi di allocazione dei files o problemi nella
Tabella di allocazione