introduzione ai sistemi operativi

70
1 Introduzione ai Introduzione ai sistemi operativi sistemi operativi

Upload: genera

Post on 06-Jan-2016

89 views

Category:

Documents


5 download

DESCRIPTION

Introduzione ai sistemi operativi. Sommario. Introduzione Scopo del sistema operativo Architettura del sistema operativo Storia dei sistemi operativi Struttura dei sistemi operativi La gestione dei processi La gestione della memoria Il file system La gestione dei dispositivi di I/O - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Introduzione ai sistemi operativi

1

Introduzione aiIntroduzione aisistemi operativisistemi operativi

Page 2: Introduzione ai sistemi operativi

2

SommarioSommario

IntroduzioneIntroduzioneScopo del sistema operativoScopo del sistema operativo

Architettura del sistema operativoArchitettura del sistema operativo

Storia dei sistemi operativiStoria dei sistemi operativi

Struttura dei sistemi operativiStruttura dei sistemi operativiLa gestione dei processiLa gestione dei processi

La gestione della memoriaLa gestione della memoria

Il file systemIl file system

La gestione dei dispositivi di I/OLa gestione dei dispositivi di I/O

L’interfaccia utenteL’interfaccia utente

Esempi di sistemi operativiEsempi di sistemi operativi

Page 3: Introduzione ai sistemi operativi

3

IntroduzioneIntroduzione

Page 4: Introduzione ai sistemi operativi

4

Cos’è un sistema operativo Cos’è un sistema operativo 1 1

Il software può essere diviso in due grandi classi:i programmi di sistemaprogrammi di sistema, che gestiscono le funzionalità del sistema di calcoloi 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)

DefinizioneDefinizioneUn sistema operativo è un programma che controlla controlla l’esecuzione di programmi applicativil’esecuzione di programmi applicativi ed agisce come interfaccia fra le applicazioni e l’hardwareinterfaccia fra le applicazioni e l’hardware del calcolatore

Page 5: Introduzione ai sistemi operativi

5

Tutte le piattaforme hardware/software richiedono un sistema operativoQuando si accende un elaboratore, occorre attendere alcuni istanti per poter iniziare a lavorare: durante questa pausa il computer carica il SO

Cos’è un sistema operativo Cos’è un sistema operativo 2 2

Page 6: Introduzione ai sistemi operativi

6

Scopo del sistema operativoScopo del sistema operativo

Gestione EFFICIENTE delle risorse del sistema di elaborazione

Rendere AGEVOLE l’interfaccia tra l’uomo e la macchina

Page 7: Introduzione ai sistemi operativi

7

Gestione dei processiGestione della memoria principaleGestione della memoria di massa (file system)Realizzazione dell’interfaccia utenteRilevamento e gestione degli erroriAccountingProtezione e sicurezza

Compiti del sistema operativoCompiti del sistema operativo

Page 8: Introduzione ai sistemi operativi

8

Esempio: il SO come gestore risorse Esempio: il SO come gestore risorse – 1– 1

Si consideri un ristorante con un capo–cuoco (che dirige la cucina) ed i suoi aiutanti, camerieri e clienti:

I clienti scelgono un piatto dal menùUn cameriere prende l’ordine e lo consegna al capo–cuocoIl capo–cuoco riceve l’ordine e assegna uno o più aiutanti alla preparazione del piattoOgni aiutante si dedicherà alla preparazione di un piatto, il che potrà richiedere più attività diverseIl capo–cuoco supervisiona la preparazione dei piatti e gestisce le risorse (limitate) disponibili

Page 9: Introduzione ai sistemi operativi

9

Esempio: il SO come gestore risorse Esempio: il SO come gestore risorse – 2– 2

Il capo–cuoco è il sistema operativo!Il capo–cuoco è il sistema operativo!

I clienti sono gli utentiLe ricette associate ai piatti sono i programmiIl menù ed il cameriere costituiscono l’interfaccia verso il sistema operativo (grafica e non)Gli aiutanti sono i processiLa cucina è il computer; pentole, fornelli, etc. sono le componenti hardware

Page 10: Introduzione ai sistemi operativi

10

Esempio: il SO come gestore risorse Esempio: il SO come gestore risorse – 3– 3

