Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1...
Transcript of Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1...
Anno accademico 2010-2011Anno accademico 2010-201111
• Il software può essere diviso in due grandi classi: i programmi di sistemaprogrammi di sistema, che gestiscono le funzionalità del
sistema di calcolo i programmi applicativiprogrammi applicativi, che risolvono i problemi degli utenti
• L’insieme dei programmi di sistemaprogrammi di sistema viene comunemente identificato con il nome di Sistema OperativoSistema Operativo (SO)(SO)
• Definizione:Definizione: Un sistema operativo è un programma che Un sistema operativo è un programma che controlla l’esecuzione dei programmi applicativi ed agisce controlla l’esecuzione dei programmi applicativi ed agisce come interfaccia fra le applicazioni e l’hardware del come interfaccia fra le applicazioni e l’hardware del calcolatorecalcolatore
Cos’è un sistema operativo Cos’è un sistema operativo −− 1 1
Anno accademico 2010-2011Anno accademico 2010-201122
• Visione a strati delle componenti hardware/software che compongo un sistema di elaborazione
Il SO come macchina estesa Il SO come macchina estesa −− 1 1
Anno accademico 2010-2011Anno accademico 2010-201133
• Il SO può essere inteso come uno strumento che virtualizzavirtualizza le caratteristiche dell’hardware sottostante, offrendo all’utente la visione di una macchina astrattamacchina astratta più potente e più semplice da utilizzare di quella fisicamente disponibile
• In questa visione, un SO… …nasconde a programmatori/utenti i dettagli dell’hardware e
fornisce un’interfaccia conveniente e facile da usare …agisce come intermediario tra programmatore/utente e
hardware• Parole chiave
Indipendenza dall’hardware Comodità d’uso Programmabilità
Il SO come macchina estesa Il SO come macchina estesa −− 2 2
Anno accademico 2010-2011Anno accademico 2010-201144
• L’utente è in grado di utilizzare la macchina fisica senza conoscere i dettagli della sua struttura interna e del suo funzionamento
1.1. HardwareHardware — fornisce le risorse fondamentali di calcolo (CPU, memoria, device di I/O)
2.2. Sistema OperativoSistema Operativo — controlla e coordina l’utilizzo delle risorse hardware da parte dei programmi applicativi dell’utente
3.3. Programmi ApplicativiProgrammi Applicativi — definiscono le modalità di utilizzo delle risorse del sistema, per risolvere i problemi di calcolo degli utenti (compilatori, database, video game, programmi gestionali)
4.4. UtentiUtenti — persone, altri macchinari, altri elaboratori
Hardware
Sy
stems software
Applications software
Visione “a cipolla” del sistema Visione “a cipolla” del sistema di calcolodi calcolo
Il SO come macchina estesa Il SO come macchina estesa −− 3 3
Anno accademico 2010-2011Anno accademico 2010-201155
• I SO sono costituiti da un insieme di moduli, ciascuno dedicato a svolgere una determinata funzione
• I vari moduli del SO interagiscono tra loro secondo regole precise, al fine di realizzare le funzionalità di base della macchina
KERNELKERNEL
Gestore dei ProcessiGestore dei Processi Gestore della Gestore della Memoria CentraleMemoria Centrale
Gestore dell’I/OGestore dell’I/O Gestore del Gestore del File SystemFile System
Interfaccia utenteInterfaccia utente • L’insieme dei moduli per la gestione della CPU e della memoria centrale è il kernelkernel
Architettura del sistema operativoArchitettura del sistema operativo
Anno accademico 2010-2011Anno accademico 2010-2011
Bootstrap -1 Bootstrap -1 All’accensione di un calcolatore vengono attivati programmi di
diagnostica scritti nella ROM (Read Only Memory) che verificano l’assenza di guasti
Poi viene attivato il programma di bootstrap che è sempre memorizzato nella ROM
Il bootstrap trasferisce una parte prestabilita della M di massa (disco rigido, CD o floppy) in M principale (kernel del SO)
Poi l’utente puo’ impartire comandi al SO attraverso l’interfaccia utente (tastiera, mouse…)
Anno accademico 2010-2011Anno accademico 2010-2011
Bootstrap -2Bootstrap -2
Anno accademico 2010-2011Anno accademico 2010-2011
Bootstrap -3Bootstrap -3
Dopo il bootstrap l'utente può iniziare a impartire comandi al sistema operativo utilizzando l'interfaccia utente
Il codice del comando deve essere in memoria principale (o caricato dalla m.s.)
La sua esecuzione è attivata dalla CPU modificando il registro P della CPU (program counter)
Anno accademico 2010-2011Anno accademico 2010-2011
Shutdown Shutdown
Quando il calcolatore viene spento una fase di shutdown si assicura che tutte le informazioni che temporaneamente il SO ha caricato su memoria volatile vengano memorizzate su memoria di massa prima che l’energia venga tolta dalla macchina
Anno accademico 2010-2011Anno accademico 2010-2011
Struttura del SOStruttura del SO
Interfaccia nucleo verso l’esterno
hardware
File system Gestore I/O Gestore processi
Gestore memoria
Gestore processori
Servizi richiesti dagli utenti al SO
nucl
eo
Anno accademico 2010-2011Anno accademico 2010-2011
Struttura di un SOStruttura di un SO
Elementi principali di un SO: Shell (interfaccia SO e utente) Kernel (insieme di programmi che realizzano
le funzioni di base di un calcolatore)
Anno accademico 2010-2011Anno accademico 2010-2011
Sistema operativo: Sistema operativo: shellshell Shell (guscio): interfaccia tra SO e utenti E’ il programma che permette agli utenti di
comunicare con il sistema e di avviare I programmi
Di solito grafica (GUI – Graphical User Interface), ma anche testuale
Anno accademico 2010-2011Anno accademico 2010-2011
Sistema operativo: Sistema operativo: kernel (1)kernel (1)
Kernel (nucleo): programmi per le funzioni base del calcolatore
da 100 Kilobyte a 100 Megabyte Kernel suddiviso in moduli Ogni modulo ha una funzione diversa Funzioni piu’ importanti:
gestione processigestione processigestione processorigestione processorigestione memoria (principale e secondaria)gestione memoria (principale e secondaria)gestione dispositivi di I/Ogestione dispositivi di I/O
Anno accademico 2010-2011Anno accademico 2010-2011
Sistema operativo: Sistema operativo: kernel (2)kernel (2) Funzioni piu’ importanti:
gestione processi: controlla la sincronizzazione, l’interruzione e la riattivazione dei programmi in esecuzione
gestione processori: assegna il processore ai programmi che devono essere eseguiti (e gestisce la cooperazione tra varie CPU nel caso di piu’ calcolatori)
gestione memoria (principale e secondaria): gestisce la collocazione dei dati e dei programmi nella RAM, la memorizzazione e il reperimento delle informazioni sulla memoria secondaria
gestione dispositivi di I/O (gestisce l’accesso e il controllo dei dispositivi periferici)
Anno accademico 2010-2011Anno accademico 2010-2011
Gestione dei processiGestione dei processi
• Un SO consente il caricamento in Un SO consente il caricamento in memoria e l'esecuzione di più programmi memoria e l'esecuzione di più programmi che si alternano nell'uso della CPU.che si alternano nell'uso della CPU.
• Per far ciò un programma può essere Per far ciò un programma può essere eseguito, sospeso e fatto ripartire più eseguito, sospeso e fatto ripartire più volte.volte.
Anno accademico 2010-2011Anno accademico 2010-2011
Programmi e processiProgrammi e processi
Programma:Programma: insieme statico di istruzioni Processo:Processo: entita’ che tiene traccia dello stato
dell’esecuzione di un programma Posizione nel programmaValori dei registri della CPUValori delle celle di M assegnate al programma
AncheAnche piu’ processi piu’ processi per lo per lo stesso programmastesso programma Es.: due utenti che usano Word per scrivere due
documenti diversi
Anno accademico 2010-2011Anno accademico 2010-2011
Processi e SOProcessi e SO
SO puo’ gestire simultaneamente piu’ programmi
Ogni programma puo’ essere fermato e fatto ripartire piu’ volte
Quindi ogni SO deve avere una struttura (detta processoprocesso) in grado di mostrare, istante per istante, lo stato di avanzamento di ciascun lo stato di avanzamento di ciascun programma (PCB)programma (PCB)
Anno accademico 2010-2011Anno accademico 2010-20111818
• Un processoprocesso è un programma in esecuzione Un processo utilizza le risorse fornite dal sistema di elaborazione
per assolvere ai propri compiti La terminazione di un processo prevede il recupero di tutte le
risorse riutilizzabili ad esso precedentemente allocate
• Normalmente, in un sistema vi sono molti processi, di alcuni utenti, e alcuni sistemi operativi, che vengono eseguiti in concorrenza su una o più CPU
• La concorrenza è ottenuta effettuando il multiplexingmultiplexing (multiplazione) delle CPU fra i vari processi
La gestione dei processi La gestione dei processi −− 1 1
Anno accademico 2010-2011Anno accademico 2010-20111919
• Il sistema operativo è responsabile delle seguenti attività riguardanti la gestione dei processi: creazione e terminazione dei processi sospensione e riattivazione dei processi gestione dei deadlockdeadlock comunicazione tra processi sincronizzazione tra processi
• Il gestore dei processi “realizza” una macchina virtuale in cui Il gestore dei processi “realizza” una macchina virtuale in cui ciascun programma opera come se avesse a disposizione ciascun programma opera come se avesse a disposizione un’unità di elaborazione dedicataun’unità di elaborazione dedicata
La gestione dei processi La gestione dei processi −− 2 2
Anno accademico 2010-2011Anno accademico 2010-20112020
• Il gestore dei processigestore dei processi è il modulo che si occupa del controllo, della sincronizzazione, dell’interruzione e della riattivazione dei programmi in esecuzione cui viene assegnato un processore
• La gestione dei processi viene compiuta secondo modalità diverse, in funzione del tipo di utilizzo cui il sistema è rivolto
• Il programma che si occupa della distribuzione del tempo di CPU tra i vari processi attivi, decidendone l’avvicendamento, è chiamato schedulerscheduler
• Nel caso di sistemi multiprocessore, lo scheduler si occupa anche di gestire la cooperazione tra le diverse CPU presenti nel sistema (bilanciandone il carico)
La gestione dei processi La gestione dei processi −− 3 3
Anno accademico 2010-2011Anno accademico 2010-20112121
• I SO che gestiscono l’esecuzione di un solo programma per volta (un solo processo) sono detti monomono−−tasking tasking
• Non è possibile sospendere un processo per assegnare la CPU ad un altro
• Sono storicamente i primi SO (es. MS−DOS)
tA
B
C
T
Tempo di utilizzo della CPUTempo di attesa di eventi esterni
Sistemi monoSistemi mono−−taskingtasking
Anno accademico 2010-2011Anno accademico 2010-20112222
• I SO che permettono l’esecuzione contemporanea di più programmi sono detti multimulti−−tasking tasking o multi multi−−programmati programmati
• Un programma può essere interrotto e la CPU passata a un altro programma
Tmulti-tasking
tA
B
C
Tmono-tasking
Tempo di utilizzo della CPU
Tempo di attesa di eventi esterni
Sistemi multiSistemi multi−−taskingtasking
Anno accademico 2010-2011Anno accademico 2010-20112323
• Un’evoluzione dei sistemi multi−tasking sono i sistemi timetime−−sharingsharing
• Ogni processo viene eseguito ciclicamente per piccoli quanti quanti di tempo (TIME SLICE)di tempo (TIME SLICE)
• Se la velocità del processore è sufficientemente elevata si ha l’impressione di un’evoluzione parallela dei processi
• EsempioEsempio Ipotesi: 1 MIPS, 4 processi,
0.25 s/utente Conseguenze: 0.25 MIPS/utente,
TELA = 4 × TCPUC B
AD0.00”
0.25”0.75”
0.50”
Sistemi timeSistemi time−−sharingsharing
Anno accademico 2010-2011Anno accademico 2010-20112424
tAA
BB
CC
DD
ProcessoProcesso CPU burstCPU burst
AA 33
BB 22
CC 44
DD 33
TimeTime−−sharing: diagramma temporalesharing: diagramma temporale
Anno accademico 2010-2011Anno accademico 2010-2011
Time-sharing (condivisione di tempo)Time-sharing (condivisione di tempo)
Anno accademico 2010-2011Anno accademico 2010-2011
Gestione della codaGestione della coda Un processo in esecuzione puo’ essere interrotto per
vari motivi: Quanto esauritoQuanto esaurito Esecuzione completataEsecuzione completata Subentra un processo con maggiore priorita’Subentra un processo con maggiore priorita’ Ha fatto una richiesta di un’operazione di I/O ->entra Ha fatto una richiesta di un’operazione di I/O ->entra
nella lista dei processi bloccatinella lista dei processi bloccati modifica del program counter tocca al vettore di
interrupt (diverso per ogni evento) Politica di scelta del successivo processo da eseguire:
FIFO: First in First out SJF: Shortest Job First Deadline (si esegue prima il processo con la scadenza
piu’ vicina) SRT: Shortest Remaining Time
Anno accademico 2010-2011Anno accademico 2010-2011
TransizioniTransizioni tra stati di un processo tra stati di un processo
In esecuzione
pronti
Coda ordinata in attesa della CPU
In attesa
Insieme in attesa di eventi
schedulazione richiesta di I/O
conclusione I/O
fine tempo,evento esterno
Anno accademico 2010-2011Anno accademico 2010-2011
Riassumendo ...Riassumendo ... I processi sono messi in una coda dei pronti 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 in attesa, quando l’operazione finisce viene rimesso in coda per la CPU
La CPU va al primo in coda (o altre strategie) Durante la vita di un processo, vari stati:Durante la vita di un processo, vari stati:
In esecuzione: quando usa la CPU (solo un processo alla volta)
Pronto: quando aspetta la CPU Bloccato: in attesa di un evento (es.: fine di op. di I/O)
Anno accademico 2010-2011Anno accademico 2010-2011
Chi si occupa delle fasi di Chi si occupa delle fasi di transizione???transizione???• INTERRUPT:INTERRUPT: segnali hardware che
provocano la modifica del registro PC e l'esecuzione di un particolare programma (vettore di interrupt) che serve a gestire l'evento associato all'interruzione
• SCHEDULER:SCHEDULER: ha il compito di gestire la coda dei processi pronti e l'avvicendarsi dei processi
Anno accademico 2010-2011Anno accademico 2010-2011
Gestione dei processi: Gestione dei processi: Scheduler (1)Scheduler (1) Tiene traccia di tutti i processi A ogni processo e’ associata una Tabella (detta tabella
di processo) in M Principale Identificativo Indirizzo prossima istruzione Contenuto registri CPU Stato corrente (Esecuzione, Bloccato, Pronto) Informazioni per gestire la M (collocazione in M
centrale di dati e programmi) Priorita’ I/O (richieste inoltrate, dispositivi allocati al processo) Accounting (ammontare di CPU time gia’ speso)
Anno accademico 2010-2011Anno accademico 2010-2011
Gestione dei processi: Gestione dei processi: Scheduler (2)Scheduler (2)
Usando questa tabella si possono compiere le seguenti operazioniCreazione (un processo puo’ crearne altri)Cambio di priorita’BloccoAssegnamento della CPUTerminazione
Anno accademico 2010-2011Anno accademico 2010-2011
AttesaAttesa
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, e il dispatcher (modulo che implementa le decisioni prese dallo scheduler) sceglie un nuovo processo tra i pronti dalla tabella
Quando l’operazione sara’ finita, lo scheduler dichiarera’ di nuovo pronto il processo
Anno accademico 2010-2011Anno accademico 2010-2011
Sistemi Sistemi multiprocessoremultiprocessore Reti di calcolatori: vari calcolatori che si scambiano
dati Es.: Internet Una rete e’ un sistema multiprocessore con una CPU
su ogni calcolatore
Anche singoli calcolatori con piu’ CPU Non solo coordinamento delle attivita’ di ogni
processore, ma anche bilanciamento del carico: distribuzione dinamica ed
efficiente dei task ai vari processori Scalabilita’: suddivisione dei task in sotto-task
compatibile con il numero dei processori
Anno accademico 2010-2011Anno accademico 2010-2011
Sistemi Sistemi multiprocessoremultiprocessore Reti di calcolatori: vari calcolatori che si scambiano
dati Es.: Internet Una rete e’ un sistema multiprocessore con una CPU
su ogni calcolatore
Anche singoli calcolatori con piu’ CPU Non solo coordinamento delle attivita’ di ogni
processore, ma anche bilanciamento del carico: distribuzione dinamica ed
efficiente dei task ai vari processori Scalabilita’: suddivisione dei task in sotto-task
compatibile con il numero dei processori
www.mersenne.org/prime.htm
Anno accademico 2010-2011Anno accademico 2010-2011
Gestione dei processoriGestione dei processori
• La gestione dei processori riguarda i criteri in base ai quali i processori vengono assegnati ai vari processi
• Abbiamo già visto lo scheduler (ditribuisce il tempo della cpu tra i vari processi) e il dispacher (copia in memoria i registri del processo in esecuzione, copia i registri del processo cui assegnare la CPU, salta alla locazione da cui il nuovo programma deve partire o ripartire.
• Lo scheduler compie le proprie scelte cercando di ottimizzare vari criteri: max uso della CPU, max numero di elaborazioni,....
Anno accademico 2010-2011Anno accademico 2010-2011
Parametri di valutazione Parametri di valutazione della della gestione dei processorigestione dei processori
Tasso di uso CPU (deve essere massimo) Throughput (n. di processi completati per
unita’ di tempo) Elapsed time (tempo tra la sottomissione di un
processo e il suo completamento) Tempo di attesa (tempo passato in attesa nella
coda dei processi pronti)
Anno accademico 2010-2011Anno accademico 2010-20113737
• La memoria principale… …è un “array” di byte indirizzabili singolarmente …è un deposito di dati facilmente accessibile e condiviso tra la CPU
ed i dispositivi di I/O• Il SO è responsabile delle seguenti attività riguardanti la gestione
della memoria principale: 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
• Il gestore di memoria “realizza” una macchina virtuale in cui Il gestore di memoria “realizza” una macchina virtuale in cui ciascun programma opera come se avesse a disposizione una ciascun programma opera come se avesse a disposizione una memoria dedicatamemoria dedicata
La gestione della memoria principale La gestione della memoria principale −− 1 1
Anno accademico 2010-2011Anno accademico 2010-20113838
• L’organizzazione e la gestione della memoria centrale è uno degli aspetti più critici nel disegno di un SO
• Il gestore della memoriagestore della memoria è quel modulo del SO incaricato di assegnare la memoria ai task (per eseguire un task è necessario che il suo codice sia caricato in memoria)
• La complessità del gestore della memoria dipende dal tipo di SO
• Nei SO multi−tasking, più programmi possono essere caricati contemporaneamente in memoria
• Problema:Problema: come allocare lo spazio in maniera ottimale?
La gestione della memoria principale La gestione della memoria principale −− 2 2
Anno accademico 2010-2011Anno accademico 2010-2011
Memoria realeMemoria reale
• Nessun problema se un programma per volta (tecnica di overlay)
• Se più task si partiziona la memoria:– Partizioni fisse– Partizioni variabili (un programma occupa
il minimo spazio possibile per essere eseguito)
Attenzione: problema della frammentazione della memoria
Anno accademico 2010-2011Anno accademico 2010-20114040
Programma AProgramma A
Programma BProgramma B
Programma CProgramma C
Memoria
0000x
Programma DProgramma DPROBLEMA !!!!PROBLEMA !!!!
FRAMMENTAZIONEFRAMMENTAZIONE
Allocazione lineareAllocazione lineare
Anno accademico 2010-2011Anno accademico 2010-20114141
Programma DProgramma D
Programma AProgramma A
Programma AProgramma A
Programma AProgramma A
Programma BProgramma B
Programma BProgramma B
PaginazionePaginazione
Memoria
0000x
Programma EProgramma E
Programma FProgramma F
Programma FProgramma F
Anno accademico 2010-2011Anno accademico 2010-20114242
• Spesso la memoria non è sufficiente per contenere completamente tutto il codice dei processi
• Si può simularesimulare una memoria più grande tenendo nella memoria di sistema (RAM) solo le parti di codice e dati che servono in quel momento
• Si usa il concetto di memoria virtualememoria virtuale• I dati e le parti di codice relativi a programmi non in
esecuzione possono essere tolti dalla memoria centrale e “parcheggiati” su disco nella cosiddetta area di swaparea di swap
• I processori moderni sono dotati di meccanismi hardware per facilitare la gestione della memoria virtuale
La memoria virtuale La memoria virtuale −− 1 1
Anno accademico 2010-2011Anno accademico 2010-20114343
Programma DProgramma D
Memoria
0000xProgramma A-1Programma A-1
Programma B-1Programma B-1
Programma A-2Programma A-2
Programma A-3Programma A-3
Programma B-2Programma B-2
Swap
La memoria virtuale La memoria virtuale −− 2 2
Anno accademico 2010-2011Anno accademico 2010-20114444
Programma DProgramma D
Memoria
Programma A-2Programma A-2
Programma B-1Programma B-1
Programma A-1Programma A-1
Programma A-3Programma A-3
Programma B-2Programma B-2
Swap
La memoria virtuale La memoria virtuale −− 2 2
0000x
Anno accademico 2010-2011Anno accademico 2010-2011
Struttura del SOStruttura del SO
Interfaccia nucleo verso l’esterno
hardware
File system Gestore I/O Gestore processi
Gestore memoria
Gestore processori
Servizi richiesti dagli utenti al SO
nucl
eo
Anno accademico 2010-2011Anno accademico 2010-20114646
• Poiché la memoria principale è volatile e troppo piccola per contenere tutti i dati e tutti i programmi in modo permanente, il computer è dotato di memoria secondariamemoria secondaria In generale, la memoria secondaria è data da hard disk e
dischi ottici• Il SO garantisce una visione logica uniforme del processo di
memorizzazione: Astrae dalle caratteristiche fisiche dei dispositivi per definire
un’unità di memorizzazione logica − il filefile Ciascuna periferica viene controllata dal relativo device driver,
che nasconde all’utente le caratteristiche fisiche variabili dell’hardware: modalità e velocità di accesso, capacità, velocità di trasferimento
La gestione della memoria secondaria La gestione della memoria secondaria −− 1 1
Anno accademico 2010-2011Anno accademico 2010-20114747
• Il SO è responsabile delle seguenti attività riguardanti la gestione della memoria secondaria:
Allocazione dello spazio
Gestione dello spazio libero
Ordinamento efficiente delle richieste di accesso al disco (disk disk schedulingscheduling)
La gestione della memoria secondaria La gestione della memoria secondaria −− 2 2
Anno accademico 2010-2011Anno accademico 2010-20114848
• Il file è l’astrazione informatica di un archivio di dati Il concetto di file è indipendente dal mezzo sul quale viene
memorizzato (che ha caratteristiche proprie e propria organizzazione fisica)
• Un file system è composto da un insieme di file• Il SO è responsabile delle seguenti attività riguardanti la
gestione del file system: Creazione e cancellazione di file Creazione e cancellazione di directory Manipolazione di file e directory Codifica del file system sulla memoria secondaria
La gestione del file system La gestione del file system −− 1 1
Anno accademico 2010-2011Anno accademico 2010-20114949
• Il gestore del file systemgestore del file system è il modulo del SO incaricato di gestire le informazioni memorizzate sui dispositivi di memoria di massa
• Nei sistemi multi−utente, fornisce meccanismi di protezione per consentire agli utenti di proteggere i propri dati dall’accesso di altri utenti non autorizzati
• Le funzioni tipiche del gestore del file system sono: Fornire un meccanismo per l’identificazione dei file Fornire metodi opportuni di accesso ai dati Rendere trasparente la struttura fisica del supporto di
memorizzazione Implementare meccanismi di protezione dei dati
La gestione del file system La gestione del file system −− 2 2
Anno accademico 2010-2011Anno accademico 2010-20115050
• L’insieme gerarchico delle directory e dei file può essere rappresentato attraverso un grafo (un albero nei SO più datati) delle directory
• Quasi tutti i SO utilizzano un’organizzazione gerarchicagerarchica del file system
• L’elemento utilizzato per raggruppare più file insieme è la directorydirectory
DirectoryDirectory
FileFile
Grafo delle directoryGrafo delle directory
Organizzazione del file system -1Organizzazione del file system -1
Anno accademico 2010-2011Anno accademico 2010-2011
Organizzazione del file system -2Organizzazione del file system -2 I dischi fissi possono essere divisi in
partizionipartizioni Una partizione e' organizzata
gerarchicamente come un albero rovesciato (come quello genealogico)
Nodi Nodi e collegamenti padre-figlio tra nodi Nodo dell'albero: file o directory Nodi divisi per livelli Collegamenti tra nodi di livelli vicini: nodo
sopra = padrepadre, nodo sotto = figliofiglio Ogni nodo ha un solo padre Padre più in alto = radiceradice I nodi che sono file non hanno figli Cammino assoluto o relativo (per file)
directoryfile
Anno accademico 2010-2011Anno accademico 2010-2011
Indirizzo (o percorso) dei file in Windows
A
ED
CB
F
d e
a
b c
hgf
partizione Z
Z:\A\c
Z:\a
Z:\A\C\D\f
Z:\A\C\E\h
Z:
Anno accademico 2010-2011Anno accademico 2010-2011
Indirizzo (o percorso) dei file in Unix/Linux
A
ED
CB
F
d e
a
b c
hgf
/A/c
/a
/A/C/D/f
/A/C/E/h
/
Anno accademico 2010-2011Anno accademico 2010-2011
Gestore della Gestore della memoria secondariamemoria secondaria I byte che compongono I file possono essere
organizzati in vari modi:
• Byte stream (sequenza di byte)• Sequenziale (sequenza di record a lunghezza
fissa o variabile)• Diretto (sequenza di record a lunghezza fissa)• A indice (sequenza di record ordinati
logicamente secondo un indice)
Anno accademico 2010-2011Anno accademico 2010-2011
Struttura del SOStruttura del SO
Interfaccia nucleo verso l’esterno
hardware
File system Gestore I/O Gestore processi
Gestore memoria
Gestore processori
Servizi richiesti dagli utenti al SO
nucl
eo
Anno accademico 2010-2011Anno accademico 2010-20115656
• La gestione dell’I/O richiede: Un’interfaccia comune per la gestione dei device driverdevice driver Un insieme di driver per dispositivi hardware specifici Un sistema di gestione di buffer per il caching delle
informazioni• Il gestore dei dispositivi di I/Ogestore dei dispositivi di I/O è il modulo del SO incaricato
di assegnare i dispositivi ai task che ne fanno richiesta e di controllare i dispositivi stessi
• Da esso dipende la qualità e il tipo di periferiche riconosciute dal sistema
• Il gestore delle periferiche offre all’utente una versione Il gestore delle periferiche offre all’utente una versione astratta delle periferiche hardware; l’utente ha a astratta delle periferiche hardware; l’utente ha a disposizione un insieme di procedure standard di alto livello disposizione un insieme di procedure standard di alto livello per leggere/scrivere da/su una periferica che “percepisce” per leggere/scrivere da/su una periferica che “percepisce” come dedicatacome dedicata
La gestione dei dispositivi di I/OLa gestione dei dispositivi di I/O
Anno accademico 2010-2011Anno accademico 2010-20115757
• Tutti i SO implementano meccanismi per facilitare l’utilizzo del sistema di calcolo da parte degli utenti
• L’insieme di tali meccanismi di accesso al computer prende il nome di interfaccia utenteinterfaccia utente
• Serve per… …attivare un programma, terminare un programma, etc. …interagire con le componenti del sistema operativo (gestore
dei processi, file system, etc.)
L’interfaccia utente L’interfaccia utente −− 1 1
Anno accademico 2010-2011Anno accademico 2010-20115858
• Interfaccia testuale:Interfaccia testuale: Interprete dei comandi (shellshell) Esempio: MSMS−−DOS/UNIXDOS/UNIX
• Interfaccia graficaInterfaccia grafica (a finestre): L’output dei vari programmi viene visualizzato in maniera
grafica all’interno di finestre L’utilizzo di grafica rende più intuitivo l’uso del calcolatore Esempio: WINDOWS/LinuxWINDOWS/Linux
• Differenze: Cambia il “linguaggio” utilizzato, ma il concetto è lo stesso Vi sono però differenze a livello di espressività
L’interfaccia utente L’interfaccia utente −− 2 2
Anno accademico 2010-2011Anno accademico 2010-20115959
• Realizza la metafora della scrivania desktopdesktop
Interazione semplice via mouse
Le iconeicone rappresentano file, directory, programmi, azioni, etc.
I diversi tasti del mouse, posizionato su oggetti differenti, provocano diversi tipi di azione: forniscono informazioni sull’oggetto in questione, eseguono funzioni tipiche dell’oggetto, aprono directory − folderfolder, o cartellecartelle,, nel gergo GUI GUI (Graphical User InterfaceGraphical User Interface)
L’interfaccia graficaL’interfaccia grafica
Anno accademico 2010-2011Anno accademico 2010-20116060
• Sistemi complessi che presentano miriadi di problemi e milioni di linee di codice (100−1000 programmatori per anno)
• Interazioni complesse Universali (eseguiti su piattaforme diverse) Differenti classi di utenti hanno necessità diverse La performance è cruciale!
• Poco compresi: Il SO tipicamente “dura” più di chi lo ha programmato ed è
troppo grande per essere compreso da una singola persona Mai completamente privi di errori (OS/360 rilasciato con 1000
bug); comportamenti difficili da prevedere; aggiustamenti spesso eseguiti per tentativi
Conclusioni: i SO oggiConclusioni: i SO oggi
Anno accademico 2010-2011Anno accademico 2010-2011
Esempi di SO: 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
Anno accademico 2010-2011Anno accademico 2010-2011
Esempi di SO: 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
Anno accademico 2010-2011Anno accademico 2010-2011
Comandi piu’ usati in MS - DOS 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)
Anno accademico 2010-2011Anno accademico 2010-2011
File in MS - DOS
Per individuare un file: cammino assoluto Un file system per ogni disco anche nome
del disco Esempio: C:\Dir1\Dir2\Dir3\file.txt Estensioni per file:
.exe per programma eseguibile.txt per file di testo.sys per file di sistema.c per programma in C.doc per documento Word
Anno accademico 2010-2011Anno accademico 2010-2011
Unix
SO multi-utente, multi-tasking, con time-sharing Concepito per poter funzionare su diverse
piattaforme hardware Interprete dei comandi: shell Piu’ di 300 comandi, con opzioni Comando man per aiuto Forma di un comando: nome-comando [[-opzioni] argomenti]
Anno accademico 2010-2011Anno accademico 2010-2011
Comandi Unix
ls per vedere il contenuto di una directory cp per copiare file rm per cancellare file mv per spostare file cd per spostarsi in un’altra directory mkdir per creare una nuova directory ps per vedere tutti i processi attivi lp per stampare file who per vedere tutti gli utenti collegati
Anno accademico 2010-2011Anno accademico 2010-2011
File in Unix
Unico albero anche se ci sono piu’ dischi non serve indicare il disco per denotare un file
Nei cammini non appare il nome del disco Radice: simbolo / Esempio: /dir1/dir2/dir3/file.txt
Anno accademico 2010-2011Anno accademico 2010-2011
Windows
Nato nel 1987, ispirato al Macintosh All’inizio era un’interfaccia grafica per DOS Windows ’95: SO mono-utente, multi-tasking,
time-sharing DOS emulato in speciali finestre (per seguire
vecchi applicativi per DOS)
Anno accademico 2010-2011Anno accademico 2010-2011
Filosofia Windows -- 1
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
Anno accademico 2010-2011Anno accademico 2010-2011
Filosofia Windows -- 2 L’utente non deve ricordarsi i nomi dei comandi,
basta che selezioni col mouse:un oggetto e il comando da applicare all’oggetto
File system (cioe’ l’albero): visualizzato come cartelle che contengono icone di file o di altre cartelle
Cliccando su una cartella, si apre quella directory
Icona del file: diversa a seconda del tipo di file