Problemi del capo–cuoco:Esecuzione fedele delle ricetteAllocazione efficiente delle risorse esistenti (aiutanti, fornelli, etc.) Coordinamento efficiente degli aiutantiLicenziamento degli aiutanti che non si comportano secondo le regole

Problemi del sistema operativo:Efficienza nell’uso delle risorse (processori, memoria, dischi, etc.)Protezione nell’uso delle risorseCoordinamento dei processi

Page 11: Introduzione ai sistemi operativi

11

Il SO come macchina estesa – 1Il SO come macchina estesa – 1

Visione a strati delle componenti hardware/software che compongo un elaboratore

Page 12: Introduzione ai sistemi operativi

12

Il SO come macchina estesa – 2Il SO come macchina estesa – 2

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 disponibileIn 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 chiaveIndipendenza dall’hardwareComodità d’usoProgrammabilità

Page 13: Introduzione ai sistemi operativi

13

Il SO come macchina estesa – 3Il SO come macchina estesa – 3

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 Visione “a cipolla” del sistema di calcolosistema di calcolo

Page 14: Introduzione ai sistemi operativi

14

I SO sono costituiti da un insieme di moduli, ciascuno dedicato a svolgere una determinata funzioneI vari moduli del SO interagiscono tra loro secondo regole precise, al fine di realizzare le funzionalità di base della macchina

Architettura del sistema Architettura del sistema operativooperativo

KERNELKERNEL

Gestore dei ProcessiGestore dei ProcessiGestore della Gestore della

Memoria Memoria CentraleCentrale

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

Page 15: Introduzione ai sistemi operativi

15

Ancora sul sistema operativoAncora sul sistema operativo

Si ha a che fare con file, directory, etc., e non ci si deve preoccupare di come i dati sono memorizzati sul disco

EsempioEsempio: il filesystemfilesystem

Riassumendo: Il sistema operativo fornisce un ambiente per eseguire programmi in modo conveniente ed efficiente, funge infatti da…

Allocatore di risorseAllocatore di risorse — controlla, distribuisce ed alloca le risorse (in modo equo ed efficiente)Programma di controlloProgramma di controllo — controlla l’esecuzione dei programmi utente e le operazioni sui dispositivi di I/O

Page 16: Introduzione ai sistemi operativi

16

Storia dei sistemi operativiStoria dei sistemi operativi

Page 17: Introduzione ai sistemi operativi

17

Storia dei sistemi operativiStoria dei sistemi operativi

L’evoluzione dei sistemi operativi……è stata spintaè stata spinta dal progresso tecnologico dell’hardware…ha guidatoha guidato il progresso tecnologico dell’hardware

EsempioEsempio:Gestione degli interruptProtezione della memoriaMemoria virtuale...

Perché analizzare la storia dei sistemi operativi?Perché permette di capire l’origine di certe soluzioni presenti nei SO attualiPerché è l’approccio migliore per capire come certe idee si sono sviluppatePerché alcune delle soluzioni più antiche sono ancora utilizzate

Page 18: Introduzione ai sistemi operativi

18

Storia dei sistemi di Storia dei sistemi di elaborazioneelaborazione

Generazione 0: Babbage (1792–1871)Generazione 0: Babbage (1792–1871)Progetta la macchina analiticamacchina analitica (programmabile, meccanica)Non aveva sistema operativoLa prima programmatrice della storia è Lady Ada Lovelace

Generazione 1: 1945–1955Generazione 1: 1945–1955Valvole e tavole di commutazione

Generazione 2: 1955–1965Generazione 2: 1955–1965Transistor e sistemi batch

Generazione 3: 1965–1980Generazione 3: 1965–1980Circuiti integrati, multiprogrammazione e time–sharing

Generazione 4: 1980–oggiGenerazione 4: 1980–oggiPersonal computer

Page 19: Introduzione ai sistemi operativi

19

Generazione 1: 1945Generazione 1: 1945–1955–1955

Come venivano costruiti?Come venivano costruiti?Calcolatori a valvole e tavole di commutazione

Come venivano usati?Come venivano usati?Solo calcoli numerici (calcolatori non elaboratori)Un singolo gruppo di persone progettava, costruiva, programmava e manuteneva il proprio computer

Come venivano programmati?Come venivano programmati?In linguaggio macchina (stringhe di 0 e 1)Programmazione su tavole di commutazione

Nessun sistema operativo!Nessun sistema operativo!

Page 20: Introduzione ai sistemi operativi

20

Generazione 1: 1945Generazione 1: 1945–1955–1955

Principali problemi:Scarsa affidabilità (guasti frequenti)Rigidità nell’assegnazione dei ruoliNon esiste il concetto di programmatore come entità separata dal costruttore di computer e dall’utente

Utilizzazione lenta e complessa; l’operatore doveva…

1) …caricare il programma da eseguire2) …inserire i dati di input3) …eseguire il programma4) …attendere il risultato5) …in caso di errore, ricominciare dal punto 1)

Tutto ciò a causa dell’assenza del SO

Page 21: Introduzione ai sistemi operativi

21

Generazione 2: 1955Generazione 2: 1955–1965–1965

Come venivano costruiti?Come venivano costruiti?Introduzione dei transistorCostruzione di macchine più affidabili ed economiche

Come venivano usati?Come venivano usati?Gli elaboratori iniziano ad essere utilizzati per compiti diversiSi crea un mercato, grazie alle dimensioni ed al prezzo ridottiAvviene una separazione tra costruttori, operatori e programmatori

Come venivano programmati?Come venivano programmati?Linguaggi di “medio/alto livello”: AssemblyAssembly, FortranFortranTramite schede perforate

Sistemi operativi batchSistemi operativi batch

Page 22: Introduzione ai sistemi operativi

22

Generazione 2: 1955Generazione 2: 1955–1965–1965

DefinizioneDefinizione di jobdi job: Un programma o un insieme di programmi la cui esecuzione è richiesta da un utenteCiclo di esecuzione di un job

Il programmatore…1) scrive (su carta) un programma in un linguaggio di alto livello2) perfora una serie di schede con il programma e il suo input3) consegna le schede ad un operatore

L’operatore…1) inserisce le schede di controllo scritte in linguaggio apposito2) inserisce le schede del programma3) attende il risultato e lo consegna al programmatore

operatore operatore programmatore = utente programmatore = utente

Page 23: Introduzione ai sistemi operativi

23

Generazione 2: 1955Generazione 2: 1955–1965–1965

Il monitor residente è in grado di eseguire una sequenza di job, trasferendo il controllo dall’uno all’altro in successione

Primi rudimentali esempi di sistema operativo, detti anche monitor residenti monitor residenti o sistemi batchsistemi batch, “a infornata”:

Controllo iniziale al monitorIl controllo viene ceduto al job correnteUna volta terminato il job, il controllo ritorna al monitor

Page 24: Introduzione ai sistemi operativi

24

Generazione 2: 1955Generazione 2: 1955–1965–1965

Principale problema: molte risorse non utilizzatemolte risorse non utilizzateDurante le operazioni di lettura schede/stampa, durante il caricamento di un nuovo job, il processore resta inutilizzatoParte della memoria resta inutilizzata

Primo miglioramento… ma non una soluzioneCaricamento di numerosi job su nastro (off–line)Elaborazione (output su nastro)Stampa del nastro di output (off–line)

Page 25: Introduzione ai sistemi operativi

25

Generazione 3: 1965Generazione 3: 1965–1980–1980

Come venivano costruiti?Come venivano costruiti?Circuiti integrati

Come venivano usati?Come venivano usati?Progressivamente sparisce la figura dell’operatore come “interfaccia” degli utenti verso le macchine

utente = operatoreutente = operatore

Come venivano programmati?Come venivano programmati?Linguaggi di “alto livello”: CC, shell scriptingshell scriptingEditor testuali, editor grafici, compilatoriAccesso al sistema da terminali

Sistemi operativi interattivi, con multi–Sistemi operativi interattivi, con multi–programmazione e time–sharingprogrammazione e time–sharing

Page 26: Introduzione ai sistemi operativi

26

Generazione 3: Multi–Generazione 3: Multi–programmazioneprogrammazione

DefinizioneDefinizione di multi–programmazionedi multi–programmazione: Utilizzo del processore durante i periodi di I/O di un job per eseguire altri job

VantaggiVantaggi:Il processore non viene lasciato inattivo (idleidle) durante le operazioni di I/O (molto lunghe)La memoria viene utilizzata al meglio, caricando il maggior numero di job possibili

NotaNota: per gestire la multi–programmazione, il SO deve gestire un poolpool di job da eseguire, fra cui alternare il processore

Page 27: Introduzione ai sistemi operativi

27

Generazione 3: Multi–Generazione 3: Multi–programmazioneprogrammazione

Caratteristiche tecnicheCaratteristiche tecniche:Più job contemporaneamente in memoriaUna componente del SO, detta schedulerscheduler, si preoccupa di alternarli nell’uso della CPUQuando un job richiede un’operazione di I/O, la CPU viene assegnata ad un altro job

SO multi–programmatiSO multi–programmati: Routine di I/O fornite dal SOGestione della memoriaGestione della memoria: il sistema deve allocare la memoria per i job presenti contemporaneamenteCPU schedulingCPU scheduling: il sistema deve scegliere tra i diversi job pronti all’esecuzioneAllocazione delle risorse di I/OAllocazione delle risorse di I/O: il SO deve essere in grado di allocare le risorse di I/O fra diversi processi

Page 28: Introduzione ai sistemi operativi

28

Generazione 3: Time–sharingGenerazione 3: Time–sharing

DefinizioneDefinizione di time–sharingdi time–sharing:La risorsa CPU viene suddivisa in quanti temporali; allo scadere di un quanto, il job corrente viene interrotto e l’esecuzione passa ad un altro job, anche in assenza di richieste di I/OI context switchcontext switch avvengono così frequentemente che più utenti possono interagire con i programmi in esecuzione

SO time–sharingSO time–sharing: Gestione della memoriaGestione della memoria: il numero di processi utente può essere molto elevato; si rende necessario l’uso della memoria virtualememoria virtualeCPU schedulingCPU scheduling: deve essere di tipo time–slicedtime–sliced, ovvero sospendere periodicamente l’esecuzione di un programma a favore di un altroLa presenza di più utenti rende necessari meccanismi di meccanismi di protezioneprotezione (e.g. protezione del file system, della memoria, etc.)

Page 29: Introduzione ai sistemi operativi

29

Generazione 4: 1980Generazione 4: 1980–oggi–oggi

I personal computer sono dedicati ad utenti singoli:L’obiettivo primario per i SO diventa la facilità d’uso; diminuisce l’interesse per la gestione ottima delle risorseI SO per PC sono in generale più semplici; non implementano la protezione (almeno fino all’avvento di Internet)Creazione di interfacce grafiche user–friendlyuser–friendly Tuttavia, tecnologie sviluppate per SO più complessi possono comunque essere adottate

Page 30: Introduzione ai sistemi operativi

30

La struttura del La struttura del sistema operativosistema operativo

La gestione dei processiLa gestione dei processi

Page 31: Introduzione ai sistemi operativi

31

La gestione dei processi – 1La gestione dei processi – 1

Un processoprocesso è un programma in esecuzioneUn processo utilizza le risorse fornite dal sistema di elaborazione per assolvere ai propri compitiLa 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 delle CPU fra i vari processi

Page 32: Introduzione ai sistemi operativi

32

La gestione dei processi – 2La gestione dei processi – 2

Il sistema operativo è responsabile delle seguenti attività riguardanti la gestione dei processi:

creazione e terminazione dei processisospensione e riattivazione dei processigestione dei deadlockdeadlockcomunicazione tra processisincronizzazione tra processi

Il gestore dei processi “realizza” una macchina Il gestore dei processi “realizza” una macchina virtuale in cui ciascun programma opera come se virtuale in cui ciascun programma opera come se avesse a disposizione un’unità di elaborazione avesse a disposizione un’unità di elaborazione dedicatadedicata

Page 33: Introduzione ai sistemi operativi

33

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 processoreLa gestione dei processi viene compiuta secondo modalità diverse, in funzione del tipo di utilizzo cui il sistema è rivoltoIl programma che si occupa della distribuzione del tempo di CPU tra i vari processi attivi, decidendone l’avvicendamento, è chiamato schedulerschedulerNel caso di sistemi multiprocessore, lo scheduler si occupa anche di gestire la cooperazione tra le diverse CPU presenti nel sistema

La gestione dei processi – 3La gestione dei processi – 3

Page 34: Introduzione ai sistemi operativi

34

runningrunning readyready

waitwait

nascita

attesa evento (es. I/O)

evento

tempo scaduto

top nella coda di scheduling

Ciclo di vita dei processiCiclo di vita dei processi

termine

Page 35: Introduzione ai sistemi operativi

35

Le politiche di scheduling sono raggruppabili in due grandi categorie:

PreemptivePreemptive: l’uso della CPU da parte di un processo può essere interrotto in un qualsiasi momento, e la risorsa concessa ad altro processo

Non preemptiveNon preemptive: una volta che un processo ha ottenuto l’uso della CPU, è unico proprietario della risorsa finché non ne decide il rilascio

Politiche di schedulingPolitiche di scheduling

Page 36: Introduzione ai sistemi operativi

36

I SO che gestiscono l’esecuzione di un solo programma per volta (un solo processo) sono detti mono–tasking mono–tasking Non è possibile sospendere un processo per assegnare la CPU ad un altroSono storicamente i primi SO (es. MS–DOS)

Sistemi monoSistemi mono––taskingtasking

tA

B

C

T

Tempo di utilizzo della CPUTempo di attesa di eventi esterni

Page 37: Introduzione ai sistemi operativi

37

Sistemi multiSistemi multi–tasking–tasking

I SO che permettono l’esecuzione contemporanea di più programmi sono detti multi–tasking multi–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 CPUTempo di attesa di eventi esterni

Page 38: Introduzione ai sistemi operativi

38

Un’evoluzione dei sistemi multi–tasking sono i sistemi time–sharingtime–sharingOgni processo viene eseguito ciclicamente per piccoli quanti di tempoquanti di tempoSe la velocità del processore è sufficientemente elevata si ha l’impressione di un’evoluzione parallela dei processi

EsempioEsempioIpotesi: 1 MIPS, 4 processi, 0.25 s/utenteConseguenze: 0.25 MIPS/utente,

TELA = 4 TCPU

Sistemi timeSistemi time–sharing–sharing

C B

AD

0.00”

0.25”0.75”

0.50”

Page 39: Introduzione ai sistemi operativi

39

tAA

BB

CC

DD

TimeTime–sharing: diagramma –sharing: diagramma temporaletemporale

ProcessoProcesso Tempo di Tempo di CPUCPU

AA 33

BB 22

CC 44

DD 33

Page 40: Introduzione ai sistemi operativi

40

La gestione della memoriaLa gestione della memoria

Page 41: Introduzione ai sistemi operativi

41

La gestione della memoria principale La gestione della memoria principale – 1– 1

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 chiDecidere quali processi caricare quando diventa disponibile spazio in memoriaAllocare e deallocare lo spazio di memoria quando necessario

Il gestore di memoria “realizza” una macchina virtuale in Il gestore di memoria “realizza” una macchina virtuale in cui ciascun programma opera come se avesse a cui ciascun programma opera come se avesse a disposizione una memoria dedicatadisposizione una memoria dedicata

Page 42: Introduzione ai sistemi operativi

42

L’organizzazione e la gestione della memoria centrale è uno degli aspetti più critici nel disegno di un SOIl 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 SONei SO multi–tasking, più programmi possono essere caricati contemporaneamente in memoria

ProblemaProblema: come allocare lo spazio in maniera ottimale

La gestione della memoria principale La gestione della memoria principale – 2– 2

Page 43: Introduzione ai sistemi operativi

43

Programma AProgramma A

Programma BProgramma B

Programma CProgramma C

Memoria0000x

Allocazione lineareAllocazione lineare

Page 44: Introduzione ai sistemi operativi

44

Programma AProgramma A

Programma CProgramma C

Memoria0000x

Programma DProgramma DPROBLEMA !!!!PROBLEMA !!!!

FRAMMENTAZIONEFRAMMENTAZIONE

Allocazione lineareAllocazione lineare

Page 45: Introduzione ai sistemi operativi

45

Programma DProgramma D

Memoria

0000x Programma AProgramma A

Programma AProgramma A

Programma AProgramma A

Programma BProgramma B

Programma BProgramma B

PaginazionePaginazione

Page 46: Introduzione ai sistemi operativi

46

PaginazionePaginazione

Memoria

0000x Programma AProgramma A

Programma AProgramma A

Programma AProgramma A

Programma DProgramma D

Programma EProgramma E

Programma FProgramma F

Programma FProgramma F

Page 47: Introduzione ai sistemi operativi

47

Spesso la memoria non è sufficiente per contenere completamente tutto il codice dei processiSi può simularesimulare una memoria più grande tenendo nella memoria di sistema (RAM) solo le parti di codice e dati che servono in quel momentoSi usa il concetto di memoria virtualememoria virtualeI 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 swapI processori moderni sono dotati di meccanismi hardware per facilitare la gestione della memoria virtuale

La memoria virtuale – 1La memoria virtuale – 1

Page 48: Introduzione ai sistemi operativi

48

Programma DProgramma D

Memoria

0000x Programma 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 – 2La memoria virtuale – 2

Page 49: Introduzione ai sistemi operativi

49

La memoria virtuale – 2La memoria virtuale – 2

Programma DProgramma D

Memoria

0000x 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

Page 50: Introduzione ai sistemi operativi

50

La gestione della memoria La gestione della memoria secondaria secondaria 1 1

Poiché la memoria principale è volatile e troppo piccola per contenere tutti i dati e tutti i programmi in modo permanente, un 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 filefileCiascuna 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

Page 51: Introduzione ai sistemi operativi

51

La gestione della memoria La gestione della memoria secondaria secondaria 2 2

Il SO è responsabile delle seguenti attività riguardanti la gestione della memoria secondaria:

Allocazione dello spazio Gestione dello spazio liberoOrdinamento efficiente delle richieste (disk schedulingdisk scheduling)

Page 52: Introduzione ai sistemi operativi

52

Il file systemIl file system

Page 53: Introduzione ai sistemi operativi

53

La gestione del file system – 1La gestione del file system – 1

Un file è l’astrazione informatica di un archivio di datiIl 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 fileIl SO è responsabile delle seguenti attività riguardanti la gestione del file system:

Creazione e cancellazione di fileCreazione e cancellazione di directoryManipolazione di file e directoryCodifica del file system sulla memoria secondaria

Page 54: Introduzione ai sistemi operativi

54

Il gestore del file systemgestore del file system è il modulo del SO incaricato di gestire le informazioni memorizzate sui dispositivi di memoria di massaIl gestore del file system deve garantire la correttezza e la coerenza delle informazioniNei sistemi multi–utente, fornisce meccanismi di protezione per consentire agli utenti di proteggere i propri dati dall’accesso di altri utenti non autorizzatiLe funzioni tipiche del gestore del file system sono:

Fornire un meccanismo per l’identificazione dei fileFornire metodi opportuni di accesso ai datiRendere trasparente la struttura fisica del supporto di memorizzazioneImplementare meccanismi di protezione dei dati

La gestione del file system – 2La gestione del file system – 2

Page 55: Introduzione ai sistemi operativi

55

L’insieme gerarchico delle directory e dei file può essere rappresentato attraverso un grafo (un albero nei SO più datati) delle directory

Organizzazione del file systemOrganizzazione del file system

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 Grafo delle directorydirectory

Page 56: Introduzione ai sistemi operativi

56

La gestione dei dispositivi di I/OLa gestione dei dispositivi di I/O

Page 57: Introduzione ai sistemi operativi

57

La gestione dei dispositivi di I/OLa gestione dei dispositivi di I/O

La gestione dell’I/O richiede:Un’interfaccia comune per la gestione dei device driverdevice driverUn insieme di driver per dispositivi hardware specificiUn 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 stessiDa esso dipende la qualità e il tipo di periferiche riconosciute dal sistemaIl gestore delle periferiche offre all’utente una Il gestore delle periferiche offre all’utente una versione astratta delle periferiche hardware; l’utente versione astratta delle periferiche hardware; l’utente ha a disposizione un insieme di procedure standard di ha a disposizione un insieme di procedure standard di alto livello per leggere/scrivere da/su una periferica alto livello per leggere/scrivere da/su una periferica che “percepisce” come dedicatache “percepisce” come dedicata

Page 58: Introduzione ai sistemi operativi

58

Device driverDevice driver

Il controllo dei dispositivi di I/O avviene attraverso speciali moduli software, detti device driverdevice driverI device driver sono spesso realizzati dai produttori dei dispositivi stessi che ne conoscono le caratteristiche fisiche in maniera approfonditaI device driver implementano le seguenti funzioni:

Rendono trasparenti le caratteristiche fisiche tipiche di ogni dispositivoGestiscono la comunicazione dei segnali verso i dispositiviGestiscono i conflitti, nel caso in cui due o più task vogliano accedere contemporaneamente allo stesso dispositivo

Page 59: Introduzione ai sistemi operativi

59

L’interfaccia utenteL’interfaccia utente

Page 60: Introduzione ai sistemi operativi

60

L’interfaccia utente – 1L’interfaccia utente – 1

Tutti i SO implementano meccanismi per facilitare l’utilizzo del sistema 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.)

Page 61: Introduzione ai sistemi operativi

61

L’interfaccia utente – 2L’interfaccia utente – 2

Interfaccia testualeInterfaccia testuale:Interprete dei comandi (shellshell)Esempio: MS–DOSMS–DOS/UNIXUNIX

Interfaccia graficaInterfaccia grafica (a finestre):L’output dei vari programmi viene visualizzato in maniera grafica all’interno di finestreL’utilizzo di grafica rende più intuitivo l’uso del calcolatore

Esempio: WINDOWSWINDOWS/LinuxLinux Differenze:

Cambia il “linguaggio” utilizzato, ma il concetto è lo stessoVi sono però differenze a livello di espressività

Page 62: Introduzione ai sistemi operativi

62

L’interfaccia graficaL’interfaccia grafica

Realizza la metafora della scrivania (desktopdesktop)Interazione semplice via mouseLe 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 (Graphical User InterfaceGraphical User Interface)

Page 63: Introduzione ai sistemi operativi

63

Protezione e sicurezzaProtezione e sicurezza

Page 64: Introduzione ai sistemi operativi

64

Protezione e sicurezzaProtezione e sicurezza

ProtezioneProtezione è il meccanismo usato per controllare l’accesso da parte di processi o utenti a risorse del sistema di calcoloSicurezzaSicurezza è il meccanismo di difesa implementato dal sistema per proteggersi da attacchi interni ed esterni

Denialofservice, worm, virus, hackerIn prima istanza, il sistema distingue gli utenti, per determinare chi può fare cosa

L’identità utente (user IDuser ID) include nome dell’utente e numero associato uno per ciascun utenteL’user ID garantisce l’associazione corretta di file e processi all’utente e ne regola la manipolazione L’identificativo di gruppo permette inoltre ad un insieme di utenti di accedere correttamente ad un gruppo di risorse comuni (file e processi)

Page 65: Introduzione ai sistemi operativi

65

Esempi di Esempi di sistemi operativisistemi operativi

Page 66: Introduzione ai sistemi operativi

66

Sistemi operativi commercialiSistemi operativi commerciali

In commercio sono presenti una grande quantità di sistemi operativi diversi

In passato, la tendenza delle case costruttrici di sistemi di elaborazione era di sviluppare sistemi operativi proprietari per le loro architetture

La tendenza attuale è quella dello sviluppo di sistemi operativi portabiliportabili su piattaforme diverse

Page 67: Introduzione ai sistemi operativi

67

DOSDOS: Disk Operating SystemDisk Operating SystemCPU Intel 80x86 (16 bit)MonotaskMonoutenteFile system gerarchicoMemoria gestibile limitata (1 MB/640 KB)Nessuna protezione

MSMS–DOS–DOS

Page 68: Introduzione ai sistemi operativi

68

CPU Intel (da 80386), ma anche per DEC–AXP, MIPS–R4000, etc.MultitaskMonoutente/MultiutenteNTFS (NT File System)Microkernel, threadSistema a 32/64 bit

Windows/VistaWindows/Vista

Page 69: Introduzione ai sistemi operativi

69

Nato alla fine degli anni ‘60 (AT&T Bell Labs)Rimasto all’avanguardia perchè sviluppato in ambito universitario (UCB, University of California at Berkeley)MultitaskMultiutenteOttima integrazione in retePortabilità dei programmi

UNIXUNIX

Page 70: Introduzione ai sistemi operativi

70

LinuxLinux

Nato nel ‘91, grazie a Linus Torvalds, uno studente finlandese dell’Università di HelsinkiSviluppato su piattaforma Intel 80386, fu distribuito da subito su Internet (freefree e openopen––sourcesource)MultitaskMultiutenteL'architettura del sistema è Unix–like: un kernel molto “piccolo” che contiene solo funzioni fondamentali per la gestione delle risorse del computer (memoria, dischi, rete e altre periferiche) ed una larga collezione di programmi applicativi che l’utente usa per operare sul sistema